From f2e29fd4035a2150b1434adf18975d36306c943f Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 18 Dec 2023 17:40:25 +1000 Subject: [PATCH 001/100] Added initial code for random number generation --- .gitignore | 3 + contracts/random/IOffchainRandomSource.sol | 13 +++ contracts/random/README.md | 3 + contracts/random/RandomManager.sol | 121 +++++++++++++++++++++ contracts/random/RandomValues.sol | 57 ++++++++++ 5 files changed, 197 insertions(+) create mode 100644 contracts/random/IOffchainRandomSource.sol create mode 100644 contracts/random/README.md create mode 100644 contracts/random/RandomManager.sol create mode 100644 contracts/random/RandomValues.sol diff --git a/.gitignore b/.gitignore index 1ec01ef3..5d3779bc 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,6 @@ dist/ # Forge files foundry-out/ + +# Apple Mac files +.DS_Store diff --git a/contracts/random/IOffchainRandomSource.sol b/contracts/random/IOffchainRandomSource.sol new file mode 100644 index 00000000..04a62b92 --- /dev/null +++ b/contracts/random/IOffchainRandomSource.sol @@ -0,0 +1,13 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache 2 +pragma solidity ^0.8.19; + +interface IOffchainRandomSource { + + /** + * @notice Fetch the latest off-chain generated random value. + * @return _randomValue The value generated off-chain. + * @return _index A number indicating how many random numbers have been previously generated. + */ + function getOffchainRandom() external returns(bytes32 _randomValue, uint256 _index); +} \ No newline at end of file diff --git a/contracts/random/README.md b/contracts/random/README.md new file mode 100644 index 00000000..b4cb1def --- /dev/null +++ b/contracts/random/README.md @@ -0,0 +1,3 @@ +# Random + +This directory contains contracts that provide on-chain random number generation. \ No newline at end of file diff --git a/contracts/random/RandomManager.sol b/contracts/random/RandomManager.sol new file mode 100644 index 00000000..bc191a9b --- /dev/null +++ b/contracts/random/RandomManager.sol @@ -0,0 +1,121 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache 2 +pragma solidity ^0.8.19; + +import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol"; +import {IOffchainRandomSource} from "./IOffchainRandomSource.sol"; + + + +// TODO should be upgradeable +contract RandomManager is AccessControl { + error INVALID_DEGREE_OF_RANDOMNESS(uint256 _degreeOfRandomness); + + + mapping (uint256 => bytes32) private randomOutput; + uint256 private nextRandomIndex; + uint256 private lastBlockRandomGenerated; + + IOffchainRandomSource public offchainRandomSource; + + + // TODO set-up access control + constructor() { + randomOutput[0] = keccak256(block.chainid, block.number); + nextRandomIndex = 1; + } + + // TODO Access control + function setOffchainRandomSource(address _offchainRandomSource) { + offchainRandomSource = IOffchainRandomSource(_offchainRandomSource); + } + + + /** + * @notice Generate a random value. + */ + function generateNextRandom() public { + // Previous random output. + bytes32 prevRandomOutput = randomOutput[nextRandomIndex - 1]; + + // Use the off chain random provider if it has been configured. + IOffchainRandomSource offchainSourceCached = offchainRandomSource; + if (address(offchainSourceCached) != address(0)) { + bytes32 offchainRandom; + uint256 index; + (offchainRandom, index) = offchainSourceCached.getOffchainRandom(); + // No new random value is available at this point. Check back later. + if (index != nextRandomIndex) { + return; + } + randomOutput[nextRandomIndex++] = keccak256(chainId, prevRandomOutput, offchainRandom); + } + else { + // If the off chain random provider has NOT been configured, use on-chain sources. + // NOTE: Block proposers can influence these values. + + // This values can only be updated once per block. + if (lastBlockRandomGenerated == block.number) { + return; + } + + // Block hash will be different for each block. The block producer could manipulate + // the block hash by selecting which set of transactions to include in a block or + // crafting a transaction that included a number that the block producer controlled. + bytes32 blockHash = blockhash(block.number); + // Timestamp will be different for each block. The block producer could manipulate + // the timestamp by changing the time recorded as when the block was produced. The + // block will be deemed invalid if the value is too far from the expected block time. + // slither-disable-next-line timestamp + uint256 timestamp = block.timestamp; + // PrevRanDAO (previously known as DIFFICULTY) is the output of the RanDAO function + // used as a part of consensus. The value posted is the value revealed in the previous + // block, not in this block. In this way, all parties know the value prior to it being + // useable by applications. + // This can be influenced by a block producer deciding to produce or not produce a block. + // NOTE: Prior to the BFT fork (expected in the first half of 2024), this value will + // be a predictable value. + uint256 prevRanDAO = block.prevrandao; + + // The new random value is a combination of + randomOutput[nextRandomIndex++] = keccak256(chainId, blockHash, timestamp, prevRanDAO, prevRandomOutput); + } + } + + /** + * @notice Request the index number to be used for generating a random value. + * @dev Note that the same _randomFulfillmentIndex will be returned to multiple games and even within + * the one game. Games must personalise this value to their own game, the the particular game player, + * and to the game player's request. + * @return _randomFulfillmentIndex The index for the game contract to present to fetch the next random value. + */ + function requestRandom() external returns(uint256 _randomFulfillmentIndex) { + // Generate a new value now using offchain values that might be cached in the blockchain already. + // Do this to ensure nafarious actors can't read the cached values and use them to determine + // the next random value. + generateNextRandom(); + // Indicate that the next generated random value can be used. + _randomFulfillmentIndex = nextRandomIndex + 1; + } + + + /** + * @notice Fetches a random seed value that was requested using requestRandom. + * @dev Note that the same _randomSeed will be returned to multiple games and even within + * the one game. Games must personalise this value to their own game, the the particular game player, + * and to the game player's request. + * @return _randomSeed The value from with random values can be derived. + */ + function getRandomSeed(uint256 _randomFulfillmentIndex) external returns (bytes32 _randomSeed) { + generateNextRandom(); + if (_randomFulfillmentIndex < nextRandomIndex) { + revert WaitForRandom(); + } + return randomOutput[_randomFulfillmentIndex]; + + + } + + + // TODO storage gap +} \ No newline at end of file diff --git a/contracts/random/RandomValues.sol b/contracts/random/RandomValues.sol new file mode 100644 index 00000000..bc1459b3 --- /dev/null +++ b/contracts/random/RandomValues.sol @@ -0,0 +1,57 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache 2 +pragma solidity ^0.8.19; + +import {RandomManager} from "./RandomManager.sol"; + + + +// TODO add doc: This contract should be extended by game companies, one per game. + +// TODO written so can be upgradeable +abstract contract RandomValues { + mapping (uint256 => uint256) private randCreationRequests; + uint256 private nextNonce; + + RandomManager public randomManager; + + + constructor(address _randomManager) { + randomManager = RandomManager(_randomManager); + } + + + /** + * @notice Register a request to generate a random value. This function should be called + * when a game player has purchased an item that has a random value. + * @return _randomRequestId A value that needs to be presented when fetching the random + * value with fetchRandom. + */ + function requestRandomValueCreation() internal returns (uint256 _randomRequestId) { + uint256 randomFulfillmentIndex = randomManager.requestRandom(); + _randomRequestId = nextNonce++; + randCreationRequests[_randomRequestId] = randomFulfillmentIndex; + } + + + /** + * @notice Fetch a random value that was requested using requestRandomValueCreation. + * @dev The value is customised to this game, the game player, and the request by the game player. + * This level of personalisation ensures that no two players end up with the same random value + * and no game player will have the same random value twice. + * @return _randomValue The index for the game contract to present to fetch the next random value. + */ + function fetchRandom(uint256 _randomRequestId) internal view returns(bytes32 _randomValue) { + // Request the randon seed. If not enough time has elapsed yet, this call will revert. + bytes32 randomSeed = randomManager.getRandomSeed(randCreationRequests[_randomRequestId]); + // Generate the random value by combining: + // address(this): personalises the random seed to this game. + // msg.sender: personalises the random seed to the game player. + // _randomRequestId: Ensures that even if the game player has requested multiple random values, + // they will get a different value for each request. + // randomSeed: Value returned by the RandomManager. + _randomValue = keccak256(address(this), msg.sender, _randomRequestId, randomSeed); + } + + // TODO storage gap +} \ No newline at end of file From 8405ce964aef9b70919f2cf248948c208226e115 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 19 Dec 2023 13:32:46 +1000 Subject: [PATCH 002/100] Improve documentation --- contracts/random/IOffchainRandomSource.sol | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contracts/random/IOffchainRandomSource.sol b/contracts/random/IOffchainRandomSource.sol index 04a62b92..25a873bd 100644 --- a/contracts/random/IOffchainRandomSource.sol +++ b/contracts/random/IOffchainRandomSource.sol @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache 2 pragma solidity ^0.8.19; + + interface IOffchainRandomSource { /** From fd3644ba00946f555a35d9a9775cdfb0d1acfeb1 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 19 Dec 2023 13:33:09 +1000 Subject: [PATCH 003/100] forge install: openzeppelin-contracts-upgradeable v5.0.1 --- .gitmodules | 3 +++ lib/openzeppelin-contracts-upgradeable | 1 + 2 files changed, 4 insertions(+) create mode 160000 lib/openzeppelin-contracts-upgradeable diff --git a/.gitmodules b/.gitmodules index 888d42dc..178960bd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "lib/forge-std"] path = lib/forge-std url = https://github.com/foundry-rs/forge-std +[submodule "lib/openzeppelin-contracts-upgradeable"] + path = lib/openzeppelin-contracts-upgradeable + url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable diff --git a/lib/openzeppelin-contracts-upgradeable b/lib/openzeppelin-contracts-upgradeable new file mode 160000 index 00000000..fbdb824a --- /dev/null +++ b/lib/openzeppelin-contracts-upgradeable @@ -0,0 +1 @@ +Subproject commit fbdb824a735891908d5588b28e0da5852d7ed7ba From 33aff296017a026db76736cafd4c9b66f83d36d1 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 19 Dec 2023 13:33:26 +1000 Subject: [PATCH 004/100] forge install: openzeppelin-contracts v5.0.1 --- .gitmodules | 3 +++ lib/openzeppelin-contracts | 1 + 2 files changed, 4 insertions(+) create mode 160000 lib/openzeppelin-contracts diff --git a/.gitmodules b/.gitmodules index 178960bd..7017cc82 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "lib/openzeppelin-contracts-upgradeable"] path = lib/openzeppelin-contracts-upgradeable url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable +[submodule "lib/openzeppelin-contracts"] + path = lib/openzeppelin-contracts + url = https://github.com/OpenZeppelin/openzeppelin-contracts diff --git a/lib/openzeppelin-contracts b/lib/openzeppelin-contracts new file mode 160000 index 00000000..01ef4489 --- /dev/null +++ b/lib/openzeppelin-contracts @@ -0,0 +1 @@ +Subproject commit 01ef448981be9d20ca85f2faf6ebdf591ce409f3 From c2d65063cca8e15715f4c2bc95c8daac7cbc2987 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 19 Dec 2023 13:43:23 +1000 Subject: [PATCH 005/100] Added remappings --- foundry.toml | 8 ++++++-- lib/openzeppelin-contracts | 1 - lib/openzeppelin-contracts-upgradeable | 1 - 3 files changed, 6 insertions(+), 4 deletions(-) delete mode 160000 lib/openzeppelin-contracts delete mode 160000 lib/openzeppelin-contracts-upgradeable diff --git a/foundry.toml b/foundry.toml index cce0b1b8..75acd412 100644 --- a/foundry.toml +++ b/foundry.toml @@ -2,6 +2,10 @@ src = 'contracts' out = 'foundry-out' libs = ["lib", "node_modules"] -remappings = [ "node_modules/seaport:@rari-capital/solmate/=node_modules/@rari-capital/solmate/" ] - +remappings = [ + "node_modules/seaport:@rari-capital/solmate/=node_modules/@rari-capital/solmate/", + '@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/', + '@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/' +] # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options + diff --git a/lib/openzeppelin-contracts b/lib/openzeppelin-contracts deleted file mode 160000 index 01ef4489..00000000 --- a/lib/openzeppelin-contracts +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 01ef448981be9d20ca85f2faf6ebdf591ce409f3 diff --git a/lib/openzeppelin-contracts-upgradeable b/lib/openzeppelin-contracts-upgradeable deleted file mode 160000 index fbdb824a..00000000 --- a/lib/openzeppelin-contracts-upgradeable +++ /dev/null @@ -1 +0,0 @@ -Subproject commit fbdb824a735891908d5588b28e0da5852d7ed7ba From cb56dbe7333ec394ffe2fa74a410355fd68b801b Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 19 Dec 2023 13:43:27 +1000 Subject: [PATCH 006/100] forge install: openzeppelin-contracts v4.9.5 --- lib/openzeppelin-contracts | 1 + 1 file changed, 1 insertion(+) create mode 160000 lib/openzeppelin-contracts diff --git a/lib/openzeppelin-contracts b/lib/openzeppelin-contracts new file mode 160000 index 00000000..bd325d56 --- /dev/null +++ b/lib/openzeppelin-contracts @@ -0,0 +1 @@ +Subproject commit bd325d56b4c62c9c5c1aff048c37c6bb18ac0290 From 1ea3540adb708dae6a2d5c1444c409a3da038340 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 19 Dec 2023 13:43:43 +1000 Subject: [PATCH 007/100] forge install: openzeppelin-contracts-upgradeable v4.9.5 --- lib/openzeppelin-contracts-upgradeable | 1 + 1 file changed, 1 insertion(+) create mode 160000 lib/openzeppelin-contracts-upgradeable diff --git a/lib/openzeppelin-contracts-upgradeable b/lib/openzeppelin-contracts-upgradeable new file mode 160000 index 00000000..a40cb0bd --- /dev/null +++ b/lib/openzeppelin-contracts-upgradeable @@ -0,0 +1 @@ +Subproject commit a40cb0bda838c2ef3dfc252c179f5c37c32e80c4 From e03392a495af0f681efb28becff9146773744273 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 19 Dec 2023 13:55:14 +1000 Subject: [PATCH 008/100] forge install: seaport --- .gitmodules | 3 +++ lib/seaport | 1 + 2 files changed, 4 insertions(+) create mode 160000 lib/seaport diff --git a/.gitmodules b/.gitmodules index 7017cc82..d3351ede 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "lib/openzeppelin-contracts"] path = lib/openzeppelin-contracts url = https://github.com/OpenZeppelin/openzeppelin-contracts +[submodule "lib/seaport"] + path = lib/seaport + url = https://github.com/ProjectOpenSea/seaport diff --git a/lib/seaport b/lib/seaport new file mode 160000 index 00000000..50a0c096 --- /dev/null +++ b/lib/seaport @@ -0,0 +1 @@ +Subproject commit 50a0c09621f90196e8d07dbfb6c564256a241e66 From 426407a3e40254035f32aecd4098e7bc48763649 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 19 Dec 2023 13:59:06 +1000 Subject: [PATCH 009/100] Remove incorrect version of seaport --- lib/seaport | 1 - 1 file changed, 1 deletion(-) delete mode 160000 lib/seaport diff --git a/lib/seaport b/lib/seaport deleted file mode 160000 index 50a0c096..00000000 --- a/lib/seaport +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 50a0c09621f90196e8d07dbfb6c564256a241e66 From 545f341ffbdf5e416d0ca068567249dc59e43cd4 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 19 Dec 2023 14:00:34 +1000 Subject: [PATCH 010/100] forge install: seaport 1.5 --- lib/seaport | 1 + 1 file changed, 1 insertion(+) create mode 160000 lib/seaport diff --git a/lib/seaport b/lib/seaport new file mode 160000 index 00000000..ab3b5cb6 --- /dev/null +++ b/lib/seaport @@ -0,0 +1 @@ +Subproject commit ab3b5cb6e10580ea979d63983e409e679935c702 From 015c4f2dcd77790c800bf8f663bb362184208778 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 19 Dec 2023 14:26:57 +1000 Subject: [PATCH 011/100] Temporarily remove trading contracts --- .../trading/seaport/ImmutableSeaport.sol | 681 ------------------ .../seaport/conduit/ConduitController.sol | 4 - .../interfaces/ImmutableSeaportEvents.sol | 14 - .../seaport/test/SeaportTestContracts.sol | 10 - .../validators/ReadOnlyOrderValidator.sol | 4 - .../seaport/validators/SeaportValidator.sol | 4 - .../validators/SeaportValidatorHelper.sol | 4 - .../seaport/zones/ImmutableSignedZone.sol | 605 ---------------- contracts/trading/seaport/zones/README.md | 49 -- .../zones/interfaces/SIP5Interface.sol | 28 - .../zones/interfaces/SIP6EventsAndErrors.sol | 14 - .../zones/interfaces/SIP7EventsAndErrors.sol | 75 -- .../zones/interfaces/SIP7Interface.sol | 59 -- 13 files changed, 1551 deletions(-) delete mode 100644 contracts/trading/seaport/ImmutableSeaport.sol delete mode 100644 contracts/trading/seaport/conduit/ConduitController.sol delete mode 100644 contracts/trading/seaport/interfaces/ImmutableSeaportEvents.sol delete mode 100644 contracts/trading/seaport/test/SeaportTestContracts.sol delete mode 100644 contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol delete mode 100644 contracts/trading/seaport/validators/SeaportValidator.sol delete mode 100644 contracts/trading/seaport/validators/SeaportValidatorHelper.sol delete mode 100644 contracts/trading/seaport/zones/ImmutableSignedZone.sol delete mode 100644 contracts/trading/seaport/zones/README.md delete mode 100644 contracts/trading/seaport/zones/interfaces/SIP5Interface.sol delete mode 100644 contracts/trading/seaport/zones/interfaces/SIP6EventsAndErrors.sol delete mode 100644 contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol delete mode 100644 contracts/trading/seaport/zones/interfaces/SIP7Interface.sol diff --git a/contracts/trading/seaport/ImmutableSeaport.sol b/contracts/trading/seaport/ImmutableSeaport.sol deleted file mode 100644 index 05dcd27b..00000000 --- a/contracts/trading/seaport/ImmutableSeaport.sol +++ /dev/null @@ -1,681 +0,0 @@ -// Copyright (c) Immutable Pty Ltd 2018 - 2023 -// SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.17; - -import { Consideration } from "seaport-core/src/lib/Consideration.sol"; -import { - AdvancedOrder, - BasicOrderParameters, - CriteriaResolver, - Execution, - Fulfillment, - FulfillmentComponent, - Order, - OrderComponents -} from "seaport-types/src/lib/ConsiderationStructs.sol"; -import { OrderType } from "seaport-types/src/lib/ConsiderationEnums.sol"; -import { Ownable2Step } from "@openzeppelin/contracts/access/Ownable2Step.sol"; -import { - ImmutableSeaportEvents -} from "./interfaces/ImmutableSeaportEvents.sol"; - -/** - * @title ImmutableSeaport - * @custom:version 1.5 - * @notice Seaport is a generalized native token/ERC20/ERC721/ERC1155 - * marketplace with lightweight methods for common routes as well as - * more flexible methods for composing advanced orders or groups of - * orders. Each order contains an arbitrary number of items that may be - * spent (the "offer") along with an arbitrary number of items that must - * be received back by the indicated recipients (the "consideration"). - */ -contract ImmutableSeaport is - Consideration, - Ownable2Step, - ImmutableSeaportEvents -{ - // Mapping to store valid ImmutableZones - this allows for multiple Zones - // to be active at the same time, and can be expired or added on demand. - mapping(address => bool) public allowedZones; - - error OrderNotRestricted(); - error InvalidZone(address zone); - - /** - * @notice Derive and set hashes, reference chainId, and associated domain - * separator during deployment. - * - * @param conduitController A contract that deploys conduits, or proxies - * that may optionally be used to transfer approved - * ERC20/721/1155 tokens. - */ - constructor( - address conduitController - ) Consideration(conduitController) Ownable2Step() {} - - /** - * @dev Set the validity of a zone for use during fulfillment. - */ - function setAllowedZone(address zone, bool allowed) external onlyOwner { - allowedZones[zone] = allowed; - emit AllowedZoneSet(zone, allowed); - } - - /** - * @dev Internal pure function to retrieve and return the name of this - * contract. - * - * @return The name of this contract. - */ - function _name() internal pure override returns (string memory) { - // Return the name of the contract. - return "ImmutableSeaport"; - } - - /** - * @dev Internal pure function to retrieve the name of this contract as a - * string that will be used to derive the name hash in the constructor. - * - * @return The name of this contract as a string. - */ - function _nameString() internal pure override returns (string memory) { - // Return the name of the contract. - return "ImmutableSeaport"; - } - - /** - * @dev Helper function to revert any fulfillment that has an invalid zone - */ - function _rejectIfZoneInvalid(address zone) internal view { - if (!allowedZones[zone]) { - revert InvalidZone(zone); - } - } - - /** - * @notice Fulfill an order offering an ERC20, ERC721, or ERC1155 item by - * supplying Ether (or other native tokens), ERC20 tokens, an ERC721 - * item, or an ERC1155 item as consideration. Six permutations are - * supported: Native token to ERC721, Native token to ERC1155, ERC20 - * to ERC721, ERC20 to ERC1155, ERC721 to ERC20, and ERC1155 to - * ERC20 (with native tokens supplied as msg.value). For an order to - * be eligible for fulfillment via this method, it must contain a - * single offer item (though that item may have a greater amount if - * the item is not an ERC721). An arbitrary number of "additional - * recipients" may also be supplied which will each receive native - * tokens or ERC20 items from the fulfiller as consideration. Refer - * to the documentation for a more comprehensive summary of how to - * utilize this method and what orders are compatible with it. - * - * @param parameters Additional information on the fulfilled order. Note - * that the offerer and the fulfiller must first approve - * this contract (or their chosen conduit if indicated) - * before any tokens can be transferred. Also note that - * contract recipients of ERC1155 consideration items must - * implement `onERC1155Received` to receive those items. - * - * @return fulfilled A boolean indicating whether the order has been - * successfully fulfilled. - */ - function fulfillBasicOrder( - BasicOrderParameters calldata parameters - ) public payable virtual override returns (bool fulfilled) { - // All restricted orders are captured using this method - if ( - uint(parameters.basicOrderType) % 4 != 2 && - uint(parameters.basicOrderType) % 4 != 3 - ) { - revert OrderNotRestricted(); - } - - _rejectIfZoneInvalid(parameters.zone); - - return super.fulfillBasicOrder(parameters); - } - - /** - * @notice Fulfill an order offering an ERC20, ERC721, or ERC1155 item by - * supplying Ether (or other native tokens), ERC20 tokens, an ERC721 - * item, or an ERC1155 item as consideration. Six permutations are - * supported: Native token to ERC721, Native token to ERC1155, ERC20 - * to ERC721, ERC20 to ERC1155, ERC721 to ERC20, and ERC1155 to - * ERC20 (with native tokens supplied as msg.value). For an order to - * be eligible for fulfillment via this method, it must contain a - * single offer item (though that item may have a greater amount if - * the item is not an ERC721). An arbitrary number of "additional - * recipients" may also be supplied which will each receive native - * tokens or ERC20 items from the fulfiller as consideration. Refer - * to the documentation for a more comprehensive summary of how to - * utilize this method and what orders are compatible with it. Note - * that this function costs less gas than `fulfillBasicOrder` due to - * the zero bytes in the function selector (0x00000000) which also - * results in earlier function dispatch. - * - * @param parameters Additional information on the fulfilled order. Note - * that the offerer and the fulfiller must first approve - * this contract (or their chosen conduit if indicated) - * before any tokens can be transferred. Also note that - * contract recipients of ERC1155 consideration items must - * implement `onERC1155Received` to receive those items. - * - * @return fulfilled A boolean indicating whether the order has been - * successfully fulfilled. - */ - function fulfillBasicOrder_efficient_6GL6yc( - BasicOrderParameters calldata parameters - ) public payable virtual override returns (bool fulfilled) { - // All restricted orders are captured using this method - if ( - uint(parameters.basicOrderType) % 4 != 2 && - uint(parameters.basicOrderType) % 4 != 3 - ) { - revert OrderNotRestricted(); - } - - _rejectIfZoneInvalid(parameters.zone); - - return super.fulfillBasicOrder_efficient_6GL6yc(parameters); - } - - /** - * @notice Fulfill an order with an arbitrary number of items for offer and - * consideration. Note that this function does not support - * criteria-based orders or partial filling of orders (though - * filling the remainder of a partially-filled order is supported). - * - * @custom:param order The order to fulfill. Note that both the - * offerer and the fulfiller must first approve - * this contract (or the corresponding conduit if - * indicated) to transfer any relevant tokens on - * their behalf and that contracts must implement - * `onERC1155Received` to receive ERC1155 tokens - * as consideration. - * @param fulfillerConduitKey A bytes32 value indicating what conduit, if - * any, to source the fulfiller's token approvals - * from. The zero hash signifies that no conduit - * should be used (and direct approvals set on - * this contract). - * - * @return fulfilled A boolean indicating whether the order has been - * successfully fulfilled. - */ - function fulfillOrder( - /** - * @custom:name order - */ - Order calldata order, - bytes32 fulfillerConduitKey - ) public payable virtual override returns (bool fulfilled) { - if ( - order.parameters.orderType != OrderType.FULL_RESTRICTED && - order.parameters.orderType != OrderType.PARTIAL_RESTRICTED - ) { - revert OrderNotRestricted(); - } - - _rejectIfZoneInvalid(order.parameters.zone); - - return super.fulfillOrder(order, fulfillerConduitKey); - } - - /** - * @notice Fill an order, fully or partially, with an arbitrary number of - * items for offer and consideration alongside criteria resolvers - * containing specific token identifiers and associated proofs. - * - * @custom:param advancedOrder The order to fulfill along with the - * fraction of the order to attempt to fill. - * Note that both the offerer and the - * fulfiller must first approve this - * contract (or their conduit if indicated - * by the order) to transfer any relevant - * tokens on their behalf and that contracts - * must implement `onERC1155Received` to - * receive ERC1155 tokens as consideration. - * Also note that all offer and - * consideration components must have no - * remainder after multiplication of the - * respective amount with the supplied - * fraction for the partial fill to be - * considered valid. - * @custom:param criteriaResolvers An array where each element contains a - * reference to a specific offer or - * consideration, a token identifier, and a - * proof that the supplied token identifier - * is contained in the merkle root held by - * the item in question's criteria element. - * Note that an empty criteria indicates - * that any (transferable) token identifier - * on the token in question is valid and - * that no associated proof needs to be - * supplied. - * @param fulfillerConduitKey A bytes32 value indicating what conduit, - * if any, to source the fulfiller's token - * approvals from. The zero hash signifies - * that no conduit should be used (and - * direct approvals set on this contract). - * @param recipient The intended recipient for all received - * items, with `address(0)` indicating that - * the caller should receive the items. - * - * @return fulfilled A boolean indicating whether the order has been - * successfully fulfilled. - */ - function fulfillAdvancedOrder( - /** - * @custom:name advancedOrder - */ - AdvancedOrder calldata advancedOrder, - /** - * @custom:name criteriaResolvers - */ - CriteriaResolver[] calldata criteriaResolvers, - bytes32 fulfillerConduitKey, - address recipient - ) public payable virtual override returns (bool fulfilled) { - if ( - advancedOrder.parameters.orderType != OrderType.FULL_RESTRICTED && - advancedOrder.parameters.orderType != OrderType.PARTIAL_RESTRICTED - ) { - revert OrderNotRestricted(); - } - - _rejectIfZoneInvalid(advancedOrder.parameters.zone); - - return - super.fulfillAdvancedOrder( - advancedOrder, - criteriaResolvers, - fulfillerConduitKey, - recipient - ); - } - - /** - * @notice Attempt to fill a group of orders, each with an arbitrary number - * of items for offer and consideration. Any order that is not - * currently active, has already been fully filled, or has been - * cancelled will be omitted. Remaining offer and consideration - * items will then be aggregated where possible as indicated by the - * supplied offer and consideration component arrays and aggregated - * items will be transferred to the fulfiller or to each intended - * recipient, respectively. Note that a failing item transfer or an - * issue with order formatting will cause the entire batch to fail. - * Note that this function does not support criteria-based orders or - * partial filling of orders (though filling the remainder of a - * partially-filled order is supported). - * - * @custom:param orders The orders to fulfill. Note that - * both the offerer and the - * fulfiller must first approve this - * contract (or the corresponding - * conduit if indicated) to transfer - * any relevant tokens on their - * behalf and that contracts must - * implement `onERC1155Received` to - * receive ERC1155 tokens as - * consideration. - * @custom:param offerFulfillments An array of FulfillmentComponent - * arrays indicating which offer - * items to attempt to aggregate - * when preparing executions. Note - * that any offer items not included - * as part of a fulfillment will be - * sent unaggregated to the caller. - * @custom:param considerationFulfillments An array of FulfillmentComponent - * arrays indicating which - * consideration items to attempt to - * aggregate when preparing - * executions. - * @param fulfillerConduitKey A bytes32 value indicating what - * conduit, if any, to source the - * fulfiller's token approvals from. - * The zero hash signifies that no - * conduit should be used (and - * direct approvals set on this - * contract). - * @param maximumFulfilled The maximum number of orders to - * fulfill. - * - * @return availableOrders An array of booleans indicating if each order - * with an index corresponding to the index of the - * returned boolean was fulfillable or not. - * @return executions An array of elements indicating the sequence of - * transfers performed as part of matching the given - * orders. - */ - function fulfillAvailableOrders( - /** - * @custom:name orders - */ - Order[] calldata orders, - /** - * @custom:name offerFulfillments - */ - FulfillmentComponent[][] calldata offerFulfillments, - /** - * @custom:name considerationFulfillments - */ - FulfillmentComponent[][] calldata considerationFulfillments, - bytes32 fulfillerConduitKey, - uint256 maximumFulfilled - ) - public - payable - virtual - override - returns ( - bool[] memory, - /* availableOrders */ Execution[] memory /* executions */ - ) - { - for (uint256 i = 0; i < orders.length; i++) { - Order memory order = orders[i]; - if ( - order.parameters.orderType != OrderType.FULL_RESTRICTED && - order.parameters.orderType != OrderType.PARTIAL_RESTRICTED - ) { - revert OrderNotRestricted(); - } - _rejectIfZoneInvalid(order.parameters.zone); - } - - return - super.fulfillAvailableOrders( - orders, - offerFulfillments, - considerationFulfillments, - fulfillerConduitKey, - maximumFulfilled - ); - } - - /** - * @notice Attempt to fill a group of orders, fully or partially, with an - * arbitrary number of items for offer and consideration per order - * alongside criteria resolvers containing specific token - * identifiers and associated proofs. Any order that is not - * currently active, has already been fully filled, or has been - * cancelled will be omitted. Remaining offer and consideration - * items will then be aggregated where possible as indicated by the - * supplied offer and consideration component arrays and aggregated - * items will be transferred to the fulfiller or to each intended - * recipient, respectively. Note that a failing item transfer or an - * issue with order formatting will cause the entire batch to fail. - * - * @custom:param advancedOrders The orders to fulfill along with - * the fraction of those orders to - * attempt to fill. Note that both - * the offerer and the fulfiller - * must first approve this contract - * (or their conduit if indicated by - * the order) to transfer any - * relevant tokens on their behalf - * and that contracts must implement - * `onERC1155Received` to receive - * ERC1155 tokens as consideration. - * Also note that all offer and - * consideration components must - * have no remainder after - * multiplication of the respective - * amount with the supplied fraction - * for an order's partial fill - * amount to be considered valid. - * @custom:param criteriaResolvers An array where each element - * contains a reference to a - * specific offer or consideration, - * a token identifier, and a proof - * that the supplied token - * identifier is contained in the - * merkle root held by the item in - * question's criteria element. Note - * that an empty criteria indicates - * that any (transferable) token - * identifier on the token in - * question is valid and that no - * associated proof needs to be - * supplied. - * @custom:param offerFulfillments An array of FulfillmentComponent - * arrays indicating which offer - * items to attempt to aggregate - * when preparing executions. Note - * that any offer items not included - * as part of a fulfillment will be - * sent unaggregated to the caller. - * @custom:param considerationFulfillments An array of FulfillmentComponent - * arrays indicating which - * consideration items to attempt to - * aggregate when preparing - * executions. - * @param fulfillerConduitKey A bytes32 value indicating what - * conduit, if any, to source the - * fulfiller's token approvals from. - * The zero hash signifies that no - * conduit should be used (and - * direct approvals set on this - * contract). - * @param recipient The intended recipient for all - * received items, with `address(0)` - * indicating that the caller should - * receive the offer items. - * @param maximumFulfilled The maximum number of orders to - * fulfill. - * - * @return availableOrders An array of booleans indicating if each order - * with an index corresponding to the index of the - * returned boolean was fulfillable or not. - * @return executions An array of elements indicating the sequence of - * transfers performed as part of matching the given - * orders. - */ - function fulfillAvailableAdvancedOrders( - /** - * @custom:name advancedOrders - */ - AdvancedOrder[] calldata advancedOrders, - /** - * @custom:name criteriaResolvers - */ - CriteriaResolver[] calldata criteriaResolvers, - /** - * @custom:name offerFulfillments - */ - FulfillmentComponent[][] calldata offerFulfillments, - /** - * @custom:name considerationFulfillments - */ - FulfillmentComponent[][] calldata considerationFulfillments, - bytes32 fulfillerConduitKey, - address recipient, - uint256 maximumFulfilled - ) - public - payable - virtual - override - returns ( - bool[] memory, - /* availableOrders */ Execution[] memory /* executions */ - ) - { - for (uint256 i = 0; i < advancedOrders.length; i++) { - AdvancedOrder memory advancedOrder = advancedOrders[i]; - if ( - advancedOrder.parameters.orderType != - OrderType.FULL_RESTRICTED && - advancedOrder.parameters.orderType != - OrderType.PARTIAL_RESTRICTED - ) { - revert OrderNotRestricted(); - } - - _rejectIfZoneInvalid(advancedOrder.parameters.zone); - } - - return - super.fulfillAvailableAdvancedOrders( - advancedOrders, - criteriaResolvers, - offerFulfillments, - considerationFulfillments, - fulfillerConduitKey, - recipient, - maximumFulfilled - ); - } - - /** - * @notice Match an arbitrary number of orders, each with an arbitrary - * number of items for offer and consideration along with a set of - * fulfillments allocating offer components to consideration - * components. Note that this function does not support - * criteria-based or partial filling of orders (though filling the - * remainder of a partially-filled order is supported). Any unspent - * offer item amounts or native tokens will be transferred to the - * caller. - * - * @custom:param orders The orders to match. Note that both the - * offerer and fulfiller on each order must first - * approve this contract (or their conduit if - * indicated by the order) to transfer any - * relevant tokens on their behalf and each - * consideration recipient must implement - * `onERC1155Received` to receive ERC1155 tokens. - * @custom:param fulfillments An array of elements allocating offer - * components to consideration components. Note - * that each consideration component must be - * fully met for the match operation to be valid, - * and that any unspent offer items will be sent - * unaggregated to the caller. - * - * @return executions An array of elements indicating the sequence of - * transfers performed as part of matching the given - * orders. Note that unspent offer item amounts or native - * tokens will not be reflected as part of this array. - */ - function matchOrders( - /** - * @custom:name orders - */ - Order[] calldata orders, - /** - * @custom:name fulfillments - */ - Fulfillment[] calldata fulfillments - ) - public - payable - virtual - override - returns (Execution[] memory /* executions */) - { - for (uint256 i = 0; i < orders.length; i++) { - Order memory order = orders[i]; - if ( - order.parameters.orderType != OrderType.FULL_RESTRICTED && - order.parameters.orderType != OrderType.PARTIAL_RESTRICTED - ) { - revert OrderNotRestricted(); - } - _rejectIfZoneInvalid(order.parameters.zone); - } - - return super.matchOrders(orders, fulfillments); - } - - /** - * @notice Match an arbitrary number of full, partial, or contract orders, - * each with an arbitrary number of items for offer and - * consideration, supplying criteria resolvers containing specific - * token identifiers and associated proofs as well as fulfillments - * allocating offer components to consideration components. Any - * unspent offer item amounts will be transferred to the designated - * recipient (with the null address signifying to use the caller) - * and any unspent native tokens will be returned to the caller. - * - * @custom:param advancedOrders The advanced orders to match. Note that - * both the offerer and fulfiller on each - * order must first approve this contract - * (or their conduit if indicated by the - * order) to transfer any relevant tokens on - * their behalf and each consideration - * recipient must implement - * `onERC1155Received` to receive ERC1155 - * tokens. Also note that the offer and - * consideration components for each order - * must have no remainder after multiplying - * the respective amount with the supplied - * fraction for the group of partial fills - * to be considered valid. - * @custom:param criteriaResolvers An array where each element contains a - * reference to a specific offer or - * consideration, a token identifier, and a - * proof that the supplied token identifier - * is contained in the merkle root held by - * the item in question's criteria element. - * Note that an empty criteria indicates - * that any (transferable) token identifier - * on the token in question is valid and - * that no associated proof needs to be - * supplied. - * @custom:param fulfillments An array of elements allocating offer - * components to consideration components. - * Note that each consideration component - * must be fully met for the match operation - * to be valid, and that any unspent offer - * items will be sent unaggregated to the - * designated recipient. - * @param recipient The intended recipient for all unspent - * offer item amounts, or the caller if the - * null address is supplied. - * - * @return executions An array of elements indicating the sequence of - * transfers performed as part of matching the given - * orders. Note that unspent offer item amounts or - * native tokens will not be reflected as part of this - * array. - */ - function matchAdvancedOrders( - /** - * @custom:name advancedOrders - */ - AdvancedOrder[] calldata advancedOrders, - /** - * @custom:name criteriaResolvers - */ - CriteriaResolver[] calldata criteriaResolvers, - /** - * @custom:name fulfillments - */ - Fulfillment[] calldata fulfillments, - address recipient - ) - public - payable - virtual - override - returns (Execution[] memory /* executions */) - { - for (uint256 i = 0; i < advancedOrders.length; i++) { - AdvancedOrder memory advancedOrder = advancedOrders[i]; - if ( - advancedOrder.parameters.orderType != - OrderType.FULL_RESTRICTED && - advancedOrder.parameters.orderType != - OrderType.PARTIAL_RESTRICTED - ) { - revert OrderNotRestricted(); - } - - _rejectIfZoneInvalid(advancedOrder.parameters.zone); - } - - return - super.matchAdvancedOrders( - advancedOrders, - criteriaResolvers, - fulfillments, - recipient - ); - } -} diff --git a/contracts/trading/seaport/conduit/ConduitController.sol b/contracts/trading/seaport/conduit/ConduitController.sol deleted file mode 100644 index 11c02ae3..00000000 --- a/contracts/trading/seaport/conduit/ConduitController.sol +++ /dev/null @@ -1,4 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.14; - -import { ConduitController } from "seaport-core/src/conduit/ConduitController.sol"; diff --git a/contracts/trading/seaport/interfaces/ImmutableSeaportEvents.sol b/contracts/trading/seaport/interfaces/ImmutableSeaportEvents.sol deleted file mode 100644 index d57fa0c4..00000000 --- a/contracts/trading/seaport/interfaces/ImmutableSeaportEvents.sol +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) Immutable Pty Ltd 2018 - 2023 -// SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.17; - -/** - * @notice ImmutableSeaportEvents contains events - * related to the ImmutableSeaport contract - */ -interface ImmutableSeaportEvents { - /** - * @dev Emit an event when an allowed zone status is updated - */ - event AllowedZoneSet(address zoneAddress, bool allowed); -} diff --git a/contracts/trading/seaport/test/SeaportTestContracts.sol b/contracts/trading/seaport/test/SeaportTestContracts.sol deleted file mode 100644 index 1e66da80..00000000 --- a/contracts/trading/seaport/test/SeaportTestContracts.sol +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) Immutable Pty Ltd 2018 - 2023 -// SPDX-License-Identifier: Apache-2 -pragma solidity >=0.8.4; - -/** - * @dev Import test contract helpers from Immutable pinned fork of OpenSea's seaport - * These are not deployed - they are only used for testing - */ -import "seaport/contracts/test/TestERC721.sol"; -import "seaport/contracts/test/TestZone.sol"; diff --git a/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol b/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol deleted file mode 100644 index 8a823c82..00000000 --- a/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol +++ /dev/null @@ -1,4 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.17; - -import { ReadOnlyOrderValidator } from "seaport/contracts/helpers/order-validator/lib/ReadOnlyOrderValidator.sol"; diff --git a/contracts/trading/seaport/validators/SeaportValidator.sol b/contracts/trading/seaport/validators/SeaportValidator.sol deleted file mode 100644 index b431bcb4..00000000 --- a/contracts/trading/seaport/validators/SeaportValidator.sol +++ /dev/null @@ -1,4 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.17; - -import { SeaportValidator } from "seaport/contracts/helpers/order-validator/SeaportValidator.sol"; diff --git a/contracts/trading/seaport/validators/SeaportValidatorHelper.sol b/contracts/trading/seaport/validators/SeaportValidatorHelper.sol deleted file mode 100644 index 0334c9cd..00000000 --- a/contracts/trading/seaport/validators/SeaportValidatorHelper.sol +++ /dev/null @@ -1,4 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.17; - -import { SeaportValidatorHelper } from "seaport/contracts/helpers/order-validator/lib/SeaportValidatorHelper.sol"; diff --git a/contracts/trading/seaport/zones/ImmutableSignedZone.sol b/contracts/trading/seaport/zones/ImmutableSignedZone.sol deleted file mode 100644 index 733904b7..00000000 --- a/contracts/trading/seaport/zones/ImmutableSignedZone.sol +++ /dev/null @@ -1,605 +0,0 @@ -// Copyright (c) Immutable Pty Ltd 2018 - 2023 -// SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.17; - -import { - ZoneParameters, - Schema, - ReceivedItem -} from "seaport-types/src/lib/ConsiderationStructs.sol"; -import { ZoneInterface } from "seaport/contracts/interfaces/ZoneInterface.sol"; -import { SIP7Interface } from "./interfaces/SIP7Interface.sol"; -import { SIP7EventsAndErrors } from "./interfaces/SIP7EventsAndErrors.sol"; -import { SIP6EventsAndErrors } from "./interfaces/SIP6EventsAndErrors.sol"; -import { SIP5Interface } from "./interfaces/SIP5Interface.sol"; -import { Ownable2Step } from "@openzeppelin/contracts/access/Ownable2Step.sol"; -import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; -import { Strings } from "@openzeppelin/contracts/utils/Strings.sol"; -import { ERC165 } from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; - -/** - * @title ImmutableSignedZone - * @author Immutable - * @notice ImmutableSignedZone is a zone implementation based on the - * SIP-7 standard https://github.com/ProjectOpenSea/SIPs/blob/main/SIPS/sip-7.md - * Implementing substandard 3 and 4. - * - * Inspiration and reference from the following contracts: - * https://github.com/ProjectOpenSea/seaport/blob/024dcc5cd70231ce6db27b4e12ea6fb736f69b06/contracts/zones/SignedZone.sol - * - We notably deviate from this contract by implementing substandard 3, and SIP-6. - * https://github.com/reservoirprotocol/seaport-oracle/blob/master/packages/contracts/src/zones/SignedZone.sol - * - We deviate from this contract by going with a no assembly code reference contract approach, and we do not have a substandard - * prefix as part of the context bytes of extraData. - * - We estimate that for a standard validateOrder call with 10 consideration items, this contract consumes 1.9% more gas than the above - * as a tradeoff for having no assembly code. - */ -contract ImmutableSignedZone is - ERC165, - SIP7EventsAndErrors, - SIP6EventsAndErrors, - ZoneInterface, - SIP5Interface, - SIP7Interface, - Ownable2Step -{ - /// @dev The EIP-712 digest parameters. - bytes32 internal immutable _VERSION_HASH = keccak256(bytes("1.0")); - bytes32 internal immutable _EIP_712_DOMAIN_TYPEHASH = - keccak256( - abi.encodePacked( - "EIP712Domain(", - "string name,", - "string version,", - "uint256 chainId,", - "address verifyingContract", - ")" - ) - ); - - bytes32 internal immutable _SIGNED_ORDER_TYPEHASH = - keccak256( - abi.encodePacked( - "SignedOrder(", - "address fulfiller,", - "uint64 expiration,", - "bytes32 orderHash,", - "bytes context", - ")" - ) - ); - - bytes internal constant CONSIDERATION_BYTES = - abi.encodePacked("Consideration(", "ReceivedItem[] consideration", ")"); - - bytes internal constant RECEIVED_ITEM_BYTES = - abi.encodePacked( - "ReceivedItem(", - "uint8 itemType,", - "address token,", - "uint256 identifier,", - "uint256 amount,", - "address recipient", - ")" - ); - - bytes32 internal constant RECEIVED_ITEM_TYPEHASH = - keccak256(RECEIVED_ITEM_BYTES); - - bytes32 internal constant CONSIDERATION_TYPEHASH = - keccak256(abi.encodePacked(CONSIDERATION_BYTES, RECEIVED_ITEM_BYTES)); - - uint256 internal immutable _CHAIN_ID = block.chainid; - bytes32 internal immutable _DOMAIN_SEPARATOR; - uint8 internal immutable _ACCEPTED_SIP6_VERSION = 0; - - /// @dev The name for this zone returned in getSeaportMetadata(). - string private _ZONE_NAME; - - bytes32 internal _NAME_HASH; - - /// @dev The allowed signers. - mapping(address => SignerInfo) private _signers; - - /// @dev The API endpoint where orders for this zone can be signed. - /// Request and response payloads are defined in SIP-7. - string private _sip7APIEndpoint; - - /// @dev The documentationURI; - string private _documentationURI; - - /** - * @notice Constructor to deploy the contract. - * - * @param zoneName The name for the zone returned in - * getSeaportMetadata(). - * @param apiEndpoint The API endpoint where orders for this zone can be - * signed. - * Request and response payloads are defined in SIP-7. - */ - constructor( - string memory zoneName, - string memory apiEndpoint, - string memory documentationURI - ) { - // Set the zone name. - _ZONE_NAME = zoneName; - // set name hash - _NAME_HASH = keccak256(bytes(zoneName)); - - // Set the API endpoint. - _sip7APIEndpoint = apiEndpoint; - _documentationURI = documentationURI; - - // Derive and set the domain separator. - _DOMAIN_SEPARATOR = _deriveDomainSeparator(); - - // Emit an event to signal a SIP-5 contract has been deployed. - emit SeaportCompatibleContractDeployed(); - } - - /** - * @notice Add a new signer to the zone. - * - * @param signer The new signer address to add. - */ - function addSigner(address signer) external override onlyOwner { - // Do not allow the zero address to be added as a signer. - if (signer == address(0)) { - revert SignerCannotBeZeroAddress(); - } - - // Revert if the signer is already added. - if (_signers[signer].active) { - revert SignerAlreadyActive(signer); - } - - // Revert if the signer was previously authorized. - // Specified in SIP-7 to prevent compromised signer from being - // Cycled back into use. - if (_signers[signer].previouslyActive) { - revert SignerCannotBeReauthorized(signer); - } - - // Set the signer info. - _signers[signer] = SignerInfo(true, true); - - // Emit an event that the signer was added. - emit SignerAdded(signer); - } - - /** - * @notice Remove an active signer from the zone. - * - * @param signer The signer address to remove. - */ - function removeSigner(address signer) external override onlyOwner { - // Revert if the signer is not active. - if (!_signers[signer].active) { - revert SignerNotActive(signer); - } - - // Set the signer's active status to false. - _signers[signer].active = false; - - // Emit an event that the signer was removed. - emit SignerRemoved(signer); - } - - /** - * @notice Check if a given order including extraData is currently valid. - * - * @dev This function is called by Seaport whenever any extraData is - * provided by the caller. - * - * @return validOrderMagicValue A magic value indicating if the order is - * currently valid. - */ - function validateOrder( - ZoneParameters calldata zoneParameters - ) external view override returns (bytes4 validOrderMagicValue) { - // Put the extraData and orderHash on the stack for cheaper access. - bytes calldata extraData = zoneParameters.extraData; - bytes32 orderHash = zoneParameters.orderHash; - - // Revert with an error if the extraData is empty. - if (extraData.length == 0) { - revert InvalidExtraData("extraData is empty", orderHash); - } - - // We expect the extraData to conform with SIP-6 as well as SIP-7 - // Therefore all SIP-7 related data is offset by one byte - // SIP-7 specifically requires SIP-6 as a prerequisite. - - // Revert with an error if the extraData does not have valid length. - if (extraData.length < 93) { - revert InvalidExtraData( - "extraData length must be at least 93 bytes", - orderHash - ); - } - - // Revert if SIP6 version is not accepted (0) - if (uint8(extraData[0]) != _ACCEPTED_SIP6_VERSION) { - revert UnsupportedExtraDataVersion(uint8(extraData[0])); - } - - // extraData bytes 1-21: expected fulfiller - // (zero address means not restricted) - address expectedFulfiller = address(bytes20(extraData[1:21])); - - // extraData bytes 21-29: expiration timestamp (uint64) - uint64 expiration = uint64(bytes8(extraData[21:29])); - - // extraData bytes 29-93: signature - // (strictly requires 64 byte compact sig, ERC2098) - bytes calldata signature = extraData[29:93]; - - // extraData bytes 93-end: context (optional, variable length) - bytes calldata context = extraData[93:]; - - // Revert if expired. - if (block.timestamp > expiration) { - revert SignatureExpired(block.timestamp, expiration, orderHash); - } - - // Put fulfiller on the stack for more efficient access. - address actualFulfiller = zoneParameters.fulfiller; - - // Revert unless - // Expected fulfiller is 0 address (any fulfiller) or - // Expected fulfiller is the same as actual fulfiller - if ( - expectedFulfiller != address(0) && - expectedFulfiller != actualFulfiller - ) { - revert InvalidFulfiller( - expectedFulfiller, - actualFulfiller, - orderHash - ); - } - - // validate supported substandards (3,4) - _validateSubstandards( - context, - _deriveConsiderationHash(zoneParameters.consideration), - zoneParameters - ); - - // Derive the signedOrder hash - bytes32 signedOrderHash = _deriveSignedOrderHash( - expectedFulfiller, - expiration, - orderHash, - context - ); - - // Derive the EIP-712 digest using the domain separator and signedOrder - // hash through openzepplin helper - bytes32 digest = ECDSA.toTypedDataHash( - _domainSeparator(), - signedOrderHash - ); - - // Recover the signer address from the digest and signature. - // Pass in R and VS from compact signature (ERC2098) - address recoveredSigner = ECDSA.recover( - digest, - bytes32(signature[0:32]), - bytes32(signature[32:64]) - ); - - // Revert if the signer is not active - // !This also reverts if the digest constructed on serverside is incorrect - if (!_signers[recoveredSigner].active) { - revert SignerNotActive(recoveredSigner); - } - - // All validation completes and passes with no reverts, return valid - validOrderMagicValue = ZoneInterface.validateOrder.selector; - } - - /** - * @dev Internal view function to get the EIP-712 domain separator. If the - * chainId matches the chainId set on deployment, the cached domain - * separator will be returned; otherwise, it will be derived from - * scratch. - * - * @return The domain separator. - */ - function _domainSeparator() internal view returns (bytes32) { - return - block.chainid == _CHAIN_ID - ? _DOMAIN_SEPARATOR - : _deriveDomainSeparator(); - } - - /** - * @dev Returns Seaport metadata for this contract, returning the - * contract name and supported schemas. - * - * @return name The contract name - * @return schemas The supported SIPs - */ - function getSeaportMetadata() - external - view - override(SIP5Interface, ZoneInterface) - returns (string memory name, Schema[] memory schemas) - { - name = _ZONE_NAME; - - // supported SIP (7) - schemas = new Schema[](1); - schemas[0].id = 7; - - schemas[0].metadata = abi.encode( - keccak256( - abi.encode( - _domainSeparator(), - _sip7APIEndpoint, - _getSupportedSubstandards(), - _documentationURI - ) - ) - ); - } - - /** - * @dev Internal view function to derive the EIP-712 domain separator. - * - * @return domainSeparator The derived domain separator. - */ - function _deriveDomainSeparator() - internal - view - returns (bytes32 domainSeparator) - { - return - keccak256( - abi.encode( - _EIP_712_DOMAIN_TYPEHASH, - _NAME_HASH, - _VERSION_HASH, - block.chainid, - address(this) - ) - ); - } - - /** - * @notice Update the API endpoint returned by this zone. - * - * @param newApiEndpoint The new API endpoint. - */ - function updateAPIEndpoint( - string calldata newApiEndpoint - ) external override onlyOwner { - // Update to the new API endpoint. - _sip7APIEndpoint = newApiEndpoint; - } - - /** - * @notice Returns signing information about the zone. - * - * @return domainSeparator The domain separator used for signing. - */ - function sip7Information() - external - view - override - returns ( - bytes32 domainSeparator, - string memory apiEndpoint, - uint256[] memory substandards, - string memory documentationURI - ) - { - domainSeparator = _domainSeparator(); - apiEndpoint = _sip7APIEndpoint; - - substandards = _getSupportedSubstandards(); - - documentationURI = _documentationURI; - } - - /** - * @dev validate substandards 3 and 4 based on context - * - * @param context bytes payload of context - */ - function _validateSubstandards( - bytes calldata context, - bytes32 actualConsiderationHash, - ZoneParameters calldata zoneParameters - ) internal pure { - // substandard 3 - validate consideration hash actual match expected - - // first 32bytes of context must be exactly a keccak256 hash of consideration item array - if (context.length < 32) { - revert InvalidExtraData( - "invalid context, expecting consideration hash followed by order hashes", - zoneParameters.orderHash - ); - } - - // revert if order hash in context and payload do not match - bytes32 expectedConsiderationHash = bytes32(context[0:32]); - if (expectedConsiderationHash != actualConsiderationHash) { - revert SubstandardViolation( - 3, - "invalid consideration hash", - zoneParameters.orderHash - ); - } - - // substandard 4 - validate order hashes actual match expected - - // byte 33 to end are orderHashes array for substandard 4 - bytes calldata orderHashesBytes = context[32:]; - // context must be a multiple of 32 bytes - if (orderHashesBytes.length % 32 != 0) { - revert InvalidExtraData( - "invalid context, order hashes bytes not an array of bytes32 hashes", - zoneParameters.orderHash - ); - } - - // compute expected order hashes array based on context bytes - bytes32[] memory expectedOrderHashes = new bytes32[]( - orderHashesBytes.length / 32 - ); - for (uint256 i = 0; i < orderHashesBytes.length / 32; i++) { - expectedOrderHashes[i] = bytes32( - orderHashesBytes[i * 32:i * 32 + 32] - ); - } - - // revert if order hashes in context and payload do not match - // every expected order hash need to exist in fulfilling order hashes - if ( - !_everyElementExists( - expectedOrderHashes, - zoneParameters.orderHashes - ) - ) { - revert SubstandardViolation( - 4, - "invalid order hashes", - zoneParameters.orderHash - ); - } - } - - /** - * @dev get the supported substandards of the contract - * - * @return substandards array of substandards supported - * - */ - function _getSupportedSubstandards() - internal - pure - returns (uint256[] memory substandards) - { - // support substandards 3 and 4 - substandards = new uint256[](2); - substandards[0] = 3; - substandards[1] = 4; - } - - /** - * @dev Derive the signedOrder hash from the orderHash and expiration. - * - * @param fulfiller The expected fulfiller address. - * @param expiration The signature expiration timestamp. - * @param orderHash The order hash. - * @param context The optional variable-length context. - * - * @return signedOrderHash The signedOrder hash. - * - */ - function _deriveSignedOrderHash( - address fulfiller, - uint64 expiration, - bytes32 orderHash, - bytes calldata context - ) internal view returns (bytes32 signedOrderHash) { - // Derive the signed order hash. - signedOrderHash = keccak256( - abi.encode( - _SIGNED_ORDER_TYPEHASH, - fulfiller, - expiration, - orderHash, - keccak256(context) - ) - ); - } - - /** - * @dev Derive the EIP712 consideration hash based on received item array - * @param consideration expected consideration array - */ - function _deriveConsiderationHash( - ReceivedItem[] calldata consideration - ) internal pure returns (bytes32) { - uint256 numberOfItems = consideration.length; - bytes32[] memory considerationHashes = new bytes32[](numberOfItems); - for (uint256 i; i < numberOfItems; i++) { - considerationHashes[i] = keccak256( - abi.encode( - RECEIVED_ITEM_TYPEHASH, - consideration[i].itemType, - consideration[i].token, - consideration[i].identifier, - consideration[i].amount, - consideration[i].recipient - ) - ); - } - return - keccak256( - abi.encode( - CONSIDERATION_TYPEHASH, - keccak256(abi.encodePacked(considerationHashes)) - ) - ); - } - - /** - * @dev helper function to check if every element of array1 exists in array2 - * optimised for performance checking arrays sized 0-15 - * - * @param array1 subset array - * @param array2 superset array - */ - function _everyElementExists( - bytes32[] memory array1, - bytes32[] calldata array2 - ) internal pure returns (bool) { - // cache the length in memory for loop optimisation - uint256 array1Size = array1.length; - uint256 array2Size = array2.length; - - // we can assume all items (order hashes) are unique - // therefore if subset is bigger than superset, revert - if (array1Size > array2Size) { - return false; - } - - // Iterate through each element and compare them - for (uint256 i = 0; i < array1Size; ) { - bool found = false; - bytes32 item = array1[i]; - for (uint256 j = 0; j < array2Size; ) { - if (item == array2[j]) { - // if item from array1 is in array2, break - found = true; - break; - } - unchecked { - j++; - } - } - if (!found) { - // if any item from array1 is not found in array2, return false - return false; - } - unchecked { - i++; - } - } - - // All elements from array1 exist in array2 - return true; - } - - function supportsInterface( - bytes4 interfaceId - ) public view override(ERC165, ZoneInterface) returns (bool) { - return - interfaceId == type(ZoneInterface).interfaceId || - super.supportsInterface(interfaceId); - } -} diff --git a/contracts/trading/seaport/zones/README.md b/contracts/trading/seaport/zones/README.md deleted file mode 100644 index 990b6728..00000000 --- a/contracts/trading/seaport/zones/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Test plan for ImmutableSignedZone - -ImmutableSignedZone is a implementation of the SIP-7 specification with substandard 3. - -## E2E tests with signing server - -E2E tests will be handled in the server repository seperate to the contract. - -## Validate order unit tests - -The core function of the contract is `validateOrder` where signature verification and a variety of validations of the `extraData` payload is verified by the zone to determine whether an order is considered valid for fulfillment. This function will be called by the settlement contract upon order fulfillment. - -| Test name | Description | Happy Case | Implemented | -| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ---------- | ----------- | -| validateOrder reverts without extraData | base failure case | No | Yes | -| validateOrder reverts with invalid extraData | base failure case | No | Yes | -| validateOrder reverts with expired timestamp | asserts the expiration verification behaviour | No | Yes | -| validateOrder reverts with invalid fulfiller | asserts the fulfiller verification behaviour | No | Yes | -| validateOrder reverts with non 0 SIP6 version | asserts the SIP6 version verification behaviour | No | Yes | -| validateOrder reverts with wrong consideration | asserts the consideration verification behaviour | No | Yes | -| validates correct signature with context | Happy path of a valid order | Yes | Yes | -| validateOrder validates correct context with multiple order hashes - equal arrays | Happy path with bulk order hashes - expected == actual | Yes | Yes | -| validateOrder validates correct context with multiple order hashes - partial arrays | Happy path with bulk order hashes - expected is a subset of actual | Yes | Yes | -| validateOrder reverts when not all expected order hashes are in zone parameters | Error case with bulk order hashes - actual is a subset of expected | No | Yes | -| validateOrder reverts incorrectly signed signature with context | asserts active signer behaviour | No | Yes | -| validateOrder reverts a valid order after expiration time passes | asserts active signer behaviour | No | Yes | - -## Ownership unit tests - -Test the ownership behaviour of the contract - -| Test name | Description | Happy Case | Implemented | -| ------------------------------- | --------------------------- | ---------- | ----------- | -| deployer becomes owner | base case | Yes | Yes | -| transferOwnership works | base case | Yes | Yes | -| non owner cannot add signers | asserts ownership behaviour | No | Yes | -| non owner cannot remove signers | asserts ownership behaviour | No | Yes | -| non owner cannot update owner | asserts ownership behaviour | No | Yes | - -## Active signer unit tests - -Test the signer management behaviour of the contract - -| Test name | Description | Happy Case | Implemented | -| ---------------------------------- | --------------------------------------------------- | ---------- | ----------- | -| owner can add active signer | base case | Yes | Yes | -| owner can deactivate signer | base case | Yes | Yes | -| deactivate non active signer fails | asserts signers can only be deactivated when active | No | Yes | -| activate deactivated signer fails | asserts signer cannot be recycled behaviour | No | Yes | diff --git a/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol b/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol deleted file mode 100644 index 9da10294..00000000 --- a/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Immutable Pty Ltd 2018 - 2023 -// SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.17; - -import { Schema } from "seaport-types/src/lib/ConsiderationStructs.sol"; - -/** - * @dev SIP-5: Contract Metadata Interface for Seaport Contracts - * https://github.com/ProjectOpenSea/SIPs/blob/main/SIPS/sip-5.md - */ -interface SIP5Interface { - /** - * @dev An event that is emitted when a SIP-5 compatible contract is deployed. - */ - event SeaportCompatibleContractDeployed(); - - /** - * @dev Returns Seaport metadata for this contract, returning the - * contract name and supported schemas. - * - * @return name The contract name - * @return schemas The supported SIPs - */ - function getSeaportMetadata() - external - view - returns (string memory name, Schema[] memory schemas); -} diff --git a/contracts/trading/seaport/zones/interfaces/SIP6EventsAndErrors.sol b/contracts/trading/seaport/zones/interfaces/SIP6EventsAndErrors.sol deleted file mode 100644 index 338b3b27..00000000 --- a/contracts/trading/seaport/zones/interfaces/SIP6EventsAndErrors.sol +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) Immutable Pty Ltd 2018 - 2023 -// SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.17; - -/** - * @notice SIP6EventsAndErrors contains errors and events - * related to zone interaction as specified in the SIP6. - */ -interface SIP6EventsAndErrors { - /** - * @dev Revert with an error if SIP6 version is not supported - */ - error UnsupportedExtraDataVersion(uint8 version); -} diff --git a/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol b/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol deleted file mode 100644 index 75555db0..00000000 --- a/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (c) Immutable Pty Ltd 2018 - 2023 -// SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.17; - -/** - * @notice SIP7EventsAndErrors contains errors and events - * related to zone interaction as specified in the SIP7. - */ -interface SIP7EventsAndErrors { - /** - * @dev Emit an event when a new signer is added. - */ - event SignerAdded(address signer); - - /** - * @dev Emit an event when a signer is removed. - */ - event SignerRemoved(address signer); - - /** - * @dev Revert with an error if trying to add a signer that is - * already active. - */ - error SignerAlreadyActive(address signer); - - /** - * @dev Revert with an error if trying to remove a signer that is - * not active - */ - error SignerNotActive(address signer); - - /** - * @dev Revert with an error if a new signer is the zero address. - */ - error SignerCannotBeZeroAddress(); - - /** - * @dev Revert with an error if a removed signer is trying to be - * reauthorized. - */ - error SignerCannotBeReauthorized(address signer); - - /** - * @dev Revert with an error when the signature has expired. - */ - error SignatureExpired( - uint256 currentTimestamp, - uint256 expiration, - bytes32 orderHash - ); - - /** - * @dev Revert with an error if the fulfiller does not match. - */ - error InvalidFulfiller( - address expectedFulfiller, - address actualFulfiller, - bytes32 orderHash - ); - - /** - * @dev Revert with an error if a substandard validation fails - */ - error SubstandardViolation( - uint256 substandardId, - string reason, - bytes32 orderHash - ); - - /** - * @dev Revert with an error if supplied order extraData is invalid - * or improperly formatted. - */ - error InvalidExtraData(string reason, bytes32 orderHash); -} diff --git a/contracts/trading/seaport/zones/interfaces/SIP7Interface.sol b/contracts/trading/seaport/zones/interfaces/SIP7Interface.sol deleted file mode 100644 index 47a16551..00000000 --- a/contracts/trading/seaport/zones/interfaces/SIP7Interface.sol +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright (c) Immutable Pty Ltd 2018 - 2023 -// SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.17; - -/** - * @title SIP7Interface - * @author ryanio, Immutable - * @notice ImmutableSignedZone is an implementation of SIP-7 that requires orders - * to be signed by an approved signer. - * https://github.com/ProjectOpenSea/SIPs/blob/main/SIPS/sip-7.md - * - */ -interface SIP7Interface { - /** - * @dev The struct for storing signer info. - */ - struct SignerInfo { - bool active; /// If the signer is currently active. - bool previouslyActive; /// If the signer has been active before. - } - - /** - * @notice Add a new signer to the zone. - * - * @param signer The new signer address to add. - */ - function addSigner(address signer) external; - - /** - * @notice Remove an active signer from the zone. - * - * @param signer The signer address to remove. - */ - function removeSigner(address signer) external; - - /** - * @notice Update the API endpoint returned by this zone. - * - * @param newApiEndpoint The new API endpoint. - */ - function updateAPIEndpoint(string calldata newApiEndpoint) external; - - /** - * @notice Returns signing information about the zone. - * - * @return domainSeparator The domain separator used for signing. - * @return apiEndpoint The API endpoint to get signatures for orders - * using this zone. - */ - function sip7Information() - external - view - returns ( - bytes32 domainSeparator, - string memory apiEndpoint, - uint256[] memory substandards, - string memory documentationURI - ); -} From acdca5a0a9796242f389129390f2f0a05b6e7fbb Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 19 Dec 2023 14:27:08 +1000 Subject: [PATCH 012/100] forge install: solidity-bits v0.4.0 --- .gitmodules | 3 +++ lib/solidity-bits | 1 + 2 files changed, 4 insertions(+) create mode 160000 lib/solidity-bits diff --git a/.gitmodules b/.gitmodules index d3351ede..3179db9c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,6 @@ [submodule "lib/seaport"] path = lib/seaport url = https://github.com/ProjectOpenSea/seaport +[submodule "lib/solidity-bits"] + path = lib/solidity-bits + url = https://github.com/estarriolvetch/solidity-bits diff --git a/lib/solidity-bits b/lib/solidity-bits new file mode 160000 index 00000000..c243a888 --- /dev/null +++ b/lib/solidity-bits @@ -0,0 +1 @@ +Subproject commit c243a888782b61542da380ac92e218c676427b50 From 4a3f1a09dbd3fe16c21d72f9d6b24e3fc3a3a6b6 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 19 Dec 2023 14:33:25 +1000 Subject: [PATCH 013/100] forge install: solidity-bytes-utils v0.8.0 --- .gitmodules | 3 +++ lib/solidity-bytes-utils | 1 + 2 files changed, 4 insertions(+) create mode 160000 lib/solidity-bytes-utils diff --git a/.gitmodules b/.gitmodules index 3179db9c..a6adfed2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,3 +13,6 @@ [submodule "lib/solidity-bits"] path = lib/solidity-bits url = https://github.com/estarriolvetch/solidity-bits +[submodule "lib/solidity-bytes-utils"] + path = lib/solidity-bytes-utils + url = https://github.com/GNSPS/solidity-bytes-utils diff --git a/lib/solidity-bytes-utils b/lib/solidity-bytes-utils new file mode 160000 index 00000000..6458fb27 --- /dev/null +++ b/lib/solidity-bytes-utils @@ -0,0 +1 @@ +Subproject commit 6458fb2780a3092bc756e737f246be1de6d3d362 From f11f239645737a95ca59429299fded5d3d76dd86 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 19 Dec 2023 15:22:49 +1000 Subject: [PATCH 014/100] Fixed compilation issues --- contracts/mocks/MockOnReceive.sol | 6 +++--- contracts/random/RandomManager.sol | 28 +++++++++++++++++++++------- contracts/random/RandomValues.sol | 13 ++++++++----- foundry.toml | 9 ++++++--- 4 files changed, 38 insertions(+), 18 deletions(-) diff --git a/contracts/mocks/MockOnReceive.sol b/contracts/mocks/MockOnReceive.sol index aa40379b..fc014515 100644 --- a/contracts/mocks/MockOnReceive.sol +++ b/contracts/mocks/MockOnReceive.sol @@ -13,10 +13,10 @@ contract MockOnReceive { // Attempt to transfer token to another address on receive function onERC721Received( - address operator, - address from, + address /* operator */, + address /* from */, uint256 tokenId, - bytes calldata data + bytes calldata /* data */ ) public returns (bytes4) { tokenAddress.transferFrom(address(this), recipient, tokenId); return this.onERC721Received.selector; diff --git a/contracts/random/RandomManager.sol b/contracts/random/RandomManager.sol index bc191a9b..b0af0bfa 100644 --- a/contracts/random/RandomManager.sol +++ b/contracts/random/RandomManager.sol @@ -9,7 +9,8 @@ import {IOffchainRandomSource} from "./IOffchainRandomSource.sol"; // TODO should be upgradeable contract RandomManager is AccessControl { - error INVALID_DEGREE_OF_RANDOMNESS(uint256 _degreeOfRandomness); + error InvalidSecurityLevel(uint256 _securityLevel); + error WaitForRandom(); mapping (uint256 => bytes32) private randomOutput; @@ -21,12 +22,12 @@ contract RandomManager is AccessControl { // TODO set-up access control constructor() { - randomOutput[0] = keccak256(block.chainid, block.number); + randomOutput[0] = keccak256(abi.encodePacked(block.chainid, block.number)); nextRandomIndex = 1; } // TODO Access control - function setOffchainRandomSource(address _offchainRandomSource) { + function setOffchainRandomSource(address _offchainRandomSource) external { offchainRandomSource = IOffchainRandomSource(_offchainRandomSource); } @@ -48,7 +49,7 @@ contract RandomManager is AccessControl { if (index != nextRandomIndex) { return; } - randomOutput[nextRandomIndex++] = keccak256(chainId, prevRandomOutput, offchainRandom); + randomOutput[nextRandomIndex++] = keccak256(abi.encodePacked(prevRandomOutput, offchainRandom)); } else { // If the off chain random provider has NOT been configured, use on-chain sources. @@ -78,7 +79,7 @@ contract RandomManager is AccessControl { uint256 prevRanDAO = block.prevrandao; // The new random value is a combination of - randomOutput[nextRandomIndex++] = keccak256(chainId, blockHash, timestamp, prevRanDAO, prevRandomOutput); + randomOutput[nextRandomIndex++] = keccak256(abi.encodePacked(prevRandomOutput, blockHash, timestamp, prevRanDAO)); } } @@ -87,15 +88,28 @@ contract RandomManager is AccessControl { * @dev Note that the same _randomFulfillmentIndex will be returned to multiple games and even within * the one game. Games must personalise this value to their own game, the the particular game player, * and to the game player's request. + * @param _securityLevel The number of random number generations to wait. A higher value provides + * better security. For most applications, a value of 1 or 2 is ideal. If the random number + * is for a high value transaction, choose a high number, for instance 3 or 4. + * The reasoning behind a low value providing less security is that when the security level + * is set to one, the seed is derived from the next off-chain random value. However, this + * value could relate to an off-chain random value being supplied by a transaction that is currently + * in the transaction pool. Some game players may be able to see this value and hence guess the + * outcome for the random generation. Having a higher value means that the game player has to commit + * before the off-chain random number is put into a transaction that is then put into the + * transaction pool. * @return _randomFulfillmentIndex The index for the game contract to present to fetch the next random value. */ - function requestRandom() external returns(uint256 _randomFulfillmentIndex) { + function requestRandom(uint256 _securityLevel) external returns(uint256 _randomFulfillmentIndex) { + if (_securityLevel == 0 || _securityLevel > 10) { + revert InvalidSecurityLevel(_securityLevel); + } // Generate a new value now using offchain values that might be cached in the blockchain already. // Do this to ensure nafarious actors can't read the cached values and use them to determine // the next random value. generateNextRandom(); // Indicate that the next generated random value can be used. - _randomFulfillmentIndex = nextRandomIndex + 1; + _randomFulfillmentIndex = nextRandomIndex + _securityLevel; } diff --git a/contracts/random/RandomValues.sol b/contracts/random/RandomValues.sol index bc1459b3..a19f3833 100644 --- a/contracts/random/RandomValues.sol +++ b/contracts/random/RandomValues.sol @@ -24,11 +24,14 @@ abstract contract RandomValues { /** * @notice Register a request to generate a random value. This function should be called * when a game player has purchased an item that has a random value. + * @param _securityLevel The number of random number generations to wait. A higher value provides + * better security. For most applications, a value of 1 or 2 is ideal. If the random number + * is for a high value transaction, choose a high number, for instance 3 or 4. * @return _randomRequestId A value that needs to be presented when fetching the random * value with fetchRandom. */ - function requestRandomValueCreation() internal returns (uint256 _randomRequestId) { - uint256 randomFulfillmentIndex = randomManager.requestRandom(); + function requestRandomValueCreation(uint256 _securityLevel) internal returns (uint256 _randomRequestId) { + uint256 randomFulfillmentIndex = randomManager.requestRandom(_securityLevel); _randomRequestId = nextNonce++; randCreationRequests[_randomRequestId] = randomFulfillmentIndex; } @@ -41,8 +44,8 @@ abstract contract RandomValues { * and no game player will have the same random value twice. * @return _randomValue The index for the game contract to present to fetch the next random value. */ - function fetchRandom(uint256 _randomRequestId) internal view returns(bytes32 _randomValue) { - // Request the randon seed. If not enough time has elapsed yet, this call will revert. + function fetchRandom(uint256 _randomRequestId) internal returns(bytes32 _randomValue) { + // Request the random seed. If not enough time has elapsed yet, this call will revert. bytes32 randomSeed = randomManager.getRandomSeed(randCreationRequests[_randomRequestId]); // Generate the random value by combining: // address(this): personalises the random seed to this game. @@ -50,7 +53,7 @@ abstract contract RandomValues { // _randomRequestId: Ensures that even if the game player has requested multiple random values, // they will get a different value for each request. // randomSeed: Value returned by the RandomManager. - _randomValue = keccak256(address(this), msg.sender, _randomRequestId, randomSeed); + _randomValue = keccak256(abi.encodePacked(address(this), msg.sender, _randomRequestId, randomSeed)); } // TODO storage gap diff --git a/foundry.toml b/foundry.toml index 75acd412..ade2d2fc 100644 --- a/foundry.toml +++ b/foundry.toml @@ -2,10 +2,13 @@ src = 'contracts' out = 'foundry-out' libs = ["lib", "node_modules"] -remappings = [ - "node_modules/seaport:@rari-capital/solmate/=node_modules/@rari-capital/solmate/", + +remappings = [ '@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/', - '@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/' + '@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/', + 'solidity-bits/=lib/solidity-bits/', + 'solidity-bytes-utils/=lib/solidity-bytes-utils/' ] + # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options From d10d6ba8e27f6ceb84ec78ece4b65990ed50b709 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 19 Dec 2023 16:44:25 +1000 Subject: [PATCH 015/100] Initial doc --- contracts/random/README.md | 23 +++++++++++++++++++++-- contracts/random/random-architecture.png | Bin 0 -> 92685 bytes 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 contracts/random/random-architecture.png diff --git a/contracts/random/README.md b/contracts/random/README.md index b4cb1def..6037fe68 100644 --- a/contracts/random/README.md +++ b/contracts/random/README.md @@ -1,3 +1,22 @@ -# Random +# Random Number Generation -This directory contains contracts that provide on-chain random number generation. \ No newline at end of file +This directory contains contracts that provide on-chain random number generation. + +## Architecture + +The Random Number Generation system on the immutable platform is shown in the diagram below. + +![Random number genration](./random-architecture.png) + +Game contracts extend ```RandomValues.sol```. This contract interacts with the ```RandomManager.sol``` contract to request and retreive random numbers. + +There is one ```RandomManager.sol``` contract deployed per chain. Each game has its own instance of ```RandomValues.sol``` as this contract is integrated directly into the game contract. + +The ```RandomManager.sol``` operates behind a transparent proxy, ```TransparentUpgradeProxy.sol``` that is controlled by ```ProxyAdmin.sol```. Using an upgradeable pattern allows the random manager contract to be upgraded to extend its feature set and resolve issues. + +The ```RandomManager.sol``` contract can be configured to use an off-chain random number source. This source is accessed via the ```IOffchainRandomSource.sol``` interface. To allow the flexibility to switch off-chain random sources, there is an adaptor contract between the offchain random source contract and the random manager. + +Initially, no offchain random source will be used. As such, the ```RandomSourceAdaptor.sol``` contract has not been implemented at this time. + + +## Random Number Request and Retreival Flow diff --git a/contracts/random/random-architecture.png b/contracts/random/random-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..7d88fd1dc1855e824e1bdb86cc49f674670f7e7d GIT binary patch literal 92685 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%0AOekA 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 literal 0 HcmV?d00001 From 87952c8c656aa38b4e3557023b00c62e884bb1d8 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 19 Dec 2023 17:17:41 +1000 Subject: [PATCH 016/100] Update docs --- contracts/random/README.md | 18 +++++++++++++++++- contracts/random/random-sequence.png | Bin 0 -> 332531 bytes 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 contracts/random/random-sequence.png diff --git a/contracts/random/README.md b/contracts/random/README.md index 6037fe68..7def6645 100644 --- a/contracts/random/README.md +++ b/contracts/random/README.md @@ -19,4 +19,20 @@ The ```RandomManager.sol``` contract can be configured to use an off-chain rando Initially, no offchain random source will be used. As such, the ```RandomSourceAdaptor.sol``` contract has not been implemented at this time. -## Random Number Request and Retreival Flow +## Process of Requesting a Random Number + +The process for requesting a random number is shown below. Players do actions requiring a random number. They purchase, or commit to the random value, which is later revealed. + +![Random number genration](./random-sequence.png) + +The steps are: + +* The game contract calls ```requestRandomValueCreation```, passing in a security level. Values of 1 or 2 are OK for small value random numbers, and higher values such as 3 or 4 are better for high value random numbers. The security level relates to how many blocks must pass or off-chain random numbers need to be submitted prior to returning the random value. +* The ```requestRandomValueCreation``` returns a value ```_randomRequestId```. This value is supplied later to fetch the random value once it has been generated. + +* TODO should have a "is it ready step" in the sequence. + +* The game contract calls ```fetchRandom```, passing in the ```_randomRequestId```. The random seed is returned to the RandomValue.sol, which then customises the value prior returning it to the game. + + +Diagram source here: https://sequencediagram.org/index.html#initialData=C4S2BsFMAICUEMB2ATA9gW2gOQK7oEaQBO0A4pIsfKKogFB0AO8RoAxiM4sNAESnx0kAHQBnVOF7R4osoMhMW7Tkh68EKDADV44HCPGTps2FsWsQHLmo1p0AWSTwA5sTESpMuPYbOiqHEZoAAVweABPYmhGHCI2AAsZSFl4aCIkO2k2GnoBIQBaAD5TAC40yABHfVFgW21dfQBhIkhqEFoACgAdRBwQbgAmAFYANmgAfVFINliwcIAZSAA3SHAASjpTIth7Mpaq5NqMjG7e-uBhscnp2eAF5dWN0wAefPydsvH0zXRYSurgABJZB0PKQV7vLSfb52P4HGrAugUEF0RCoYAwVArEhggA0HwA6vAwNAAGaoEipfDgVBsADW0GAqGghGi-mQODYkGQ0Ap0kQvNJpPyCWJAphGEZzNZyFWIGx3OEvn8gTkQmgsvA8uIsgA9OUVrpZBLMPBsu1cvJtlCyZBgAk6uhTn1BqMJia4QDgU8tNtdtBXEcfgBlSDc53nS7u46-f6Hb2bLQQj7RkNhkFbYo24I62i6EBTNIx6C9AhRHpMgPyXHRMKRIg1jLleHAHqlwhEJVg5M2r4xnR6BTIhgjuhAA \ No newline at end of file diff --git a/contracts/random/random-sequence.png b/contracts/random/random-sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..e6ba17a6a9d016d0e5f680679361bc0dcd1606b1 GIT binary patch literal 332531 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 literal 0 HcmV?d00001 From 8c03abf513a1aaccecbfd4273bf828dd058fb893 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 20 Dec 2023 17:08:49 +1000 Subject: [PATCH 017/100] Separated use of RANDAO --- contracts/random/RandomManager.sol | 101 ++++++++++++++++++++--------- remappings.txt | 2 + 2 files changed, 73 insertions(+), 30 deletions(-) create mode 100644 remappings.txt diff --git a/contracts/random/RandomManager.sol b/contracts/random/RandomManager.sol index b0af0bfa..fc7d7e1d 100644 --- a/contracts/random/RandomManager.sol +++ b/contracts/random/RandomManager.sol @@ -2,16 +2,21 @@ // SPDX-License-Identifier: Apache 2 pragma solidity ^0.8.19; -import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol"; +import {AccessControlEnumerableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/extensions/AccessControlEnumerableUpgradeable.sol"; import {IOffchainRandomSource} from "./IOffchainRandomSource.sol"; // TODO should be upgradeable -contract RandomManager is AccessControl { +contract RandomManager is AccessControlEnumerableUpgradeable { error InvalidSecurityLevel(uint256 _securityLevel); error WaitForRandom(); + event OffchainRandomSourceSet(uint256 _offchainRandomSource); + event RanDaoEnabled(); + + bytes32 public constant RANDOM_ADMIN_ROLE = keccak256("RANDOM_ROLE"); + mapping (uint256 => bytes32) private randomOutput; uint256 private nextRandomIndex; @@ -20,18 +25,38 @@ contract RandomManager is AccessControl { IOffchainRandomSource public offchainRandomSource; - // TODO set-up access control - constructor() { + /** + * @notice Initialize the contract for use with a transparent proxy. + * @param _roleAdmin is the account that can add and remove addresses that have + * RANDOM_ADMIN_ROLE priviledge.. + * @param _randomAdmin is the account that has RANDOM_ADMIN_ROLE priviledge. + */ + function initialize(address _roleAdmin, address _randomAdmin) public virtual initializer { + _grantRole(DEFAULT_ADMIN_ROLE, _roleAdmin); + _grantRole(RANDOM_ROLE, _randomAdmin); + + // Use the chain id as an input into the random number generator to ensure + // all random numbers are personalised to this chain. randomOutput[0] = keccak256(abi.encodePacked(block.chainid, block.number)); nextRandomIndex = 1; } - // TODO Access control - function setOffchainRandomSource(address _offchainRandomSource) external { + /** + * @notice Change the offchain random source. + * @dev Must have RANDOM_ROLE. + * @param _offchainRandomSource Address of contract that is an offchain random source. + */ + function setOffchainRandomSource(address _offchainRandomSource) external hasRole(RANDOM_ROLE) { offchainRandomSource = IOffchainRandomSource(_offchainRandomSource); + emit OffchainRandomSourceSet(_offchainRandomSource); } + function enableRanDao() external hasRole(RANDOM_ROLE) { + ranDaoEnabled = true; + emit RanDaoEnabled(); + } + /** * @notice Generate a random value. */ @@ -39,7 +64,7 @@ contract RandomManager is AccessControl { // Previous random output. bytes32 prevRandomOutput = randomOutput[nextRandomIndex - 1]; - // Use the off chain random provider if it has been configured. + // Use the off-chain random provider if it has been configured. IOffchainRandomSource offchainSourceCached = offchainRandomSource; if (address(offchainSourceCached) != address(0)) { bytes32 offchainRandom; @@ -50,36 +75,52 @@ contract RandomManager is AccessControl { return; } randomOutput[nextRandomIndex++] = keccak256(abi.encodePacked(prevRandomOutput, offchainRandom)); + return; } - else { - // If the off chain random provider has NOT been configured, use on-chain sources. - // NOTE: Block proposers can influence these values. - // This values can only be updated once per block. - if (lastBlockRandomGenerated == block.number) { - return; - } + // The values below can only be updated once per block. + if (lastBlockRandomGenerated == block.number) { + return; + } - // Block hash will be different for each block. The block producer could manipulate - // the block hash by selecting which set of transactions to include in a block or - // crafting a transaction that included a number that the block producer controlled. - bytes32 blockHash = blockhash(block.number); - // Timestamp will be different for each block. The block producer could manipulate - // the timestamp by changing the time recorded as when the block was produced. The - // block will be deemed invalid if the value is too far from the expected block time. - // slither-disable-next-line timestamp - uint256 timestamp = block.timestamp; + // If the off-chain random provider hasn't been configured yet, but the + // consensus protocol supports RANDAO, use RANDAO. + if (ranDaoEnabled) { // PrevRanDAO (previously known as DIFFICULTY) is the output of the RanDAO function // used as a part of consensus. The value posted is the value revealed in the previous // block, not in this block. In this way, all parties know the value prior to it being // useable by applications. - // This can be influenced by a block producer deciding to produce or not produce a block. - // NOTE: Prior to the BFT fork (expected in the first half of 2024), this value will - // be a predictable value. + // + // The RanDAO value can be influenced by a block producer deciding to produce or + // not produce a block. This limits the block producer's influence to one of two + // values. + // + // Prior to the BFT fork (expected in the first half of 2024), this value will + // be a predictable value related to the block number. uint256 prevRanDAO = block.prevrandao; - // The new random value is a combination of - randomOutput[nextRandomIndex++] = keccak256(abi.encodePacked(prevRandomOutput, blockHash, timestamp, prevRanDAO)); + randomOutput[nextRandomIndex++] = keccak256(abi.encodePacked(prevRandomOutput, prevRanDAO)); + } + else { + // If neither off-chain random nor RANDAO is available, use block hash + // and block number. + + // Block hash will be different for each block and difficult for game players + // to guess. The block producer could manipulate the block hash by crafting a + // transaction that included a number that the block producer controlled. A + // malicious block producer could produce many candidate blocks, in an attempt + // to produce a specific value. + bytes32 blockHash = blockhash(block.number); + + // Timestamp when a block is produced in milli-seconds will be different for each + // block. Game players could estimate the possible values for the timestamp. + // The block producer could manipulate the timestamp by changing the time recorded + // as when the block was produced. The block will be deemed invalid if the value is + // too far from the expected block time. + // slither-disable-next-line timestamp + uint256 timestamp = block.timestamp; + + randomOutput[nextRandomIndex++] = keccak256(abi.encodePacked(prevRandomOutput, blockHash, timestamp)); } } @@ -130,6 +171,6 @@ contract RandomManager is AccessControl { } - - // TODO storage gap + // slither-disable-next-line unused-state,naming-convention + uint256[100] private __gapRootManager; } \ No newline at end of file diff --git a/remappings.txt b/remappings.txt new file mode 100644 index 00000000..1c16eeb3 --- /dev/null +++ b/remappings.txt @@ -0,0 +1,2 @@ +@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/ +@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/ From b6a79561ab44e7dc35299ba91f24aef297b9b86e Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 12:19:47 +1000 Subject: [PATCH 018/100] Re-add trading --- .../trading/seaport/ImmutableSeaport.sol | 681 ++++++++++++++++++ .../seaport/conduit/ConduitController.sol | 4 + .../interfaces/ImmutableSeaportEvents.sol | 14 + .../seaport/test/SeaportTestContracts.sol | 10 + .../validators/ReadOnlyOrderValidator.sol | 4 + .../seaport/validators/SeaportValidator.sol | 4 + .../validators/SeaportValidatorHelper.sol | 4 + .../seaport/zones/ImmutableSignedZone.sol | 605 ++++++++++++++++ contracts/trading/seaport/zones/README.md | 49 ++ .../zones/interfaces/SIP5Interface.sol | 28 + .../zones/interfaces/SIP6EventsAndErrors.sol | 14 + .../zones/interfaces/SIP7EventsAndErrors.sol | 75 ++ .../zones/interfaces/SIP7Interface.sol | 59 ++ remappings.txt | 2 + 14 files changed, 1553 insertions(+) create mode 100644 contracts/trading/seaport/ImmutableSeaport.sol create mode 100644 contracts/trading/seaport/conduit/ConduitController.sol create mode 100644 contracts/trading/seaport/interfaces/ImmutableSeaportEvents.sol create mode 100644 contracts/trading/seaport/test/SeaportTestContracts.sol create mode 100644 contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol create mode 100644 contracts/trading/seaport/validators/SeaportValidator.sol create mode 100644 contracts/trading/seaport/validators/SeaportValidatorHelper.sol create mode 100644 contracts/trading/seaport/zones/ImmutableSignedZone.sol create mode 100644 contracts/trading/seaport/zones/README.md create mode 100644 contracts/trading/seaport/zones/interfaces/SIP5Interface.sol create mode 100644 contracts/trading/seaport/zones/interfaces/SIP6EventsAndErrors.sol create mode 100644 contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol create mode 100644 contracts/trading/seaport/zones/interfaces/SIP7Interface.sol diff --git a/contracts/trading/seaport/ImmutableSeaport.sol b/contracts/trading/seaport/ImmutableSeaport.sol new file mode 100644 index 00000000..05dcd27b --- /dev/null +++ b/contracts/trading/seaport/ImmutableSeaport.sol @@ -0,0 +1,681 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache-2 +pragma solidity 0.8.17; + +import { Consideration } from "seaport-core/src/lib/Consideration.sol"; +import { + AdvancedOrder, + BasicOrderParameters, + CriteriaResolver, + Execution, + Fulfillment, + FulfillmentComponent, + Order, + OrderComponents +} from "seaport-types/src/lib/ConsiderationStructs.sol"; +import { OrderType } from "seaport-types/src/lib/ConsiderationEnums.sol"; +import { Ownable2Step } from "@openzeppelin/contracts/access/Ownable2Step.sol"; +import { + ImmutableSeaportEvents +} from "./interfaces/ImmutableSeaportEvents.sol"; + +/** + * @title ImmutableSeaport + * @custom:version 1.5 + * @notice Seaport is a generalized native token/ERC20/ERC721/ERC1155 + * marketplace with lightweight methods for common routes as well as + * more flexible methods for composing advanced orders or groups of + * orders. Each order contains an arbitrary number of items that may be + * spent (the "offer") along with an arbitrary number of items that must + * be received back by the indicated recipients (the "consideration"). + */ +contract ImmutableSeaport is + Consideration, + Ownable2Step, + ImmutableSeaportEvents +{ + // Mapping to store valid ImmutableZones - this allows for multiple Zones + // to be active at the same time, and can be expired or added on demand. + mapping(address => bool) public allowedZones; + + error OrderNotRestricted(); + error InvalidZone(address zone); + + /** + * @notice Derive and set hashes, reference chainId, and associated domain + * separator during deployment. + * + * @param conduitController A contract that deploys conduits, or proxies + * that may optionally be used to transfer approved + * ERC20/721/1155 tokens. + */ + constructor( + address conduitController + ) Consideration(conduitController) Ownable2Step() {} + + /** + * @dev Set the validity of a zone for use during fulfillment. + */ + function setAllowedZone(address zone, bool allowed) external onlyOwner { + allowedZones[zone] = allowed; + emit AllowedZoneSet(zone, allowed); + } + + /** + * @dev Internal pure function to retrieve and return the name of this + * contract. + * + * @return The name of this contract. + */ + function _name() internal pure override returns (string memory) { + // Return the name of the contract. + return "ImmutableSeaport"; + } + + /** + * @dev Internal pure function to retrieve the name of this contract as a + * string that will be used to derive the name hash in the constructor. + * + * @return The name of this contract as a string. + */ + function _nameString() internal pure override returns (string memory) { + // Return the name of the contract. + return "ImmutableSeaport"; + } + + /** + * @dev Helper function to revert any fulfillment that has an invalid zone + */ + function _rejectIfZoneInvalid(address zone) internal view { + if (!allowedZones[zone]) { + revert InvalidZone(zone); + } + } + + /** + * @notice Fulfill an order offering an ERC20, ERC721, or ERC1155 item by + * supplying Ether (or other native tokens), ERC20 tokens, an ERC721 + * item, or an ERC1155 item as consideration. Six permutations are + * supported: Native token to ERC721, Native token to ERC1155, ERC20 + * to ERC721, ERC20 to ERC1155, ERC721 to ERC20, and ERC1155 to + * ERC20 (with native tokens supplied as msg.value). For an order to + * be eligible for fulfillment via this method, it must contain a + * single offer item (though that item may have a greater amount if + * the item is not an ERC721). An arbitrary number of "additional + * recipients" may also be supplied which will each receive native + * tokens or ERC20 items from the fulfiller as consideration. Refer + * to the documentation for a more comprehensive summary of how to + * utilize this method and what orders are compatible with it. + * + * @param parameters Additional information on the fulfilled order. Note + * that the offerer and the fulfiller must first approve + * this contract (or their chosen conduit if indicated) + * before any tokens can be transferred. Also note that + * contract recipients of ERC1155 consideration items must + * implement `onERC1155Received` to receive those items. + * + * @return fulfilled A boolean indicating whether the order has been + * successfully fulfilled. + */ + function fulfillBasicOrder( + BasicOrderParameters calldata parameters + ) public payable virtual override returns (bool fulfilled) { + // All restricted orders are captured using this method + if ( + uint(parameters.basicOrderType) % 4 != 2 && + uint(parameters.basicOrderType) % 4 != 3 + ) { + revert OrderNotRestricted(); + } + + _rejectIfZoneInvalid(parameters.zone); + + return super.fulfillBasicOrder(parameters); + } + + /** + * @notice Fulfill an order offering an ERC20, ERC721, or ERC1155 item by + * supplying Ether (or other native tokens), ERC20 tokens, an ERC721 + * item, or an ERC1155 item as consideration. Six permutations are + * supported: Native token to ERC721, Native token to ERC1155, ERC20 + * to ERC721, ERC20 to ERC1155, ERC721 to ERC20, and ERC1155 to + * ERC20 (with native tokens supplied as msg.value). For an order to + * be eligible for fulfillment via this method, it must contain a + * single offer item (though that item may have a greater amount if + * the item is not an ERC721). An arbitrary number of "additional + * recipients" may also be supplied which will each receive native + * tokens or ERC20 items from the fulfiller as consideration. Refer + * to the documentation for a more comprehensive summary of how to + * utilize this method and what orders are compatible with it. Note + * that this function costs less gas than `fulfillBasicOrder` due to + * the zero bytes in the function selector (0x00000000) which also + * results in earlier function dispatch. + * + * @param parameters Additional information on the fulfilled order. Note + * that the offerer and the fulfiller must first approve + * this contract (or their chosen conduit if indicated) + * before any tokens can be transferred. Also note that + * contract recipients of ERC1155 consideration items must + * implement `onERC1155Received` to receive those items. + * + * @return fulfilled A boolean indicating whether the order has been + * successfully fulfilled. + */ + function fulfillBasicOrder_efficient_6GL6yc( + BasicOrderParameters calldata parameters + ) public payable virtual override returns (bool fulfilled) { + // All restricted orders are captured using this method + if ( + uint(parameters.basicOrderType) % 4 != 2 && + uint(parameters.basicOrderType) % 4 != 3 + ) { + revert OrderNotRestricted(); + } + + _rejectIfZoneInvalid(parameters.zone); + + return super.fulfillBasicOrder_efficient_6GL6yc(parameters); + } + + /** + * @notice Fulfill an order with an arbitrary number of items for offer and + * consideration. Note that this function does not support + * criteria-based orders or partial filling of orders (though + * filling the remainder of a partially-filled order is supported). + * + * @custom:param order The order to fulfill. Note that both the + * offerer and the fulfiller must first approve + * this contract (or the corresponding conduit if + * indicated) to transfer any relevant tokens on + * their behalf and that contracts must implement + * `onERC1155Received` to receive ERC1155 tokens + * as consideration. + * @param fulfillerConduitKey A bytes32 value indicating what conduit, if + * any, to source the fulfiller's token approvals + * from. The zero hash signifies that no conduit + * should be used (and direct approvals set on + * this contract). + * + * @return fulfilled A boolean indicating whether the order has been + * successfully fulfilled. + */ + function fulfillOrder( + /** + * @custom:name order + */ + Order calldata order, + bytes32 fulfillerConduitKey + ) public payable virtual override returns (bool fulfilled) { + if ( + order.parameters.orderType != OrderType.FULL_RESTRICTED && + order.parameters.orderType != OrderType.PARTIAL_RESTRICTED + ) { + revert OrderNotRestricted(); + } + + _rejectIfZoneInvalid(order.parameters.zone); + + return super.fulfillOrder(order, fulfillerConduitKey); + } + + /** + * @notice Fill an order, fully or partially, with an arbitrary number of + * items for offer and consideration alongside criteria resolvers + * containing specific token identifiers and associated proofs. + * + * @custom:param advancedOrder The order to fulfill along with the + * fraction of the order to attempt to fill. + * Note that both the offerer and the + * fulfiller must first approve this + * contract (or their conduit if indicated + * by the order) to transfer any relevant + * tokens on their behalf and that contracts + * must implement `onERC1155Received` to + * receive ERC1155 tokens as consideration. + * Also note that all offer and + * consideration components must have no + * remainder after multiplication of the + * respective amount with the supplied + * fraction for the partial fill to be + * considered valid. + * @custom:param criteriaResolvers An array where each element contains a + * reference to a specific offer or + * consideration, a token identifier, and a + * proof that the supplied token identifier + * is contained in the merkle root held by + * the item in question's criteria element. + * Note that an empty criteria indicates + * that any (transferable) token identifier + * on the token in question is valid and + * that no associated proof needs to be + * supplied. + * @param fulfillerConduitKey A bytes32 value indicating what conduit, + * if any, to source the fulfiller's token + * approvals from. The zero hash signifies + * that no conduit should be used (and + * direct approvals set on this contract). + * @param recipient The intended recipient for all received + * items, with `address(0)` indicating that + * the caller should receive the items. + * + * @return fulfilled A boolean indicating whether the order has been + * successfully fulfilled. + */ + function fulfillAdvancedOrder( + /** + * @custom:name advancedOrder + */ + AdvancedOrder calldata advancedOrder, + /** + * @custom:name criteriaResolvers + */ + CriteriaResolver[] calldata criteriaResolvers, + bytes32 fulfillerConduitKey, + address recipient + ) public payable virtual override returns (bool fulfilled) { + if ( + advancedOrder.parameters.orderType != OrderType.FULL_RESTRICTED && + advancedOrder.parameters.orderType != OrderType.PARTIAL_RESTRICTED + ) { + revert OrderNotRestricted(); + } + + _rejectIfZoneInvalid(advancedOrder.parameters.zone); + + return + super.fulfillAdvancedOrder( + advancedOrder, + criteriaResolvers, + fulfillerConduitKey, + recipient + ); + } + + /** + * @notice Attempt to fill a group of orders, each with an arbitrary number + * of items for offer and consideration. Any order that is not + * currently active, has already been fully filled, or has been + * cancelled will be omitted. Remaining offer and consideration + * items will then be aggregated where possible as indicated by the + * supplied offer and consideration component arrays and aggregated + * items will be transferred to the fulfiller or to each intended + * recipient, respectively. Note that a failing item transfer or an + * issue with order formatting will cause the entire batch to fail. + * Note that this function does not support criteria-based orders or + * partial filling of orders (though filling the remainder of a + * partially-filled order is supported). + * + * @custom:param orders The orders to fulfill. Note that + * both the offerer and the + * fulfiller must first approve this + * contract (or the corresponding + * conduit if indicated) to transfer + * any relevant tokens on their + * behalf and that contracts must + * implement `onERC1155Received` to + * receive ERC1155 tokens as + * consideration. + * @custom:param offerFulfillments An array of FulfillmentComponent + * arrays indicating which offer + * items to attempt to aggregate + * when preparing executions. Note + * that any offer items not included + * as part of a fulfillment will be + * sent unaggregated to the caller. + * @custom:param considerationFulfillments An array of FulfillmentComponent + * arrays indicating which + * consideration items to attempt to + * aggregate when preparing + * executions. + * @param fulfillerConduitKey A bytes32 value indicating what + * conduit, if any, to source the + * fulfiller's token approvals from. + * The zero hash signifies that no + * conduit should be used (and + * direct approvals set on this + * contract). + * @param maximumFulfilled The maximum number of orders to + * fulfill. + * + * @return availableOrders An array of booleans indicating if each order + * with an index corresponding to the index of the + * returned boolean was fulfillable or not. + * @return executions An array of elements indicating the sequence of + * transfers performed as part of matching the given + * orders. + */ + function fulfillAvailableOrders( + /** + * @custom:name orders + */ + Order[] calldata orders, + /** + * @custom:name offerFulfillments + */ + FulfillmentComponent[][] calldata offerFulfillments, + /** + * @custom:name considerationFulfillments + */ + FulfillmentComponent[][] calldata considerationFulfillments, + bytes32 fulfillerConduitKey, + uint256 maximumFulfilled + ) + public + payable + virtual + override + returns ( + bool[] memory, + /* availableOrders */ Execution[] memory /* executions */ + ) + { + for (uint256 i = 0; i < orders.length; i++) { + Order memory order = orders[i]; + if ( + order.parameters.orderType != OrderType.FULL_RESTRICTED && + order.parameters.orderType != OrderType.PARTIAL_RESTRICTED + ) { + revert OrderNotRestricted(); + } + _rejectIfZoneInvalid(order.parameters.zone); + } + + return + super.fulfillAvailableOrders( + orders, + offerFulfillments, + considerationFulfillments, + fulfillerConduitKey, + maximumFulfilled + ); + } + + /** + * @notice Attempt to fill a group of orders, fully or partially, with an + * arbitrary number of items for offer and consideration per order + * alongside criteria resolvers containing specific token + * identifiers and associated proofs. Any order that is not + * currently active, has already been fully filled, or has been + * cancelled will be omitted. Remaining offer and consideration + * items will then be aggregated where possible as indicated by the + * supplied offer and consideration component arrays and aggregated + * items will be transferred to the fulfiller or to each intended + * recipient, respectively. Note that a failing item transfer or an + * issue with order formatting will cause the entire batch to fail. + * + * @custom:param advancedOrders The orders to fulfill along with + * the fraction of those orders to + * attempt to fill. Note that both + * the offerer and the fulfiller + * must first approve this contract + * (or their conduit if indicated by + * the order) to transfer any + * relevant tokens on their behalf + * and that contracts must implement + * `onERC1155Received` to receive + * ERC1155 tokens as consideration. + * Also note that all offer and + * consideration components must + * have no remainder after + * multiplication of the respective + * amount with the supplied fraction + * for an order's partial fill + * amount to be considered valid. + * @custom:param criteriaResolvers An array where each element + * contains a reference to a + * specific offer or consideration, + * a token identifier, and a proof + * that the supplied token + * identifier is contained in the + * merkle root held by the item in + * question's criteria element. Note + * that an empty criteria indicates + * that any (transferable) token + * identifier on the token in + * question is valid and that no + * associated proof needs to be + * supplied. + * @custom:param offerFulfillments An array of FulfillmentComponent + * arrays indicating which offer + * items to attempt to aggregate + * when preparing executions. Note + * that any offer items not included + * as part of a fulfillment will be + * sent unaggregated to the caller. + * @custom:param considerationFulfillments An array of FulfillmentComponent + * arrays indicating which + * consideration items to attempt to + * aggregate when preparing + * executions. + * @param fulfillerConduitKey A bytes32 value indicating what + * conduit, if any, to source the + * fulfiller's token approvals from. + * The zero hash signifies that no + * conduit should be used (and + * direct approvals set on this + * contract). + * @param recipient The intended recipient for all + * received items, with `address(0)` + * indicating that the caller should + * receive the offer items. + * @param maximumFulfilled The maximum number of orders to + * fulfill. + * + * @return availableOrders An array of booleans indicating if each order + * with an index corresponding to the index of the + * returned boolean was fulfillable or not. + * @return executions An array of elements indicating the sequence of + * transfers performed as part of matching the given + * orders. + */ + function fulfillAvailableAdvancedOrders( + /** + * @custom:name advancedOrders + */ + AdvancedOrder[] calldata advancedOrders, + /** + * @custom:name criteriaResolvers + */ + CriteriaResolver[] calldata criteriaResolvers, + /** + * @custom:name offerFulfillments + */ + FulfillmentComponent[][] calldata offerFulfillments, + /** + * @custom:name considerationFulfillments + */ + FulfillmentComponent[][] calldata considerationFulfillments, + bytes32 fulfillerConduitKey, + address recipient, + uint256 maximumFulfilled + ) + public + payable + virtual + override + returns ( + bool[] memory, + /* availableOrders */ Execution[] memory /* executions */ + ) + { + for (uint256 i = 0; i < advancedOrders.length; i++) { + AdvancedOrder memory advancedOrder = advancedOrders[i]; + if ( + advancedOrder.parameters.orderType != + OrderType.FULL_RESTRICTED && + advancedOrder.parameters.orderType != + OrderType.PARTIAL_RESTRICTED + ) { + revert OrderNotRestricted(); + } + + _rejectIfZoneInvalid(advancedOrder.parameters.zone); + } + + return + super.fulfillAvailableAdvancedOrders( + advancedOrders, + criteriaResolvers, + offerFulfillments, + considerationFulfillments, + fulfillerConduitKey, + recipient, + maximumFulfilled + ); + } + + /** + * @notice Match an arbitrary number of orders, each with an arbitrary + * number of items for offer and consideration along with a set of + * fulfillments allocating offer components to consideration + * components. Note that this function does not support + * criteria-based or partial filling of orders (though filling the + * remainder of a partially-filled order is supported). Any unspent + * offer item amounts or native tokens will be transferred to the + * caller. + * + * @custom:param orders The orders to match. Note that both the + * offerer and fulfiller on each order must first + * approve this contract (or their conduit if + * indicated by the order) to transfer any + * relevant tokens on their behalf and each + * consideration recipient must implement + * `onERC1155Received` to receive ERC1155 tokens. + * @custom:param fulfillments An array of elements allocating offer + * components to consideration components. Note + * that each consideration component must be + * fully met for the match operation to be valid, + * and that any unspent offer items will be sent + * unaggregated to the caller. + * + * @return executions An array of elements indicating the sequence of + * transfers performed as part of matching the given + * orders. Note that unspent offer item amounts or native + * tokens will not be reflected as part of this array. + */ + function matchOrders( + /** + * @custom:name orders + */ + Order[] calldata orders, + /** + * @custom:name fulfillments + */ + Fulfillment[] calldata fulfillments + ) + public + payable + virtual + override + returns (Execution[] memory /* executions */) + { + for (uint256 i = 0; i < orders.length; i++) { + Order memory order = orders[i]; + if ( + order.parameters.orderType != OrderType.FULL_RESTRICTED && + order.parameters.orderType != OrderType.PARTIAL_RESTRICTED + ) { + revert OrderNotRestricted(); + } + _rejectIfZoneInvalid(order.parameters.zone); + } + + return super.matchOrders(orders, fulfillments); + } + + /** + * @notice Match an arbitrary number of full, partial, or contract orders, + * each with an arbitrary number of items for offer and + * consideration, supplying criteria resolvers containing specific + * token identifiers and associated proofs as well as fulfillments + * allocating offer components to consideration components. Any + * unspent offer item amounts will be transferred to the designated + * recipient (with the null address signifying to use the caller) + * and any unspent native tokens will be returned to the caller. + * + * @custom:param advancedOrders The advanced orders to match. Note that + * both the offerer and fulfiller on each + * order must first approve this contract + * (or their conduit if indicated by the + * order) to transfer any relevant tokens on + * their behalf and each consideration + * recipient must implement + * `onERC1155Received` to receive ERC1155 + * tokens. Also note that the offer and + * consideration components for each order + * must have no remainder after multiplying + * the respective amount with the supplied + * fraction for the group of partial fills + * to be considered valid. + * @custom:param criteriaResolvers An array where each element contains a + * reference to a specific offer or + * consideration, a token identifier, and a + * proof that the supplied token identifier + * is contained in the merkle root held by + * the item in question's criteria element. + * Note that an empty criteria indicates + * that any (transferable) token identifier + * on the token in question is valid and + * that no associated proof needs to be + * supplied. + * @custom:param fulfillments An array of elements allocating offer + * components to consideration components. + * Note that each consideration component + * must be fully met for the match operation + * to be valid, and that any unspent offer + * items will be sent unaggregated to the + * designated recipient. + * @param recipient The intended recipient for all unspent + * offer item amounts, or the caller if the + * null address is supplied. + * + * @return executions An array of elements indicating the sequence of + * transfers performed as part of matching the given + * orders. Note that unspent offer item amounts or + * native tokens will not be reflected as part of this + * array. + */ + function matchAdvancedOrders( + /** + * @custom:name advancedOrders + */ + AdvancedOrder[] calldata advancedOrders, + /** + * @custom:name criteriaResolvers + */ + CriteriaResolver[] calldata criteriaResolvers, + /** + * @custom:name fulfillments + */ + Fulfillment[] calldata fulfillments, + address recipient + ) + public + payable + virtual + override + returns (Execution[] memory /* executions */) + { + for (uint256 i = 0; i < advancedOrders.length; i++) { + AdvancedOrder memory advancedOrder = advancedOrders[i]; + if ( + advancedOrder.parameters.orderType != + OrderType.FULL_RESTRICTED && + advancedOrder.parameters.orderType != + OrderType.PARTIAL_RESTRICTED + ) { + revert OrderNotRestricted(); + } + + _rejectIfZoneInvalid(advancedOrder.parameters.zone); + } + + return + super.matchAdvancedOrders( + advancedOrders, + criteriaResolvers, + fulfillments, + recipient + ); + } +} diff --git a/contracts/trading/seaport/conduit/ConduitController.sol b/contracts/trading/seaport/conduit/ConduitController.sol new file mode 100644 index 00000000..11c02ae3 --- /dev/null +++ b/contracts/trading/seaport/conduit/ConduitController.sol @@ -0,0 +1,4 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.14; + +import { ConduitController } from "seaport-core/src/conduit/ConduitController.sol"; diff --git a/contracts/trading/seaport/interfaces/ImmutableSeaportEvents.sol b/contracts/trading/seaport/interfaces/ImmutableSeaportEvents.sol new file mode 100644 index 00000000..d57fa0c4 --- /dev/null +++ b/contracts/trading/seaport/interfaces/ImmutableSeaportEvents.sol @@ -0,0 +1,14 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache-2 +pragma solidity 0.8.17; + +/** + * @notice ImmutableSeaportEvents contains events + * related to the ImmutableSeaport contract + */ +interface ImmutableSeaportEvents { + /** + * @dev Emit an event when an allowed zone status is updated + */ + event AllowedZoneSet(address zoneAddress, bool allowed); +} diff --git a/contracts/trading/seaport/test/SeaportTestContracts.sol b/contracts/trading/seaport/test/SeaportTestContracts.sol new file mode 100644 index 00000000..1e66da80 --- /dev/null +++ b/contracts/trading/seaport/test/SeaportTestContracts.sol @@ -0,0 +1,10 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache-2 +pragma solidity >=0.8.4; + +/** + * @dev Import test contract helpers from Immutable pinned fork of OpenSea's seaport + * These are not deployed - they are only used for testing + */ +import "seaport/contracts/test/TestERC721.sol"; +import "seaport/contracts/test/TestZone.sol"; diff --git a/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol b/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol new file mode 100644 index 00000000..8a823c82 --- /dev/null +++ b/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol @@ -0,0 +1,4 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { ReadOnlyOrderValidator } from "seaport/contracts/helpers/order-validator/lib/ReadOnlyOrderValidator.sol"; diff --git a/contracts/trading/seaport/validators/SeaportValidator.sol b/contracts/trading/seaport/validators/SeaportValidator.sol new file mode 100644 index 00000000..b431bcb4 --- /dev/null +++ b/contracts/trading/seaport/validators/SeaportValidator.sol @@ -0,0 +1,4 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { SeaportValidator } from "seaport/contracts/helpers/order-validator/SeaportValidator.sol"; diff --git a/contracts/trading/seaport/validators/SeaportValidatorHelper.sol b/contracts/trading/seaport/validators/SeaportValidatorHelper.sol new file mode 100644 index 00000000..0334c9cd --- /dev/null +++ b/contracts/trading/seaport/validators/SeaportValidatorHelper.sol @@ -0,0 +1,4 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { SeaportValidatorHelper } from "seaport/contracts/helpers/order-validator/lib/SeaportValidatorHelper.sol"; diff --git a/contracts/trading/seaport/zones/ImmutableSignedZone.sol b/contracts/trading/seaport/zones/ImmutableSignedZone.sol new file mode 100644 index 00000000..733904b7 --- /dev/null +++ b/contracts/trading/seaport/zones/ImmutableSignedZone.sol @@ -0,0 +1,605 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache-2 +pragma solidity 0.8.17; + +import { + ZoneParameters, + Schema, + ReceivedItem +} from "seaport-types/src/lib/ConsiderationStructs.sol"; +import { ZoneInterface } from "seaport/contracts/interfaces/ZoneInterface.sol"; +import { SIP7Interface } from "./interfaces/SIP7Interface.sol"; +import { SIP7EventsAndErrors } from "./interfaces/SIP7EventsAndErrors.sol"; +import { SIP6EventsAndErrors } from "./interfaces/SIP6EventsAndErrors.sol"; +import { SIP5Interface } from "./interfaces/SIP5Interface.sol"; +import { Ownable2Step } from "@openzeppelin/contracts/access/Ownable2Step.sol"; +import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; +import { Strings } from "@openzeppelin/contracts/utils/Strings.sol"; +import { ERC165 } from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; + +/** + * @title ImmutableSignedZone + * @author Immutable + * @notice ImmutableSignedZone is a zone implementation based on the + * SIP-7 standard https://github.com/ProjectOpenSea/SIPs/blob/main/SIPS/sip-7.md + * Implementing substandard 3 and 4. + * + * Inspiration and reference from the following contracts: + * https://github.com/ProjectOpenSea/seaport/blob/024dcc5cd70231ce6db27b4e12ea6fb736f69b06/contracts/zones/SignedZone.sol + * - We notably deviate from this contract by implementing substandard 3, and SIP-6. + * https://github.com/reservoirprotocol/seaport-oracle/blob/master/packages/contracts/src/zones/SignedZone.sol + * - We deviate from this contract by going with a no assembly code reference contract approach, and we do not have a substandard + * prefix as part of the context bytes of extraData. + * - We estimate that for a standard validateOrder call with 10 consideration items, this contract consumes 1.9% more gas than the above + * as a tradeoff for having no assembly code. + */ +contract ImmutableSignedZone is + ERC165, + SIP7EventsAndErrors, + SIP6EventsAndErrors, + ZoneInterface, + SIP5Interface, + SIP7Interface, + Ownable2Step +{ + /// @dev The EIP-712 digest parameters. + bytes32 internal immutable _VERSION_HASH = keccak256(bytes("1.0")); + bytes32 internal immutable _EIP_712_DOMAIN_TYPEHASH = + keccak256( + abi.encodePacked( + "EIP712Domain(", + "string name,", + "string version,", + "uint256 chainId,", + "address verifyingContract", + ")" + ) + ); + + bytes32 internal immutable _SIGNED_ORDER_TYPEHASH = + keccak256( + abi.encodePacked( + "SignedOrder(", + "address fulfiller,", + "uint64 expiration,", + "bytes32 orderHash,", + "bytes context", + ")" + ) + ); + + bytes internal constant CONSIDERATION_BYTES = + abi.encodePacked("Consideration(", "ReceivedItem[] consideration", ")"); + + bytes internal constant RECEIVED_ITEM_BYTES = + abi.encodePacked( + "ReceivedItem(", + "uint8 itemType,", + "address token,", + "uint256 identifier,", + "uint256 amount,", + "address recipient", + ")" + ); + + bytes32 internal constant RECEIVED_ITEM_TYPEHASH = + keccak256(RECEIVED_ITEM_BYTES); + + bytes32 internal constant CONSIDERATION_TYPEHASH = + keccak256(abi.encodePacked(CONSIDERATION_BYTES, RECEIVED_ITEM_BYTES)); + + uint256 internal immutable _CHAIN_ID = block.chainid; + bytes32 internal immutable _DOMAIN_SEPARATOR; + uint8 internal immutable _ACCEPTED_SIP6_VERSION = 0; + + /// @dev The name for this zone returned in getSeaportMetadata(). + string private _ZONE_NAME; + + bytes32 internal _NAME_HASH; + + /// @dev The allowed signers. + mapping(address => SignerInfo) private _signers; + + /// @dev The API endpoint where orders for this zone can be signed. + /// Request and response payloads are defined in SIP-7. + string private _sip7APIEndpoint; + + /// @dev The documentationURI; + string private _documentationURI; + + /** + * @notice Constructor to deploy the contract. + * + * @param zoneName The name for the zone returned in + * getSeaportMetadata(). + * @param apiEndpoint The API endpoint where orders for this zone can be + * signed. + * Request and response payloads are defined in SIP-7. + */ + constructor( + string memory zoneName, + string memory apiEndpoint, + string memory documentationURI + ) { + // Set the zone name. + _ZONE_NAME = zoneName; + // set name hash + _NAME_HASH = keccak256(bytes(zoneName)); + + // Set the API endpoint. + _sip7APIEndpoint = apiEndpoint; + _documentationURI = documentationURI; + + // Derive and set the domain separator. + _DOMAIN_SEPARATOR = _deriveDomainSeparator(); + + // Emit an event to signal a SIP-5 contract has been deployed. + emit SeaportCompatibleContractDeployed(); + } + + /** + * @notice Add a new signer to the zone. + * + * @param signer The new signer address to add. + */ + function addSigner(address signer) external override onlyOwner { + // Do not allow the zero address to be added as a signer. + if (signer == address(0)) { + revert SignerCannotBeZeroAddress(); + } + + // Revert if the signer is already added. + if (_signers[signer].active) { + revert SignerAlreadyActive(signer); + } + + // Revert if the signer was previously authorized. + // Specified in SIP-7 to prevent compromised signer from being + // Cycled back into use. + if (_signers[signer].previouslyActive) { + revert SignerCannotBeReauthorized(signer); + } + + // Set the signer info. + _signers[signer] = SignerInfo(true, true); + + // Emit an event that the signer was added. + emit SignerAdded(signer); + } + + /** + * @notice Remove an active signer from the zone. + * + * @param signer The signer address to remove. + */ + function removeSigner(address signer) external override onlyOwner { + // Revert if the signer is not active. + if (!_signers[signer].active) { + revert SignerNotActive(signer); + } + + // Set the signer's active status to false. + _signers[signer].active = false; + + // Emit an event that the signer was removed. + emit SignerRemoved(signer); + } + + /** + * @notice Check if a given order including extraData is currently valid. + * + * @dev This function is called by Seaport whenever any extraData is + * provided by the caller. + * + * @return validOrderMagicValue A magic value indicating if the order is + * currently valid. + */ + function validateOrder( + ZoneParameters calldata zoneParameters + ) external view override returns (bytes4 validOrderMagicValue) { + // Put the extraData and orderHash on the stack for cheaper access. + bytes calldata extraData = zoneParameters.extraData; + bytes32 orderHash = zoneParameters.orderHash; + + // Revert with an error if the extraData is empty. + if (extraData.length == 0) { + revert InvalidExtraData("extraData is empty", orderHash); + } + + // We expect the extraData to conform with SIP-6 as well as SIP-7 + // Therefore all SIP-7 related data is offset by one byte + // SIP-7 specifically requires SIP-6 as a prerequisite. + + // Revert with an error if the extraData does not have valid length. + if (extraData.length < 93) { + revert InvalidExtraData( + "extraData length must be at least 93 bytes", + orderHash + ); + } + + // Revert if SIP6 version is not accepted (0) + if (uint8(extraData[0]) != _ACCEPTED_SIP6_VERSION) { + revert UnsupportedExtraDataVersion(uint8(extraData[0])); + } + + // extraData bytes 1-21: expected fulfiller + // (zero address means not restricted) + address expectedFulfiller = address(bytes20(extraData[1:21])); + + // extraData bytes 21-29: expiration timestamp (uint64) + uint64 expiration = uint64(bytes8(extraData[21:29])); + + // extraData bytes 29-93: signature + // (strictly requires 64 byte compact sig, ERC2098) + bytes calldata signature = extraData[29:93]; + + // extraData bytes 93-end: context (optional, variable length) + bytes calldata context = extraData[93:]; + + // Revert if expired. + if (block.timestamp > expiration) { + revert SignatureExpired(block.timestamp, expiration, orderHash); + } + + // Put fulfiller on the stack for more efficient access. + address actualFulfiller = zoneParameters.fulfiller; + + // Revert unless + // Expected fulfiller is 0 address (any fulfiller) or + // Expected fulfiller is the same as actual fulfiller + if ( + expectedFulfiller != address(0) && + expectedFulfiller != actualFulfiller + ) { + revert InvalidFulfiller( + expectedFulfiller, + actualFulfiller, + orderHash + ); + } + + // validate supported substandards (3,4) + _validateSubstandards( + context, + _deriveConsiderationHash(zoneParameters.consideration), + zoneParameters + ); + + // Derive the signedOrder hash + bytes32 signedOrderHash = _deriveSignedOrderHash( + expectedFulfiller, + expiration, + orderHash, + context + ); + + // Derive the EIP-712 digest using the domain separator and signedOrder + // hash through openzepplin helper + bytes32 digest = ECDSA.toTypedDataHash( + _domainSeparator(), + signedOrderHash + ); + + // Recover the signer address from the digest and signature. + // Pass in R and VS from compact signature (ERC2098) + address recoveredSigner = ECDSA.recover( + digest, + bytes32(signature[0:32]), + bytes32(signature[32:64]) + ); + + // Revert if the signer is not active + // !This also reverts if the digest constructed on serverside is incorrect + if (!_signers[recoveredSigner].active) { + revert SignerNotActive(recoveredSigner); + } + + // All validation completes and passes with no reverts, return valid + validOrderMagicValue = ZoneInterface.validateOrder.selector; + } + + /** + * @dev Internal view function to get the EIP-712 domain separator. If the + * chainId matches the chainId set on deployment, the cached domain + * separator will be returned; otherwise, it will be derived from + * scratch. + * + * @return The domain separator. + */ + function _domainSeparator() internal view returns (bytes32) { + return + block.chainid == _CHAIN_ID + ? _DOMAIN_SEPARATOR + : _deriveDomainSeparator(); + } + + /** + * @dev Returns Seaport metadata for this contract, returning the + * contract name and supported schemas. + * + * @return name The contract name + * @return schemas The supported SIPs + */ + function getSeaportMetadata() + external + view + override(SIP5Interface, ZoneInterface) + returns (string memory name, Schema[] memory schemas) + { + name = _ZONE_NAME; + + // supported SIP (7) + schemas = new Schema[](1); + schemas[0].id = 7; + + schemas[0].metadata = abi.encode( + keccak256( + abi.encode( + _domainSeparator(), + _sip7APIEndpoint, + _getSupportedSubstandards(), + _documentationURI + ) + ) + ); + } + + /** + * @dev Internal view function to derive the EIP-712 domain separator. + * + * @return domainSeparator The derived domain separator. + */ + function _deriveDomainSeparator() + internal + view + returns (bytes32 domainSeparator) + { + return + keccak256( + abi.encode( + _EIP_712_DOMAIN_TYPEHASH, + _NAME_HASH, + _VERSION_HASH, + block.chainid, + address(this) + ) + ); + } + + /** + * @notice Update the API endpoint returned by this zone. + * + * @param newApiEndpoint The new API endpoint. + */ + function updateAPIEndpoint( + string calldata newApiEndpoint + ) external override onlyOwner { + // Update to the new API endpoint. + _sip7APIEndpoint = newApiEndpoint; + } + + /** + * @notice Returns signing information about the zone. + * + * @return domainSeparator The domain separator used for signing. + */ + function sip7Information() + external + view + override + returns ( + bytes32 domainSeparator, + string memory apiEndpoint, + uint256[] memory substandards, + string memory documentationURI + ) + { + domainSeparator = _domainSeparator(); + apiEndpoint = _sip7APIEndpoint; + + substandards = _getSupportedSubstandards(); + + documentationURI = _documentationURI; + } + + /** + * @dev validate substandards 3 and 4 based on context + * + * @param context bytes payload of context + */ + function _validateSubstandards( + bytes calldata context, + bytes32 actualConsiderationHash, + ZoneParameters calldata zoneParameters + ) internal pure { + // substandard 3 - validate consideration hash actual match expected + + // first 32bytes of context must be exactly a keccak256 hash of consideration item array + if (context.length < 32) { + revert InvalidExtraData( + "invalid context, expecting consideration hash followed by order hashes", + zoneParameters.orderHash + ); + } + + // revert if order hash in context and payload do not match + bytes32 expectedConsiderationHash = bytes32(context[0:32]); + if (expectedConsiderationHash != actualConsiderationHash) { + revert SubstandardViolation( + 3, + "invalid consideration hash", + zoneParameters.orderHash + ); + } + + // substandard 4 - validate order hashes actual match expected + + // byte 33 to end are orderHashes array for substandard 4 + bytes calldata orderHashesBytes = context[32:]; + // context must be a multiple of 32 bytes + if (orderHashesBytes.length % 32 != 0) { + revert InvalidExtraData( + "invalid context, order hashes bytes not an array of bytes32 hashes", + zoneParameters.orderHash + ); + } + + // compute expected order hashes array based on context bytes + bytes32[] memory expectedOrderHashes = new bytes32[]( + orderHashesBytes.length / 32 + ); + for (uint256 i = 0; i < orderHashesBytes.length / 32; i++) { + expectedOrderHashes[i] = bytes32( + orderHashesBytes[i * 32:i * 32 + 32] + ); + } + + // revert if order hashes in context and payload do not match + // every expected order hash need to exist in fulfilling order hashes + if ( + !_everyElementExists( + expectedOrderHashes, + zoneParameters.orderHashes + ) + ) { + revert SubstandardViolation( + 4, + "invalid order hashes", + zoneParameters.orderHash + ); + } + } + + /** + * @dev get the supported substandards of the contract + * + * @return substandards array of substandards supported + * + */ + function _getSupportedSubstandards() + internal + pure + returns (uint256[] memory substandards) + { + // support substandards 3 and 4 + substandards = new uint256[](2); + substandards[0] = 3; + substandards[1] = 4; + } + + /** + * @dev Derive the signedOrder hash from the orderHash and expiration. + * + * @param fulfiller The expected fulfiller address. + * @param expiration The signature expiration timestamp. + * @param orderHash The order hash. + * @param context The optional variable-length context. + * + * @return signedOrderHash The signedOrder hash. + * + */ + function _deriveSignedOrderHash( + address fulfiller, + uint64 expiration, + bytes32 orderHash, + bytes calldata context + ) internal view returns (bytes32 signedOrderHash) { + // Derive the signed order hash. + signedOrderHash = keccak256( + abi.encode( + _SIGNED_ORDER_TYPEHASH, + fulfiller, + expiration, + orderHash, + keccak256(context) + ) + ); + } + + /** + * @dev Derive the EIP712 consideration hash based on received item array + * @param consideration expected consideration array + */ + function _deriveConsiderationHash( + ReceivedItem[] calldata consideration + ) internal pure returns (bytes32) { + uint256 numberOfItems = consideration.length; + bytes32[] memory considerationHashes = new bytes32[](numberOfItems); + for (uint256 i; i < numberOfItems; i++) { + considerationHashes[i] = keccak256( + abi.encode( + RECEIVED_ITEM_TYPEHASH, + consideration[i].itemType, + consideration[i].token, + consideration[i].identifier, + consideration[i].amount, + consideration[i].recipient + ) + ); + } + return + keccak256( + abi.encode( + CONSIDERATION_TYPEHASH, + keccak256(abi.encodePacked(considerationHashes)) + ) + ); + } + + /** + * @dev helper function to check if every element of array1 exists in array2 + * optimised for performance checking arrays sized 0-15 + * + * @param array1 subset array + * @param array2 superset array + */ + function _everyElementExists( + bytes32[] memory array1, + bytes32[] calldata array2 + ) internal pure returns (bool) { + // cache the length in memory for loop optimisation + uint256 array1Size = array1.length; + uint256 array2Size = array2.length; + + // we can assume all items (order hashes) are unique + // therefore if subset is bigger than superset, revert + if (array1Size > array2Size) { + return false; + } + + // Iterate through each element and compare them + for (uint256 i = 0; i < array1Size; ) { + bool found = false; + bytes32 item = array1[i]; + for (uint256 j = 0; j < array2Size; ) { + if (item == array2[j]) { + // if item from array1 is in array2, break + found = true; + break; + } + unchecked { + j++; + } + } + if (!found) { + // if any item from array1 is not found in array2, return false + return false; + } + unchecked { + i++; + } + } + + // All elements from array1 exist in array2 + return true; + } + + function supportsInterface( + bytes4 interfaceId + ) public view override(ERC165, ZoneInterface) returns (bool) { + return + interfaceId == type(ZoneInterface).interfaceId || + super.supportsInterface(interfaceId); + } +} diff --git a/contracts/trading/seaport/zones/README.md b/contracts/trading/seaport/zones/README.md new file mode 100644 index 00000000..990b6728 --- /dev/null +++ b/contracts/trading/seaport/zones/README.md @@ -0,0 +1,49 @@ +# Test plan for ImmutableSignedZone + +ImmutableSignedZone is a implementation of the SIP-7 specification with substandard 3. + +## E2E tests with signing server + +E2E tests will be handled in the server repository seperate to the contract. + +## Validate order unit tests + +The core function of the contract is `validateOrder` where signature verification and a variety of validations of the `extraData` payload is verified by the zone to determine whether an order is considered valid for fulfillment. This function will be called by the settlement contract upon order fulfillment. + +| Test name | Description | Happy Case | Implemented | +| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ---------- | ----------- | +| validateOrder reverts without extraData | base failure case | No | Yes | +| validateOrder reverts with invalid extraData | base failure case | No | Yes | +| validateOrder reverts with expired timestamp | asserts the expiration verification behaviour | No | Yes | +| validateOrder reverts with invalid fulfiller | asserts the fulfiller verification behaviour | No | Yes | +| validateOrder reverts with non 0 SIP6 version | asserts the SIP6 version verification behaviour | No | Yes | +| validateOrder reverts with wrong consideration | asserts the consideration verification behaviour | No | Yes | +| validates correct signature with context | Happy path of a valid order | Yes | Yes | +| validateOrder validates correct context with multiple order hashes - equal arrays | Happy path with bulk order hashes - expected == actual | Yes | Yes | +| validateOrder validates correct context with multiple order hashes - partial arrays | Happy path with bulk order hashes - expected is a subset of actual | Yes | Yes | +| validateOrder reverts when not all expected order hashes are in zone parameters | Error case with bulk order hashes - actual is a subset of expected | No | Yes | +| validateOrder reverts incorrectly signed signature with context | asserts active signer behaviour | No | Yes | +| validateOrder reverts a valid order after expiration time passes | asserts active signer behaviour | No | Yes | + +## Ownership unit tests + +Test the ownership behaviour of the contract + +| Test name | Description | Happy Case | Implemented | +| ------------------------------- | --------------------------- | ---------- | ----------- | +| deployer becomes owner | base case | Yes | Yes | +| transferOwnership works | base case | Yes | Yes | +| non owner cannot add signers | asserts ownership behaviour | No | Yes | +| non owner cannot remove signers | asserts ownership behaviour | No | Yes | +| non owner cannot update owner | asserts ownership behaviour | No | Yes | + +## Active signer unit tests + +Test the signer management behaviour of the contract + +| Test name | Description | Happy Case | Implemented | +| ---------------------------------- | --------------------------------------------------- | ---------- | ----------- | +| owner can add active signer | base case | Yes | Yes | +| owner can deactivate signer | base case | Yes | Yes | +| deactivate non active signer fails | asserts signers can only be deactivated when active | No | Yes | +| activate deactivated signer fails | asserts signer cannot be recycled behaviour | No | Yes | diff --git a/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol b/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol new file mode 100644 index 00000000..9da10294 --- /dev/null +++ b/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol @@ -0,0 +1,28 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache-2 +pragma solidity 0.8.17; + +import { Schema } from "seaport-types/src/lib/ConsiderationStructs.sol"; + +/** + * @dev SIP-5: Contract Metadata Interface for Seaport Contracts + * https://github.com/ProjectOpenSea/SIPs/blob/main/SIPS/sip-5.md + */ +interface SIP5Interface { + /** + * @dev An event that is emitted when a SIP-5 compatible contract is deployed. + */ + event SeaportCompatibleContractDeployed(); + + /** + * @dev Returns Seaport metadata for this contract, returning the + * contract name and supported schemas. + * + * @return name The contract name + * @return schemas The supported SIPs + */ + function getSeaportMetadata() + external + view + returns (string memory name, Schema[] memory schemas); +} diff --git a/contracts/trading/seaport/zones/interfaces/SIP6EventsAndErrors.sol b/contracts/trading/seaport/zones/interfaces/SIP6EventsAndErrors.sol new file mode 100644 index 00000000..338b3b27 --- /dev/null +++ b/contracts/trading/seaport/zones/interfaces/SIP6EventsAndErrors.sol @@ -0,0 +1,14 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache-2 +pragma solidity 0.8.17; + +/** + * @notice SIP6EventsAndErrors contains errors and events + * related to zone interaction as specified in the SIP6. + */ +interface SIP6EventsAndErrors { + /** + * @dev Revert with an error if SIP6 version is not supported + */ + error UnsupportedExtraDataVersion(uint8 version); +} diff --git a/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol b/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol new file mode 100644 index 00000000..75555db0 --- /dev/null +++ b/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol @@ -0,0 +1,75 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache-2 +pragma solidity 0.8.17; + +/** + * @notice SIP7EventsAndErrors contains errors and events + * related to zone interaction as specified in the SIP7. + */ +interface SIP7EventsAndErrors { + /** + * @dev Emit an event when a new signer is added. + */ + event SignerAdded(address signer); + + /** + * @dev Emit an event when a signer is removed. + */ + event SignerRemoved(address signer); + + /** + * @dev Revert with an error if trying to add a signer that is + * already active. + */ + error SignerAlreadyActive(address signer); + + /** + * @dev Revert with an error if trying to remove a signer that is + * not active + */ + error SignerNotActive(address signer); + + /** + * @dev Revert with an error if a new signer is the zero address. + */ + error SignerCannotBeZeroAddress(); + + /** + * @dev Revert with an error if a removed signer is trying to be + * reauthorized. + */ + error SignerCannotBeReauthorized(address signer); + + /** + * @dev Revert with an error when the signature has expired. + */ + error SignatureExpired( + uint256 currentTimestamp, + uint256 expiration, + bytes32 orderHash + ); + + /** + * @dev Revert with an error if the fulfiller does not match. + */ + error InvalidFulfiller( + address expectedFulfiller, + address actualFulfiller, + bytes32 orderHash + ); + + /** + * @dev Revert with an error if a substandard validation fails + */ + error SubstandardViolation( + uint256 substandardId, + string reason, + bytes32 orderHash + ); + + /** + * @dev Revert with an error if supplied order extraData is invalid + * or improperly formatted. + */ + error InvalidExtraData(string reason, bytes32 orderHash); +} diff --git a/contracts/trading/seaport/zones/interfaces/SIP7Interface.sol b/contracts/trading/seaport/zones/interfaces/SIP7Interface.sol new file mode 100644 index 00000000..47a16551 --- /dev/null +++ b/contracts/trading/seaport/zones/interfaces/SIP7Interface.sol @@ -0,0 +1,59 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache-2 +pragma solidity 0.8.17; + +/** + * @title SIP7Interface + * @author ryanio, Immutable + * @notice ImmutableSignedZone is an implementation of SIP-7 that requires orders + * to be signed by an approved signer. + * https://github.com/ProjectOpenSea/SIPs/blob/main/SIPS/sip-7.md + * + */ +interface SIP7Interface { + /** + * @dev The struct for storing signer info. + */ + struct SignerInfo { + bool active; /// If the signer is currently active. + bool previouslyActive; /// If the signer has been active before. + } + + /** + * @notice Add a new signer to the zone. + * + * @param signer The new signer address to add. + */ + function addSigner(address signer) external; + + /** + * @notice Remove an active signer from the zone. + * + * @param signer The signer address to remove. + */ + function removeSigner(address signer) external; + + /** + * @notice Update the API endpoint returned by this zone. + * + * @param newApiEndpoint The new API endpoint. + */ + function updateAPIEndpoint(string calldata newApiEndpoint) external; + + /** + * @notice Returns signing information about the zone. + * + * @return domainSeparator The domain separator used for signing. + * @return apiEndpoint The API endpoint to get signatures for orders + * using this zone. + */ + function sip7Information() + external + view + returns ( + bytes32 domainSeparator, + string memory apiEndpoint, + uint256[] memory substandards, + string memory documentationURI + ); +} diff --git a/remappings.txt b/remappings.txt index 1c16eeb3..6a85cf6f 100644 --- a/remappings.txt +++ b/remappings.txt @@ -1,2 +1,4 @@ @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/ @openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/ +solidity-bits/=lib/solidity-bits/ +solidity-bytes-utils/=lib/solidity-bytes-utils/ From 73b8569ded239aac930fa9230875df78c14beda6 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 12:19:57 +1000 Subject: [PATCH 019/100] forge install: seaport-core 1.5.0 --- .gitmodules | 3 +++ lib/seaport-core | 1 + 2 files changed, 4 insertions(+) create mode 160000 lib/seaport-core diff --git a/.gitmodules b/.gitmodules index a6adfed2..2951a640 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,3 +16,6 @@ [submodule "lib/solidity-bytes-utils"] path = lib/solidity-bytes-utils url = https://github.com/GNSPS/solidity-bytes-utils +[submodule "lib/seaport-core"] + path = lib/seaport-core + url = https://github.com/ProjectOpenSea/seaport-core diff --git a/lib/seaport-core b/lib/seaport-core new file mode 160000 index 00000000..c17f6a8b --- /dev/null +++ b/lib/seaport-core @@ -0,0 +1 @@ +Subproject commit c17f6a8b238fa3b4d23e28a4a72efad4baeafb5d From 9a57a6f970eab4d1431f34d8e1358e37b998c044 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 12:21:06 +1000 Subject: [PATCH 020/100] Rework seaport installs --- lib/seaport-core | 1 - 1 file changed, 1 deletion(-) delete mode 160000 lib/seaport-core diff --git a/lib/seaport-core b/lib/seaport-core deleted file mode 160000 index c17f6a8b..00000000 --- a/lib/seaport-core +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c17f6a8b238fa3b4d23e28a4a72efad4baeafb5d From ff3b4b173bb7408e79abdd4f4633e73afb5f88fa Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 12:21:17 +1000 Subject: [PATCH 021/100] forge install: seaport-core 1.5.0 --- lib/seaport-core | 1 + 1 file changed, 1 insertion(+) create mode 160000 lib/seaport-core diff --git a/lib/seaport-core b/lib/seaport-core new file mode 160000 index 00000000..c17f6a8b --- /dev/null +++ b/lib/seaport-core @@ -0,0 +1 @@ +Subproject commit c17f6a8b238fa3b4d23e28a4a72efad4baeafb5d From f6b2a98f713b67f80cb06bf5e09093a527e94c2e Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 12:52:12 +1000 Subject: [PATCH 022/100] Fix import path --- contracts/random/RandomManager.sol | 2 +- remappings.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/contracts/random/RandomManager.sol b/contracts/random/RandomManager.sol index fc7d7e1d..c2ed77b4 100644 --- a/contracts/random/RandomManager.sol +++ b/contracts/random/RandomManager.sol @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache 2 pragma solidity ^0.8.19; -import {AccessControlEnumerableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/extensions/AccessControlEnumerableUpgradeable.sol"; +import {AccessControlEnumerableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol"; import {IOffchainRandomSource} from "./IOffchainRandomSource.sol"; diff --git a/remappings.txt b/remappings.txt index 6a85cf6f..a674d1b6 100644 --- a/remappings.txt +++ b/remappings.txt @@ -2,3 +2,5 @@ @openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/ solidity-bits/=lib/solidity-bits/ solidity-bytes-utils/=lib/solidity-bytes-utils/ +seaport-core/=lib/seaport-core/ +seaport-types/=lib/seaport-types/ From 3678fe9c432d9dadd80bf8dc365ca1aafae13c7d Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 12:52:20 +1000 Subject: [PATCH 023/100] forge install: seaport-types --- .gitmodules | 3 +++ lib/seaport-types | 1 + 2 files changed, 4 insertions(+) create mode 160000 lib/seaport-types diff --git a/.gitmodules b/.gitmodules index 2951a640..0f828de4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,3 +19,6 @@ [submodule "lib/seaport-core"] path = lib/seaport-core url = https://github.com/ProjectOpenSea/seaport-core +[submodule "lib/seaport-types"] + path = lib/seaport-types + url = https://github.com/ProjectOpenSea/seaport-types diff --git a/lib/seaport-types b/lib/seaport-types new file mode 160000 index 00000000..25bae8dd --- /dev/null +++ b/lib/seaport-types @@ -0,0 +1 @@ +Subproject commit 25bae8ddfa8709e5c51ab429fe06024e46a18f15 From 5e21128e93bf97774375533da36f717fc8c5219b Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 12:56:57 +1000 Subject: [PATCH 024/100] Lib issue --- lib/seaport-types | 1 - 1 file changed, 1 deletion(-) delete mode 160000 lib/seaport-types diff --git a/lib/seaport-types b/lib/seaport-types deleted file mode 160000 index 25bae8dd..00000000 --- a/lib/seaport-types +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 25bae8ddfa8709e5c51ab429fe06024e46a18f15 From db077995e020bd0d0e9887f377e61d12f1052f0d Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 12:57:00 +1000 Subject: [PATCH 025/100] forge install: seaport-types --- lib/seaport-types | 1 + 1 file changed, 1 insertion(+) create mode 160000 lib/seaport-types diff --git a/lib/seaport-types b/lib/seaport-types new file mode 160000 index 00000000..25bae8dd --- /dev/null +++ b/lib/seaport-types @@ -0,0 +1 @@ +Subproject commit 25bae8ddfa8709e5c51ab429fe06024e46a18f15 From 8bc1cf261fd09e833addcaecc6d7592df3fb27b3 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 13:08:19 +1000 Subject: [PATCH 026/100] Remove old seaport --- foundry.toml | 7 ------- lib/seaport | 1 - remappings.txt | 1 + 3 files changed, 1 insertion(+), 8 deletions(-) delete mode 160000 lib/seaport diff --git a/foundry.toml b/foundry.toml index ade2d2fc..1c80798e 100644 --- a/foundry.toml +++ b/foundry.toml @@ -3,12 +3,5 @@ src = 'contracts' out = 'foundry-out' libs = ["lib", "node_modules"] -remappings = [ - '@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/', - '@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/', - 'solidity-bits/=lib/solidity-bits/', - 'solidity-bytes-utils/=lib/solidity-bytes-utils/' -] - # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options diff --git a/lib/seaport b/lib/seaport deleted file mode 160000 index ab3b5cb6..00000000 --- a/lib/seaport +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ab3b5cb6e10580ea979d63983e409e679935c702 diff --git a/remappings.txt b/remappings.txt index a674d1b6..6b68de39 100644 --- a/remappings.txt +++ b/remappings.txt @@ -4,3 +4,4 @@ solidity-bits/=lib/solidity-bits/ solidity-bytes-utils/=lib/solidity-bytes-utils/ seaport-core/=lib/seaport-core/ seaport-types/=lib/seaport-types/ +seaport/contracts/=lib/seaport/contracts/ From 61adf8f24cce4839eab0fbb3005e7f5338d96ee9 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 13:08:36 +1000 Subject: [PATCH 027/100] forge install: seaport --- lib/seaport | 1 + 1 file changed, 1 insertion(+) create mode 160000 lib/seaport diff --git a/lib/seaport b/lib/seaport new file mode 160000 index 00000000..ab3b5cb6 --- /dev/null +++ b/lib/seaport @@ -0,0 +1 @@ +Subproject commit ab3b5cb6e10580ea979d63983e409e679935c702 From e3a117c4228f2670ea63f826d9d5b4462076cc80 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 13:19:07 +1000 Subject: [PATCH 028/100] Switch seaport version --- lib/seaport | 1 - 1 file changed, 1 deletion(-) delete mode 160000 lib/seaport diff --git a/lib/seaport b/lib/seaport deleted file mode 160000 index ab3b5cb6..00000000 --- a/lib/seaport +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ab3b5cb6e10580ea979d63983e409e679935c702 From db8e31e5b0de9c4facb38b9941a08ca598668340 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 13:19:11 +1000 Subject: [PATCH 029/100] forge install: seaport 1.5 --- lib/seaport | 1 + 1 file changed, 1 insertion(+) create mode 160000 lib/seaport diff --git a/lib/seaport b/lib/seaport new file mode 160000 index 00000000..ab3b5cb6 --- /dev/null +++ b/lib/seaport @@ -0,0 +1 @@ +Subproject commit ab3b5cb6e10580ea979d63983e409e679935c702 From cbb5ded8b0e91fe5bd68c15b23bc4d27252dace3 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 13:44:53 +1000 Subject: [PATCH 030/100] Switch to RandomSeedProvider --- ...ndomManager.sol => RandomSeedProvider.sol} | 53 +++++++++++++++---- contracts/random/RandomValues.sol | 12 ++--- lib/seaport | 1 - 3 files changed, 48 insertions(+), 18 deletions(-) rename contracts/random/{RandomManager.sol => RandomSeedProvider.sol} (79%) delete mode 160000 lib/seaport diff --git a/contracts/random/RandomManager.sol b/contracts/random/RandomSeedProvider.sol similarity index 79% rename from contracts/random/RandomManager.sol rename to contracts/random/RandomSeedProvider.sol index c2ed77b4..e3b645ad 100644 --- a/contracts/random/RandomManager.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -6,35 +6,61 @@ import {AccessControlEnumerableUpgradeable} from "@openzeppelin/contracts-upgrad import {IOffchainRandomSource} from "./IOffchainRandomSource.sol"; - -// TODO should be upgradeable -contract RandomManager is AccessControlEnumerableUpgradeable { +/** + * @notice Contract to provide random seed values to game contracts on the chain. + * @dev The expectation is that there will only be one RandomSeedProvider per chain. + * Game contracts will call this contract to obtain a seed value, from which + * they will generate random values. + * + * The contract is upgradeable. It is expected to be operated behind an + * Open Zeppelin TransparentUpgradeProxy. + */ +contract RandomSeedProvider is AccessControlEnumerableUpgradeable { + // Security levels between 1 and 10 are allowed. error InvalidSecurityLevel(uint256 _securityLevel); + // The random seed value is not yet available. error WaitForRandom(); - event OffchainRandomSourceSet(uint256 _offchainRandomSource); - event RanDaoEnabled(); + // The offchain random source has been updated. + event OffchainRandomSourceSet(address _offchainRandomSource); - bytes32 public constant RANDOM_ADMIN_ROLE = keccak256("RANDOM_ROLE"); + // The RanDAO source has been enabled. Note that this source will only be used if + // an offchain random source is not available. + event RanDaoEnabled(); + // Admin role that can enable RanDAO and offchain random sources. + bytes32 public constant RANDOM_ADMIN_ROLE = keccak256("RANDOM_ADMIN_ROLE"); + // When random seeds are requested, a request id is returned. The id + // relates to a certain future random seed. This map holds all of the + // random seeds that have been produced. mapping (uint256 => bytes32) private randomOutput; + + // The index of the next seed value to be produced. uint256 private nextRandomIndex; + + // The block number in which the last seed value was generated. uint256 private lastBlockRandomGenerated; + // Off-chain random source that is used to generate random seeds. IOffchainRandomSource public offchainRandomSource; + // True if RanDAO is being used as a source of random values (assuming + // the off-chain random source has not been enabled). + bool public ranDaoEnabled; + /** * @notice Initialize the contract for use with a transparent proxy. * @param _roleAdmin is the account that can add and remove addresses that have - * RANDOM_ADMIN_ROLE priviledge.. - * @param _randomAdmin is the account that has RANDOM_ADMIN_ROLE priviledge. + * RANDOM_ADMIN_ROLE privilege. + * @param _randomAdmin is the account that has RANDOM_ADMIN_ROLE privilege. */ function initialize(address _roleAdmin, address _randomAdmin) public virtual initializer { _grantRole(DEFAULT_ADMIN_ROLE, _roleAdmin); - _grantRole(RANDOM_ROLE, _randomAdmin); + _grantRole(RANDOM_ADMIN_ROLE, _randomAdmin); + // Generate an initial "random" seed. // Use the chain id as an input into the random number generator to ensure // all random numbers are personalised to this chain. randomOutput[0] = keccak256(abi.encodePacked(block.chainid, block.number)); @@ -46,13 +72,18 @@ contract RandomManager is AccessControlEnumerableUpgradeable { * @dev Must have RANDOM_ROLE. * @param _offchainRandomSource Address of contract that is an offchain random source. */ - function setOffchainRandomSource(address _offchainRandomSource) external hasRole(RANDOM_ROLE) { + function setOffchainRandomSource(address _offchainRandomSource) external onlyRole(RANDOM_ADMIN_ROLE) { offchainRandomSource = IOffchainRandomSource(_offchainRandomSource); emit OffchainRandomSourceSet(_offchainRandomSource); } - function enableRanDao() external hasRole(RANDOM_ROLE) { + /** + * @notice Enable the RanDAO source. + * @dev If the off-chain source has not been configured, and the consensus + * algorithm supports RanDAO, then let's use it. + */ + function enableRanDao() external onlyRole(RANDOM_ADMIN_ROLE) { ranDaoEnabled = true; emit RanDaoEnabled(); } diff --git a/contracts/random/RandomValues.sol b/contracts/random/RandomValues.sol index a19f3833..48b4abb4 100644 --- a/contracts/random/RandomValues.sol +++ b/contracts/random/RandomValues.sol @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache 2 pragma solidity ^0.8.19; -import {RandomManager} from "./RandomManager.sol"; +import {RandomSeedProvider} from "./RandomSeedProvider.sol"; @@ -13,11 +13,11 @@ abstract contract RandomValues { mapping (uint256 => uint256) private randCreationRequests; uint256 private nextNonce; - RandomManager public randomManager; + RandomSeedProvider public randomSeedProvider; - constructor(address _randomManager) { - randomManager = RandomManager(_randomManager); + constructor(address _randomSeedProvider) { + randomSeedProvider = RandomSeedProvider(_randomSeedProvider); } @@ -31,7 +31,7 @@ abstract contract RandomValues { * value with fetchRandom. */ function requestRandomValueCreation(uint256 _securityLevel) internal returns (uint256 _randomRequestId) { - uint256 randomFulfillmentIndex = randomManager.requestRandom(_securityLevel); + uint256 randomFulfillmentIndex = randomSeedProvider.requestRandom(_securityLevel); _randomRequestId = nextNonce++; randCreationRequests[_randomRequestId] = randomFulfillmentIndex; } @@ -46,7 +46,7 @@ abstract contract RandomValues { */ function fetchRandom(uint256 _randomRequestId) internal returns(bytes32 _randomValue) { // Request the random seed. If not enough time has elapsed yet, this call will revert. - bytes32 randomSeed = randomManager.getRandomSeed(randCreationRequests[_randomRequestId]); + bytes32 randomSeed = randomSeedProvider.getRandomSeed(randCreationRequests[_randomRequestId]); // Generate the random value by combining: // address(this): personalises the random seed to this game. // msg.sender: personalises the random seed to the game player. diff --git a/lib/seaport b/lib/seaport deleted file mode 160000 index ab3b5cb6..00000000 --- a/lib/seaport +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ab3b5cb6e10580ea979d63983e409e679935c702 From 8d4b47a95847d9eaab8c1e7d9cdbad022bf21d1e Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 13:45:11 +1000 Subject: [PATCH 031/100] forge install: seaport --- .gitmodules | 2 +- lib/seaport | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 160000 lib/seaport diff --git a/.gitmodules b/.gitmodules index 0f828de4..5525b8f1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -9,7 +9,7 @@ url = https://github.com/OpenZeppelin/openzeppelin-contracts [submodule "lib/seaport"] path = lib/seaport - url = https://github.com/ProjectOpenSea/seaport + url = https://github.com/immutable/seaport [submodule "lib/solidity-bits"] path = lib/solidity-bits url = https://github.com/estarriolvetch/solidity-bits diff --git a/lib/seaport b/lib/seaport new file mode 160000 index 00000000..ab3b5cb6 --- /dev/null +++ b/lib/seaport @@ -0,0 +1 @@ +Subproject commit ab3b5cb6e10580ea979d63983e409e679935c702 From 14d6ae4386650fd07ca3d347f77d75ddd836906f Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 13:50:51 +1000 Subject: [PATCH 032/100] Rework seaport version --- lib/seaport | 1 - remappings.txt | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 160000 lib/seaport diff --git a/lib/seaport b/lib/seaport deleted file mode 160000 index ab3b5cb6..00000000 --- a/lib/seaport +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ab3b5cb6e10580ea979d63983e409e679935c702 diff --git a/remappings.txt b/remappings.txt index 6b68de39..3a20008e 100644 --- a/remappings.txt +++ b/remappings.txt @@ -4,4 +4,4 @@ solidity-bits/=lib/solidity-bits/ solidity-bytes-utils/=lib/solidity-bytes-utils/ seaport-core/=lib/seaport-core/ seaport-types/=lib/seaport-types/ -seaport/contracts/=lib/seaport/contracts/ +seaport/contracts/=lib/seaport/contracts \ No newline at end of file From b58eed274ce3fe2dcc06e09f052bc05476b5a178 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 16:46:43 +1000 Subject: [PATCH 033/100] Added seaport --- .gitmodules | 3 +++ lib/seaport.git | 1 + 2 files changed, 4 insertions(+) create mode 160000 lib/seaport.git diff --git a/.gitmodules b/.gitmodules index 5525b8f1..2355c83a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -22,3 +22,6 @@ [submodule "lib/seaport-types"] path = lib/seaport-types url = https://github.com/ProjectOpenSea/seaport-types +[submodule "lib/seaport.git"] + path = lib/seaport.git + url = https://github.com/immutable/seaport.git diff --git a/lib/seaport.git b/lib/seaport.git new file mode 160000 index 00000000..ae061dc0 --- /dev/null +++ b/lib/seaport.git @@ -0,0 +1 @@ +Subproject commit ae061dc008105dd8d05937df9ad9a676f878cbf9 From 57710bb7c41ab63e4429bb28a65df3787787f6cb Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 16:55:02 +1000 Subject: [PATCH 034/100] Remove seaport --- .gitmodules | 3 --- remappings.txt | 3 ++- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitmodules b/.gitmodules index 2355c83a..5525b8f1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -22,6 +22,3 @@ [submodule "lib/seaport-types"] path = lib/seaport-types url = https://github.com/ProjectOpenSea/seaport-types -[submodule "lib/seaport.git"] - path = lib/seaport.git - url = https://github.com/immutable/seaport.git diff --git a/remappings.txt b/remappings.txt index 3a20008e..d5e44f78 100644 --- a/remappings.txt +++ b/remappings.txt @@ -4,4 +4,5 @@ solidity-bits/=lib/solidity-bits/ solidity-bytes-utils/=lib/solidity-bytes-utils/ seaport-core/=lib/seaport-core/ seaport-types/=lib/seaport-types/ -seaport/contracts/=lib/seaport/contracts \ No newline at end of file + +# seaport/contracts/=lib/seaport.git/contracts/ From 05195166feccee8228d178607b1d56b1dfe0dbbe Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 17:18:50 +1000 Subject: [PATCH 035/100] Remove seaport --- .../trading/seaport/ImmutableSeaport.sol | 681 ------------------ .../seaport/conduit/ConduitController.sol | 4 - .../interfaces/ImmutableSeaportEvents.sol | 14 - .../seaport/test/SeaportTestContracts.sol | 10 - .../validators/ReadOnlyOrderValidator.sol | 4 - .../seaport/validators/SeaportValidator.sol | 4 - .../validators/SeaportValidatorHelper.sol | 4 - .../seaport/zones/ImmutableSignedZone.sol | 605 ---------------- contracts/trading/seaport/zones/README.md | 49 -- .../zones/interfaces/SIP5Interface.sol | 28 - .../zones/interfaces/SIP6EventsAndErrors.sol | 14 - .../zones/interfaces/SIP7EventsAndErrors.sol | 75 -- .../zones/interfaces/SIP7Interface.sol | 59 -- remappings.txt | 2 +- 14 files changed, 1 insertion(+), 1552 deletions(-) delete mode 100644 contracts/trading/seaport/ImmutableSeaport.sol delete mode 100644 contracts/trading/seaport/conduit/ConduitController.sol delete mode 100644 contracts/trading/seaport/interfaces/ImmutableSeaportEvents.sol delete mode 100644 contracts/trading/seaport/test/SeaportTestContracts.sol delete mode 100644 contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol delete mode 100644 contracts/trading/seaport/validators/SeaportValidator.sol delete mode 100644 contracts/trading/seaport/validators/SeaportValidatorHelper.sol delete mode 100644 contracts/trading/seaport/zones/ImmutableSignedZone.sol delete mode 100644 contracts/trading/seaport/zones/README.md delete mode 100644 contracts/trading/seaport/zones/interfaces/SIP5Interface.sol delete mode 100644 contracts/trading/seaport/zones/interfaces/SIP6EventsAndErrors.sol delete mode 100644 contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol delete mode 100644 contracts/trading/seaport/zones/interfaces/SIP7Interface.sol diff --git a/contracts/trading/seaport/ImmutableSeaport.sol b/contracts/trading/seaport/ImmutableSeaport.sol deleted file mode 100644 index 05dcd27b..00000000 --- a/contracts/trading/seaport/ImmutableSeaport.sol +++ /dev/null @@ -1,681 +0,0 @@ -// Copyright (c) Immutable Pty Ltd 2018 - 2023 -// SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.17; - -import { Consideration } from "seaport-core/src/lib/Consideration.sol"; -import { - AdvancedOrder, - BasicOrderParameters, - CriteriaResolver, - Execution, - Fulfillment, - FulfillmentComponent, - Order, - OrderComponents -} from "seaport-types/src/lib/ConsiderationStructs.sol"; -import { OrderType } from "seaport-types/src/lib/ConsiderationEnums.sol"; -import { Ownable2Step } from "@openzeppelin/contracts/access/Ownable2Step.sol"; -import { - ImmutableSeaportEvents -} from "./interfaces/ImmutableSeaportEvents.sol"; - -/** - * @title ImmutableSeaport - * @custom:version 1.5 - * @notice Seaport is a generalized native token/ERC20/ERC721/ERC1155 - * marketplace with lightweight methods for common routes as well as - * more flexible methods for composing advanced orders or groups of - * orders. Each order contains an arbitrary number of items that may be - * spent (the "offer") along with an arbitrary number of items that must - * be received back by the indicated recipients (the "consideration"). - */ -contract ImmutableSeaport is - Consideration, - Ownable2Step, - ImmutableSeaportEvents -{ - // Mapping to store valid ImmutableZones - this allows for multiple Zones - // to be active at the same time, and can be expired or added on demand. - mapping(address => bool) public allowedZones; - - error OrderNotRestricted(); - error InvalidZone(address zone); - - /** - * @notice Derive and set hashes, reference chainId, and associated domain - * separator during deployment. - * - * @param conduitController A contract that deploys conduits, or proxies - * that may optionally be used to transfer approved - * ERC20/721/1155 tokens. - */ - constructor( - address conduitController - ) Consideration(conduitController) Ownable2Step() {} - - /** - * @dev Set the validity of a zone for use during fulfillment. - */ - function setAllowedZone(address zone, bool allowed) external onlyOwner { - allowedZones[zone] = allowed; - emit AllowedZoneSet(zone, allowed); - } - - /** - * @dev Internal pure function to retrieve and return the name of this - * contract. - * - * @return The name of this contract. - */ - function _name() internal pure override returns (string memory) { - // Return the name of the contract. - return "ImmutableSeaport"; - } - - /** - * @dev Internal pure function to retrieve the name of this contract as a - * string that will be used to derive the name hash in the constructor. - * - * @return The name of this contract as a string. - */ - function _nameString() internal pure override returns (string memory) { - // Return the name of the contract. - return "ImmutableSeaport"; - } - - /** - * @dev Helper function to revert any fulfillment that has an invalid zone - */ - function _rejectIfZoneInvalid(address zone) internal view { - if (!allowedZones[zone]) { - revert InvalidZone(zone); - } - } - - /** - * @notice Fulfill an order offering an ERC20, ERC721, or ERC1155 item by - * supplying Ether (or other native tokens), ERC20 tokens, an ERC721 - * item, or an ERC1155 item as consideration. Six permutations are - * supported: Native token to ERC721, Native token to ERC1155, ERC20 - * to ERC721, ERC20 to ERC1155, ERC721 to ERC20, and ERC1155 to - * ERC20 (with native tokens supplied as msg.value). For an order to - * be eligible for fulfillment via this method, it must contain a - * single offer item (though that item may have a greater amount if - * the item is not an ERC721). An arbitrary number of "additional - * recipients" may also be supplied which will each receive native - * tokens or ERC20 items from the fulfiller as consideration. Refer - * to the documentation for a more comprehensive summary of how to - * utilize this method and what orders are compatible with it. - * - * @param parameters Additional information on the fulfilled order. Note - * that the offerer and the fulfiller must first approve - * this contract (or their chosen conduit if indicated) - * before any tokens can be transferred. Also note that - * contract recipients of ERC1155 consideration items must - * implement `onERC1155Received` to receive those items. - * - * @return fulfilled A boolean indicating whether the order has been - * successfully fulfilled. - */ - function fulfillBasicOrder( - BasicOrderParameters calldata parameters - ) public payable virtual override returns (bool fulfilled) { - // All restricted orders are captured using this method - if ( - uint(parameters.basicOrderType) % 4 != 2 && - uint(parameters.basicOrderType) % 4 != 3 - ) { - revert OrderNotRestricted(); - } - - _rejectIfZoneInvalid(parameters.zone); - - return super.fulfillBasicOrder(parameters); - } - - /** - * @notice Fulfill an order offering an ERC20, ERC721, or ERC1155 item by - * supplying Ether (or other native tokens), ERC20 tokens, an ERC721 - * item, or an ERC1155 item as consideration. Six permutations are - * supported: Native token to ERC721, Native token to ERC1155, ERC20 - * to ERC721, ERC20 to ERC1155, ERC721 to ERC20, and ERC1155 to - * ERC20 (with native tokens supplied as msg.value). For an order to - * be eligible for fulfillment via this method, it must contain a - * single offer item (though that item may have a greater amount if - * the item is not an ERC721). An arbitrary number of "additional - * recipients" may also be supplied which will each receive native - * tokens or ERC20 items from the fulfiller as consideration. Refer - * to the documentation for a more comprehensive summary of how to - * utilize this method and what orders are compatible with it. Note - * that this function costs less gas than `fulfillBasicOrder` due to - * the zero bytes in the function selector (0x00000000) which also - * results in earlier function dispatch. - * - * @param parameters Additional information on the fulfilled order. Note - * that the offerer and the fulfiller must first approve - * this contract (or their chosen conduit if indicated) - * before any tokens can be transferred. Also note that - * contract recipients of ERC1155 consideration items must - * implement `onERC1155Received` to receive those items. - * - * @return fulfilled A boolean indicating whether the order has been - * successfully fulfilled. - */ - function fulfillBasicOrder_efficient_6GL6yc( - BasicOrderParameters calldata parameters - ) public payable virtual override returns (bool fulfilled) { - // All restricted orders are captured using this method - if ( - uint(parameters.basicOrderType) % 4 != 2 && - uint(parameters.basicOrderType) % 4 != 3 - ) { - revert OrderNotRestricted(); - } - - _rejectIfZoneInvalid(parameters.zone); - - return super.fulfillBasicOrder_efficient_6GL6yc(parameters); - } - - /** - * @notice Fulfill an order with an arbitrary number of items for offer and - * consideration. Note that this function does not support - * criteria-based orders or partial filling of orders (though - * filling the remainder of a partially-filled order is supported). - * - * @custom:param order The order to fulfill. Note that both the - * offerer and the fulfiller must first approve - * this contract (or the corresponding conduit if - * indicated) to transfer any relevant tokens on - * their behalf and that contracts must implement - * `onERC1155Received` to receive ERC1155 tokens - * as consideration. - * @param fulfillerConduitKey A bytes32 value indicating what conduit, if - * any, to source the fulfiller's token approvals - * from. The zero hash signifies that no conduit - * should be used (and direct approvals set on - * this contract). - * - * @return fulfilled A boolean indicating whether the order has been - * successfully fulfilled. - */ - function fulfillOrder( - /** - * @custom:name order - */ - Order calldata order, - bytes32 fulfillerConduitKey - ) public payable virtual override returns (bool fulfilled) { - if ( - order.parameters.orderType != OrderType.FULL_RESTRICTED && - order.parameters.orderType != OrderType.PARTIAL_RESTRICTED - ) { - revert OrderNotRestricted(); - } - - _rejectIfZoneInvalid(order.parameters.zone); - - return super.fulfillOrder(order, fulfillerConduitKey); - } - - /** - * @notice Fill an order, fully or partially, with an arbitrary number of - * items for offer and consideration alongside criteria resolvers - * containing specific token identifiers and associated proofs. - * - * @custom:param advancedOrder The order to fulfill along with the - * fraction of the order to attempt to fill. - * Note that both the offerer and the - * fulfiller must first approve this - * contract (or their conduit if indicated - * by the order) to transfer any relevant - * tokens on their behalf and that contracts - * must implement `onERC1155Received` to - * receive ERC1155 tokens as consideration. - * Also note that all offer and - * consideration components must have no - * remainder after multiplication of the - * respective amount with the supplied - * fraction for the partial fill to be - * considered valid. - * @custom:param criteriaResolvers An array where each element contains a - * reference to a specific offer or - * consideration, a token identifier, and a - * proof that the supplied token identifier - * is contained in the merkle root held by - * the item in question's criteria element. - * Note that an empty criteria indicates - * that any (transferable) token identifier - * on the token in question is valid and - * that no associated proof needs to be - * supplied. - * @param fulfillerConduitKey A bytes32 value indicating what conduit, - * if any, to source the fulfiller's token - * approvals from. The zero hash signifies - * that no conduit should be used (and - * direct approvals set on this contract). - * @param recipient The intended recipient for all received - * items, with `address(0)` indicating that - * the caller should receive the items. - * - * @return fulfilled A boolean indicating whether the order has been - * successfully fulfilled. - */ - function fulfillAdvancedOrder( - /** - * @custom:name advancedOrder - */ - AdvancedOrder calldata advancedOrder, - /** - * @custom:name criteriaResolvers - */ - CriteriaResolver[] calldata criteriaResolvers, - bytes32 fulfillerConduitKey, - address recipient - ) public payable virtual override returns (bool fulfilled) { - if ( - advancedOrder.parameters.orderType != OrderType.FULL_RESTRICTED && - advancedOrder.parameters.orderType != OrderType.PARTIAL_RESTRICTED - ) { - revert OrderNotRestricted(); - } - - _rejectIfZoneInvalid(advancedOrder.parameters.zone); - - return - super.fulfillAdvancedOrder( - advancedOrder, - criteriaResolvers, - fulfillerConduitKey, - recipient - ); - } - - /** - * @notice Attempt to fill a group of orders, each with an arbitrary number - * of items for offer and consideration. Any order that is not - * currently active, has already been fully filled, or has been - * cancelled will be omitted. Remaining offer and consideration - * items will then be aggregated where possible as indicated by the - * supplied offer and consideration component arrays and aggregated - * items will be transferred to the fulfiller or to each intended - * recipient, respectively. Note that a failing item transfer or an - * issue with order formatting will cause the entire batch to fail. - * Note that this function does not support criteria-based orders or - * partial filling of orders (though filling the remainder of a - * partially-filled order is supported). - * - * @custom:param orders The orders to fulfill. Note that - * both the offerer and the - * fulfiller must first approve this - * contract (or the corresponding - * conduit if indicated) to transfer - * any relevant tokens on their - * behalf and that contracts must - * implement `onERC1155Received` to - * receive ERC1155 tokens as - * consideration. - * @custom:param offerFulfillments An array of FulfillmentComponent - * arrays indicating which offer - * items to attempt to aggregate - * when preparing executions. Note - * that any offer items not included - * as part of a fulfillment will be - * sent unaggregated to the caller. - * @custom:param considerationFulfillments An array of FulfillmentComponent - * arrays indicating which - * consideration items to attempt to - * aggregate when preparing - * executions. - * @param fulfillerConduitKey A bytes32 value indicating what - * conduit, if any, to source the - * fulfiller's token approvals from. - * The zero hash signifies that no - * conduit should be used (and - * direct approvals set on this - * contract). - * @param maximumFulfilled The maximum number of orders to - * fulfill. - * - * @return availableOrders An array of booleans indicating if each order - * with an index corresponding to the index of the - * returned boolean was fulfillable or not. - * @return executions An array of elements indicating the sequence of - * transfers performed as part of matching the given - * orders. - */ - function fulfillAvailableOrders( - /** - * @custom:name orders - */ - Order[] calldata orders, - /** - * @custom:name offerFulfillments - */ - FulfillmentComponent[][] calldata offerFulfillments, - /** - * @custom:name considerationFulfillments - */ - FulfillmentComponent[][] calldata considerationFulfillments, - bytes32 fulfillerConduitKey, - uint256 maximumFulfilled - ) - public - payable - virtual - override - returns ( - bool[] memory, - /* availableOrders */ Execution[] memory /* executions */ - ) - { - for (uint256 i = 0; i < orders.length; i++) { - Order memory order = orders[i]; - if ( - order.parameters.orderType != OrderType.FULL_RESTRICTED && - order.parameters.orderType != OrderType.PARTIAL_RESTRICTED - ) { - revert OrderNotRestricted(); - } - _rejectIfZoneInvalid(order.parameters.zone); - } - - return - super.fulfillAvailableOrders( - orders, - offerFulfillments, - considerationFulfillments, - fulfillerConduitKey, - maximumFulfilled - ); - } - - /** - * @notice Attempt to fill a group of orders, fully or partially, with an - * arbitrary number of items for offer and consideration per order - * alongside criteria resolvers containing specific token - * identifiers and associated proofs. Any order that is not - * currently active, has already been fully filled, or has been - * cancelled will be omitted. Remaining offer and consideration - * items will then be aggregated where possible as indicated by the - * supplied offer and consideration component arrays and aggregated - * items will be transferred to the fulfiller or to each intended - * recipient, respectively. Note that a failing item transfer or an - * issue with order formatting will cause the entire batch to fail. - * - * @custom:param advancedOrders The orders to fulfill along with - * the fraction of those orders to - * attempt to fill. Note that both - * the offerer and the fulfiller - * must first approve this contract - * (or their conduit if indicated by - * the order) to transfer any - * relevant tokens on their behalf - * and that contracts must implement - * `onERC1155Received` to receive - * ERC1155 tokens as consideration. - * Also note that all offer and - * consideration components must - * have no remainder after - * multiplication of the respective - * amount with the supplied fraction - * for an order's partial fill - * amount to be considered valid. - * @custom:param criteriaResolvers An array where each element - * contains a reference to a - * specific offer or consideration, - * a token identifier, and a proof - * that the supplied token - * identifier is contained in the - * merkle root held by the item in - * question's criteria element. Note - * that an empty criteria indicates - * that any (transferable) token - * identifier on the token in - * question is valid and that no - * associated proof needs to be - * supplied. - * @custom:param offerFulfillments An array of FulfillmentComponent - * arrays indicating which offer - * items to attempt to aggregate - * when preparing executions. Note - * that any offer items not included - * as part of a fulfillment will be - * sent unaggregated to the caller. - * @custom:param considerationFulfillments An array of FulfillmentComponent - * arrays indicating which - * consideration items to attempt to - * aggregate when preparing - * executions. - * @param fulfillerConduitKey A bytes32 value indicating what - * conduit, if any, to source the - * fulfiller's token approvals from. - * The zero hash signifies that no - * conduit should be used (and - * direct approvals set on this - * contract). - * @param recipient The intended recipient for all - * received items, with `address(0)` - * indicating that the caller should - * receive the offer items. - * @param maximumFulfilled The maximum number of orders to - * fulfill. - * - * @return availableOrders An array of booleans indicating if each order - * with an index corresponding to the index of the - * returned boolean was fulfillable or not. - * @return executions An array of elements indicating the sequence of - * transfers performed as part of matching the given - * orders. - */ - function fulfillAvailableAdvancedOrders( - /** - * @custom:name advancedOrders - */ - AdvancedOrder[] calldata advancedOrders, - /** - * @custom:name criteriaResolvers - */ - CriteriaResolver[] calldata criteriaResolvers, - /** - * @custom:name offerFulfillments - */ - FulfillmentComponent[][] calldata offerFulfillments, - /** - * @custom:name considerationFulfillments - */ - FulfillmentComponent[][] calldata considerationFulfillments, - bytes32 fulfillerConduitKey, - address recipient, - uint256 maximumFulfilled - ) - public - payable - virtual - override - returns ( - bool[] memory, - /* availableOrders */ Execution[] memory /* executions */ - ) - { - for (uint256 i = 0; i < advancedOrders.length; i++) { - AdvancedOrder memory advancedOrder = advancedOrders[i]; - if ( - advancedOrder.parameters.orderType != - OrderType.FULL_RESTRICTED && - advancedOrder.parameters.orderType != - OrderType.PARTIAL_RESTRICTED - ) { - revert OrderNotRestricted(); - } - - _rejectIfZoneInvalid(advancedOrder.parameters.zone); - } - - return - super.fulfillAvailableAdvancedOrders( - advancedOrders, - criteriaResolvers, - offerFulfillments, - considerationFulfillments, - fulfillerConduitKey, - recipient, - maximumFulfilled - ); - } - - /** - * @notice Match an arbitrary number of orders, each with an arbitrary - * number of items for offer and consideration along with a set of - * fulfillments allocating offer components to consideration - * components. Note that this function does not support - * criteria-based or partial filling of orders (though filling the - * remainder of a partially-filled order is supported). Any unspent - * offer item amounts or native tokens will be transferred to the - * caller. - * - * @custom:param orders The orders to match. Note that both the - * offerer and fulfiller on each order must first - * approve this contract (or their conduit if - * indicated by the order) to transfer any - * relevant tokens on their behalf and each - * consideration recipient must implement - * `onERC1155Received` to receive ERC1155 tokens. - * @custom:param fulfillments An array of elements allocating offer - * components to consideration components. Note - * that each consideration component must be - * fully met for the match operation to be valid, - * and that any unspent offer items will be sent - * unaggregated to the caller. - * - * @return executions An array of elements indicating the sequence of - * transfers performed as part of matching the given - * orders. Note that unspent offer item amounts or native - * tokens will not be reflected as part of this array. - */ - function matchOrders( - /** - * @custom:name orders - */ - Order[] calldata orders, - /** - * @custom:name fulfillments - */ - Fulfillment[] calldata fulfillments - ) - public - payable - virtual - override - returns (Execution[] memory /* executions */) - { - for (uint256 i = 0; i < orders.length; i++) { - Order memory order = orders[i]; - if ( - order.parameters.orderType != OrderType.FULL_RESTRICTED && - order.parameters.orderType != OrderType.PARTIAL_RESTRICTED - ) { - revert OrderNotRestricted(); - } - _rejectIfZoneInvalid(order.parameters.zone); - } - - return super.matchOrders(orders, fulfillments); - } - - /** - * @notice Match an arbitrary number of full, partial, or contract orders, - * each with an arbitrary number of items for offer and - * consideration, supplying criteria resolvers containing specific - * token identifiers and associated proofs as well as fulfillments - * allocating offer components to consideration components. Any - * unspent offer item amounts will be transferred to the designated - * recipient (with the null address signifying to use the caller) - * and any unspent native tokens will be returned to the caller. - * - * @custom:param advancedOrders The advanced orders to match. Note that - * both the offerer and fulfiller on each - * order must first approve this contract - * (or their conduit if indicated by the - * order) to transfer any relevant tokens on - * their behalf and each consideration - * recipient must implement - * `onERC1155Received` to receive ERC1155 - * tokens. Also note that the offer and - * consideration components for each order - * must have no remainder after multiplying - * the respective amount with the supplied - * fraction for the group of partial fills - * to be considered valid. - * @custom:param criteriaResolvers An array where each element contains a - * reference to a specific offer or - * consideration, a token identifier, and a - * proof that the supplied token identifier - * is contained in the merkle root held by - * the item in question's criteria element. - * Note that an empty criteria indicates - * that any (transferable) token identifier - * on the token in question is valid and - * that no associated proof needs to be - * supplied. - * @custom:param fulfillments An array of elements allocating offer - * components to consideration components. - * Note that each consideration component - * must be fully met for the match operation - * to be valid, and that any unspent offer - * items will be sent unaggregated to the - * designated recipient. - * @param recipient The intended recipient for all unspent - * offer item amounts, or the caller if the - * null address is supplied. - * - * @return executions An array of elements indicating the sequence of - * transfers performed as part of matching the given - * orders. Note that unspent offer item amounts or - * native tokens will not be reflected as part of this - * array. - */ - function matchAdvancedOrders( - /** - * @custom:name advancedOrders - */ - AdvancedOrder[] calldata advancedOrders, - /** - * @custom:name criteriaResolvers - */ - CriteriaResolver[] calldata criteriaResolvers, - /** - * @custom:name fulfillments - */ - Fulfillment[] calldata fulfillments, - address recipient - ) - public - payable - virtual - override - returns (Execution[] memory /* executions */) - { - for (uint256 i = 0; i < advancedOrders.length; i++) { - AdvancedOrder memory advancedOrder = advancedOrders[i]; - if ( - advancedOrder.parameters.orderType != - OrderType.FULL_RESTRICTED && - advancedOrder.parameters.orderType != - OrderType.PARTIAL_RESTRICTED - ) { - revert OrderNotRestricted(); - } - - _rejectIfZoneInvalid(advancedOrder.parameters.zone); - } - - return - super.matchAdvancedOrders( - advancedOrders, - criteriaResolvers, - fulfillments, - recipient - ); - } -} diff --git a/contracts/trading/seaport/conduit/ConduitController.sol b/contracts/trading/seaport/conduit/ConduitController.sol deleted file mode 100644 index 11c02ae3..00000000 --- a/contracts/trading/seaport/conduit/ConduitController.sol +++ /dev/null @@ -1,4 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.14; - -import { ConduitController } from "seaport-core/src/conduit/ConduitController.sol"; diff --git a/contracts/trading/seaport/interfaces/ImmutableSeaportEvents.sol b/contracts/trading/seaport/interfaces/ImmutableSeaportEvents.sol deleted file mode 100644 index d57fa0c4..00000000 --- a/contracts/trading/seaport/interfaces/ImmutableSeaportEvents.sol +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) Immutable Pty Ltd 2018 - 2023 -// SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.17; - -/** - * @notice ImmutableSeaportEvents contains events - * related to the ImmutableSeaport contract - */ -interface ImmutableSeaportEvents { - /** - * @dev Emit an event when an allowed zone status is updated - */ - event AllowedZoneSet(address zoneAddress, bool allowed); -} diff --git a/contracts/trading/seaport/test/SeaportTestContracts.sol b/contracts/trading/seaport/test/SeaportTestContracts.sol deleted file mode 100644 index 1e66da80..00000000 --- a/contracts/trading/seaport/test/SeaportTestContracts.sol +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) Immutable Pty Ltd 2018 - 2023 -// SPDX-License-Identifier: Apache-2 -pragma solidity >=0.8.4; - -/** - * @dev Import test contract helpers from Immutable pinned fork of OpenSea's seaport - * These are not deployed - they are only used for testing - */ -import "seaport/contracts/test/TestERC721.sol"; -import "seaport/contracts/test/TestZone.sol"; diff --git a/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol b/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol deleted file mode 100644 index 8a823c82..00000000 --- a/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol +++ /dev/null @@ -1,4 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.17; - -import { ReadOnlyOrderValidator } from "seaport/contracts/helpers/order-validator/lib/ReadOnlyOrderValidator.sol"; diff --git a/contracts/trading/seaport/validators/SeaportValidator.sol b/contracts/trading/seaport/validators/SeaportValidator.sol deleted file mode 100644 index b431bcb4..00000000 --- a/contracts/trading/seaport/validators/SeaportValidator.sol +++ /dev/null @@ -1,4 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.17; - -import { SeaportValidator } from "seaport/contracts/helpers/order-validator/SeaportValidator.sol"; diff --git a/contracts/trading/seaport/validators/SeaportValidatorHelper.sol b/contracts/trading/seaport/validators/SeaportValidatorHelper.sol deleted file mode 100644 index 0334c9cd..00000000 --- a/contracts/trading/seaport/validators/SeaportValidatorHelper.sol +++ /dev/null @@ -1,4 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.17; - -import { SeaportValidatorHelper } from "seaport/contracts/helpers/order-validator/lib/SeaportValidatorHelper.sol"; diff --git a/contracts/trading/seaport/zones/ImmutableSignedZone.sol b/contracts/trading/seaport/zones/ImmutableSignedZone.sol deleted file mode 100644 index 733904b7..00000000 --- a/contracts/trading/seaport/zones/ImmutableSignedZone.sol +++ /dev/null @@ -1,605 +0,0 @@ -// Copyright (c) Immutable Pty Ltd 2018 - 2023 -// SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.17; - -import { - ZoneParameters, - Schema, - ReceivedItem -} from "seaport-types/src/lib/ConsiderationStructs.sol"; -import { ZoneInterface } from "seaport/contracts/interfaces/ZoneInterface.sol"; -import { SIP7Interface } from "./interfaces/SIP7Interface.sol"; -import { SIP7EventsAndErrors } from "./interfaces/SIP7EventsAndErrors.sol"; -import { SIP6EventsAndErrors } from "./interfaces/SIP6EventsAndErrors.sol"; -import { SIP5Interface } from "./interfaces/SIP5Interface.sol"; -import { Ownable2Step } from "@openzeppelin/contracts/access/Ownable2Step.sol"; -import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; -import { Strings } from "@openzeppelin/contracts/utils/Strings.sol"; -import { ERC165 } from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; - -/** - * @title ImmutableSignedZone - * @author Immutable - * @notice ImmutableSignedZone is a zone implementation based on the - * SIP-7 standard https://github.com/ProjectOpenSea/SIPs/blob/main/SIPS/sip-7.md - * Implementing substandard 3 and 4. - * - * Inspiration and reference from the following contracts: - * https://github.com/ProjectOpenSea/seaport/blob/024dcc5cd70231ce6db27b4e12ea6fb736f69b06/contracts/zones/SignedZone.sol - * - We notably deviate from this contract by implementing substandard 3, and SIP-6. - * https://github.com/reservoirprotocol/seaport-oracle/blob/master/packages/contracts/src/zones/SignedZone.sol - * - We deviate from this contract by going with a no assembly code reference contract approach, and we do not have a substandard - * prefix as part of the context bytes of extraData. - * - We estimate that for a standard validateOrder call with 10 consideration items, this contract consumes 1.9% more gas than the above - * as a tradeoff for having no assembly code. - */ -contract ImmutableSignedZone is - ERC165, - SIP7EventsAndErrors, - SIP6EventsAndErrors, - ZoneInterface, - SIP5Interface, - SIP7Interface, - Ownable2Step -{ - /// @dev The EIP-712 digest parameters. - bytes32 internal immutable _VERSION_HASH = keccak256(bytes("1.0")); - bytes32 internal immutable _EIP_712_DOMAIN_TYPEHASH = - keccak256( - abi.encodePacked( - "EIP712Domain(", - "string name,", - "string version,", - "uint256 chainId,", - "address verifyingContract", - ")" - ) - ); - - bytes32 internal immutable _SIGNED_ORDER_TYPEHASH = - keccak256( - abi.encodePacked( - "SignedOrder(", - "address fulfiller,", - "uint64 expiration,", - "bytes32 orderHash,", - "bytes context", - ")" - ) - ); - - bytes internal constant CONSIDERATION_BYTES = - abi.encodePacked("Consideration(", "ReceivedItem[] consideration", ")"); - - bytes internal constant RECEIVED_ITEM_BYTES = - abi.encodePacked( - "ReceivedItem(", - "uint8 itemType,", - "address token,", - "uint256 identifier,", - "uint256 amount,", - "address recipient", - ")" - ); - - bytes32 internal constant RECEIVED_ITEM_TYPEHASH = - keccak256(RECEIVED_ITEM_BYTES); - - bytes32 internal constant CONSIDERATION_TYPEHASH = - keccak256(abi.encodePacked(CONSIDERATION_BYTES, RECEIVED_ITEM_BYTES)); - - uint256 internal immutable _CHAIN_ID = block.chainid; - bytes32 internal immutable _DOMAIN_SEPARATOR; - uint8 internal immutable _ACCEPTED_SIP6_VERSION = 0; - - /// @dev The name for this zone returned in getSeaportMetadata(). - string private _ZONE_NAME; - - bytes32 internal _NAME_HASH; - - /// @dev The allowed signers. - mapping(address => SignerInfo) private _signers; - - /// @dev The API endpoint where orders for this zone can be signed. - /// Request and response payloads are defined in SIP-7. - string private _sip7APIEndpoint; - - /// @dev The documentationURI; - string private _documentationURI; - - /** - * @notice Constructor to deploy the contract. - * - * @param zoneName The name for the zone returned in - * getSeaportMetadata(). - * @param apiEndpoint The API endpoint where orders for this zone can be - * signed. - * Request and response payloads are defined in SIP-7. - */ - constructor( - string memory zoneName, - string memory apiEndpoint, - string memory documentationURI - ) { - // Set the zone name. - _ZONE_NAME = zoneName; - // set name hash - _NAME_HASH = keccak256(bytes(zoneName)); - - // Set the API endpoint. - _sip7APIEndpoint = apiEndpoint; - _documentationURI = documentationURI; - - // Derive and set the domain separator. - _DOMAIN_SEPARATOR = _deriveDomainSeparator(); - - // Emit an event to signal a SIP-5 contract has been deployed. - emit SeaportCompatibleContractDeployed(); - } - - /** - * @notice Add a new signer to the zone. - * - * @param signer The new signer address to add. - */ - function addSigner(address signer) external override onlyOwner { - // Do not allow the zero address to be added as a signer. - if (signer == address(0)) { - revert SignerCannotBeZeroAddress(); - } - - // Revert if the signer is already added. - if (_signers[signer].active) { - revert SignerAlreadyActive(signer); - } - - // Revert if the signer was previously authorized. - // Specified in SIP-7 to prevent compromised signer from being - // Cycled back into use. - if (_signers[signer].previouslyActive) { - revert SignerCannotBeReauthorized(signer); - } - - // Set the signer info. - _signers[signer] = SignerInfo(true, true); - - // Emit an event that the signer was added. - emit SignerAdded(signer); - } - - /** - * @notice Remove an active signer from the zone. - * - * @param signer The signer address to remove. - */ - function removeSigner(address signer) external override onlyOwner { - // Revert if the signer is not active. - if (!_signers[signer].active) { - revert SignerNotActive(signer); - } - - // Set the signer's active status to false. - _signers[signer].active = false; - - // Emit an event that the signer was removed. - emit SignerRemoved(signer); - } - - /** - * @notice Check if a given order including extraData is currently valid. - * - * @dev This function is called by Seaport whenever any extraData is - * provided by the caller. - * - * @return validOrderMagicValue A magic value indicating if the order is - * currently valid. - */ - function validateOrder( - ZoneParameters calldata zoneParameters - ) external view override returns (bytes4 validOrderMagicValue) { - // Put the extraData and orderHash on the stack for cheaper access. - bytes calldata extraData = zoneParameters.extraData; - bytes32 orderHash = zoneParameters.orderHash; - - // Revert with an error if the extraData is empty. - if (extraData.length == 0) { - revert InvalidExtraData("extraData is empty", orderHash); - } - - // We expect the extraData to conform with SIP-6 as well as SIP-7 - // Therefore all SIP-7 related data is offset by one byte - // SIP-7 specifically requires SIP-6 as a prerequisite. - - // Revert with an error if the extraData does not have valid length. - if (extraData.length < 93) { - revert InvalidExtraData( - "extraData length must be at least 93 bytes", - orderHash - ); - } - - // Revert if SIP6 version is not accepted (0) - if (uint8(extraData[0]) != _ACCEPTED_SIP6_VERSION) { - revert UnsupportedExtraDataVersion(uint8(extraData[0])); - } - - // extraData bytes 1-21: expected fulfiller - // (zero address means not restricted) - address expectedFulfiller = address(bytes20(extraData[1:21])); - - // extraData bytes 21-29: expiration timestamp (uint64) - uint64 expiration = uint64(bytes8(extraData[21:29])); - - // extraData bytes 29-93: signature - // (strictly requires 64 byte compact sig, ERC2098) - bytes calldata signature = extraData[29:93]; - - // extraData bytes 93-end: context (optional, variable length) - bytes calldata context = extraData[93:]; - - // Revert if expired. - if (block.timestamp > expiration) { - revert SignatureExpired(block.timestamp, expiration, orderHash); - } - - // Put fulfiller on the stack for more efficient access. - address actualFulfiller = zoneParameters.fulfiller; - - // Revert unless - // Expected fulfiller is 0 address (any fulfiller) or - // Expected fulfiller is the same as actual fulfiller - if ( - expectedFulfiller != address(0) && - expectedFulfiller != actualFulfiller - ) { - revert InvalidFulfiller( - expectedFulfiller, - actualFulfiller, - orderHash - ); - } - - // validate supported substandards (3,4) - _validateSubstandards( - context, - _deriveConsiderationHash(zoneParameters.consideration), - zoneParameters - ); - - // Derive the signedOrder hash - bytes32 signedOrderHash = _deriveSignedOrderHash( - expectedFulfiller, - expiration, - orderHash, - context - ); - - // Derive the EIP-712 digest using the domain separator and signedOrder - // hash through openzepplin helper - bytes32 digest = ECDSA.toTypedDataHash( - _domainSeparator(), - signedOrderHash - ); - - // Recover the signer address from the digest and signature. - // Pass in R and VS from compact signature (ERC2098) - address recoveredSigner = ECDSA.recover( - digest, - bytes32(signature[0:32]), - bytes32(signature[32:64]) - ); - - // Revert if the signer is not active - // !This also reverts if the digest constructed on serverside is incorrect - if (!_signers[recoveredSigner].active) { - revert SignerNotActive(recoveredSigner); - } - - // All validation completes and passes with no reverts, return valid - validOrderMagicValue = ZoneInterface.validateOrder.selector; - } - - /** - * @dev Internal view function to get the EIP-712 domain separator. If the - * chainId matches the chainId set on deployment, the cached domain - * separator will be returned; otherwise, it will be derived from - * scratch. - * - * @return The domain separator. - */ - function _domainSeparator() internal view returns (bytes32) { - return - block.chainid == _CHAIN_ID - ? _DOMAIN_SEPARATOR - : _deriveDomainSeparator(); - } - - /** - * @dev Returns Seaport metadata for this contract, returning the - * contract name and supported schemas. - * - * @return name The contract name - * @return schemas The supported SIPs - */ - function getSeaportMetadata() - external - view - override(SIP5Interface, ZoneInterface) - returns (string memory name, Schema[] memory schemas) - { - name = _ZONE_NAME; - - // supported SIP (7) - schemas = new Schema[](1); - schemas[0].id = 7; - - schemas[0].metadata = abi.encode( - keccak256( - abi.encode( - _domainSeparator(), - _sip7APIEndpoint, - _getSupportedSubstandards(), - _documentationURI - ) - ) - ); - } - - /** - * @dev Internal view function to derive the EIP-712 domain separator. - * - * @return domainSeparator The derived domain separator. - */ - function _deriveDomainSeparator() - internal - view - returns (bytes32 domainSeparator) - { - return - keccak256( - abi.encode( - _EIP_712_DOMAIN_TYPEHASH, - _NAME_HASH, - _VERSION_HASH, - block.chainid, - address(this) - ) - ); - } - - /** - * @notice Update the API endpoint returned by this zone. - * - * @param newApiEndpoint The new API endpoint. - */ - function updateAPIEndpoint( - string calldata newApiEndpoint - ) external override onlyOwner { - // Update to the new API endpoint. - _sip7APIEndpoint = newApiEndpoint; - } - - /** - * @notice Returns signing information about the zone. - * - * @return domainSeparator The domain separator used for signing. - */ - function sip7Information() - external - view - override - returns ( - bytes32 domainSeparator, - string memory apiEndpoint, - uint256[] memory substandards, - string memory documentationURI - ) - { - domainSeparator = _domainSeparator(); - apiEndpoint = _sip7APIEndpoint; - - substandards = _getSupportedSubstandards(); - - documentationURI = _documentationURI; - } - - /** - * @dev validate substandards 3 and 4 based on context - * - * @param context bytes payload of context - */ - function _validateSubstandards( - bytes calldata context, - bytes32 actualConsiderationHash, - ZoneParameters calldata zoneParameters - ) internal pure { - // substandard 3 - validate consideration hash actual match expected - - // first 32bytes of context must be exactly a keccak256 hash of consideration item array - if (context.length < 32) { - revert InvalidExtraData( - "invalid context, expecting consideration hash followed by order hashes", - zoneParameters.orderHash - ); - } - - // revert if order hash in context and payload do not match - bytes32 expectedConsiderationHash = bytes32(context[0:32]); - if (expectedConsiderationHash != actualConsiderationHash) { - revert SubstandardViolation( - 3, - "invalid consideration hash", - zoneParameters.orderHash - ); - } - - // substandard 4 - validate order hashes actual match expected - - // byte 33 to end are orderHashes array for substandard 4 - bytes calldata orderHashesBytes = context[32:]; - // context must be a multiple of 32 bytes - if (orderHashesBytes.length % 32 != 0) { - revert InvalidExtraData( - "invalid context, order hashes bytes not an array of bytes32 hashes", - zoneParameters.orderHash - ); - } - - // compute expected order hashes array based on context bytes - bytes32[] memory expectedOrderHashes = new bytes32[]( - orderHashesBytes.length / 32 - ); - for (uint256 i = 0; i < orderHashesBytes.length / 32; i++) { - expectedOrderHashes[i] = bytes32( - orderHashesBytes[i * 32:i * 32 + 32] - ); - } - - // revert if order hashes in context and payload do not match - // every expected order hash need to exist in fulfilling order hashes - if ( - !_everyElementExists( - expectedOrderHashes, - zoneParameters.orderHashes - ) - ) { - revert SubstandardViolation( - 4, - "invalid order hashes", - zoneParameters.orderHash - ); - } - } - - /** - * @dev get the supported substandards of the contract - * - * @return substandards array of substandards supported - * - */ - function _getSupportedSubstandards() - internal - pure - returns (uint256[] memory substandards) - { - // support substandards 3 and 4 - substandards = new uint256[](2); - substandards[0] = 3; - substandards[1] = 4; - } - - /** - * @dev Derive the signedOrder hash from the orderHash and expiration. - * - * @param fulfiller The expected fulfiller address. - * @param expiration The signature expiration timestamp. - * @param orderHash The order hash. - * @param context The optional variable-length context. - * - * @return signedOrderHash The signedOrder hash. - * - */ - function _deriveSignedOrderHash( - address fulfiller, - uint64 expiration, - bytes32 orderHash, - bytes calldata context - ) internal view returns (bytes32 signedOrderHash) { - // Derive the signed order hash. - signedOrderHash = keccak256( - abi.encode( - _SIGNED_ORDER_TYPEHASH, - fulfiller, - expiration, - orderHash, - keccak256(context) - ) - ); - } - - /** - * @dev Derive the EIP712 consideration hash based on received item array - * @param consideration expected consideration array - */ - function _deriveConsiderationHash( - ReceivedItem[] calldata consideration - ) internal pure returns (bytes32) { - uint256 numberOfItems = consideration.length; - bytes32[] memory considerationHashes = new bytes32[](numberOfItems); - for (uint256 i; i < numberOfItems; i++) { - considerationHashes[i] = keccak256( - abi.encode( - RECEIVED_ITEM_TYPEHASH, - consideration[i].itemType, - consideration[i].token, - consideration[i].identifier, - consideration[i].amount, - consideration[i].recipient - ) - ); - } - return - keccak256( - abi.encode( - CONSIDERATION_TYPEHASH, - keccak256(abi.encodePacked(considerationHashes)) - ) - ); - } - - /** - * @dev helper function to check if every element of array1 exists in array2 - * optimised for performance checking arrays sized 0-15 - * - * @param array1 subset array - * @param array2 superset array - */ - function _everyElementExists( - bytes32[] memory array1, - bytes32[] calldata array2 - ) internal pure returns (bool) { - // cache the length in memory for loop optimisation - uint256 array1Size = array1.length; - uint256 array2Size = array2.length; - - // we can assume all items (order hashes) are unique - // therefore if subset is bigger than superset, revert - if (array1Size > array2Size) { - return false; - } - - // Iterate through each element and compare them - for (uint256 i = 0; i < array1Size; ) { - bool found = false; - bytes32 item = array1[i]; - for (uint256 j = 0; j < array2Size; ) { - if (item == array2[j]) { - // if item from array1 is in array2, break - found = true; - break; - } - unchecked { - j++; - } - } - if (!found) { - // if any item from array1 is not found in array2, return false - return false; - } - unchecked { - i++; - } - } - - // All elements from array1 exist in array2 - return true; - } - - function supportsInterface( - bytes4 interfaceId - ) public view override(ERC165, ZoneInterface) returns (bool) { - return - interfaceId == type(ZoneInterface).interfaceId || - super.supportsInterface(interfaceId); - } -} diff --git a/contracts/trading/seaport/zones/README.md b/contracts/trading/seaport/zones/README.md deleted file mode 100644 index 990b6728..00000000 --- a/contracts/trading/seaport/zones/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Test plan for ImmutableSignedZone - -ImmutableSignedZone is a implementation of the SIP-7 specification with substandard 3. - -## E2E tests with signing server - -E2E tests will be handled in the server repository seperate to the contract. - -## Validate order unit tests - -The core function of the contract is `validateOrder` where signature verification and a variety of validations of the `extraData` payload is verified by the zone to determine whether an order is considered valid for fulfillment. This function will be called by the settlement contract upon order fulfillment. - -| Test name | Description | Happy Case | Implemented | -| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ---------- | ----------- | -| validateOrder reverts without extraData | base failure case | No | Yes | -| validateOrder reverts with invalid extraData | base failure case | No | Yes | -| validateOrder reverts with expired timestamp | asserts the expiration verification behaviour | No | Yes | -| validateOrder reverts with invalid fulfiller | asserts the fulfiller verification behaviour | No | Yes | -| validateOrder reverts with non 0 SIP6 version | asserts the SIP6 version verification behaviour | No | Yes | -| validateOrder reverts with wrong consideration | asserts the consideration verification behaviour | No | Yes | -| validates correct signature with context | Happy path of a valid order | Yes | Yes | -| validateOrder validates correct context with multiple order hashes - equal arrays | Happy path with bulk order hashes - expected == actual | Yes | Yes | -| validateOrder validates correct context with multiple order hashes - partial arrays | Happy path with bulk order hashes - expected is a subset of actual | Yes | Yes | -| validateOrder reverts when not all expected order hashes are in zone parameters | Error case with bulk order hashes - actual is a subset of expected | No | Yes | -| validateOrder reverts incorrectly signed signature with context | asserts active signer behaviour | No | Yes | -| validateOrder reverts a valid order after expiration time passes | asserts active signer behaviour | No | Yes | - -## Ownership unit tests - -Test the ownership behaviour of the contract - -| Test name | Description | Happy Case | Implemented | -| ------------------------------- | --------------------------- | ---------- | ----------- | -| deployer becomes owner | base case | Yes | Yes | -| transferOwnership works | base case | Yes | Yes | -| non owner cannot add signers | asserts ownership behaviour | No | Yes | -| non owner cannot remove signers | asserts ownership behaviour | No | Yes | -| non owner cannot update owner | asserts ownership behaviour | No | Yes | - -## Active signer unit tests - -Test the signer management behaviour of the contract - -| Test name | Description | Happy Case | Implemented | -| ---------------------------------- | --------------------------------------------------- | ---------- | ----------- | -| owner can add active signer | base case | Yes | Yes | -| owner can deactivate signer | base case | Yes | Yes | -| deactivate non active signer fails | asserts signers can only be deactivated when active | No | Yes | -| activate deactivated signer fails | asserts signer cannot be recycled behaviour | No | Yes | diff --git a/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol b/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol deleted file mode 100644 index 9da10294..00000000 --- a/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Immutable Pty Ltd 2018 - 2023 -// SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.17; - -import { Schema } from "seaport-types/src/lib/ConsiderationStructs.sol"; - -/** - * @dev SIP-5: Contract Metadata Interface for Seaport Contracts - * https://github.com/ProjectOpenSea/SIPs/blob/main/SIPS/sip-5.md - */ -interface SIP5Interface { - /** - * @dev An event that is emitted when a SIP-5 compatible contract is deployed. - */ - event SeaportCompatibleContractDeployed(); - - /** - * @dev Returns Seaport metadata for this contract, returning the - * contract name and supported schemas. - * - * @return name The contract name - * @return schemas The supported SIPs - */ - function getSeaportMetadata() - external - view - returns (string memory name, Schema[] memory schemas); -} diff --git a/contracts/trading/seaport/zones/interfaces/SIP6EventsAndErrors.sol b/contracts/trading/seaport/zones/interfaces/SIP6EventsAndErrors.sol deleted file mode 100644 index 338b3b27..00000000 --- a/contracts/trading/seaport/zones/interfaces/SIP6EventsAndErrors.sol +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) Immutable Pty Ltd 2018 - 2023 -// SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.17; - -/** - * @notice SIP6EventsAndErrors contains errors and events - * related to zone interaction as specified in the SIP6. - */ -interface SIP6EventsAndErrors { - /** - * @dev Revert with an error if SIP6 version is not supported - */ - error UnsupportedExtraDataVersion(uint8 version); -} diff --git a/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol b/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol deleted file mode 100644 index 75555db0..00000000 --- a/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (c) Immutable Pty Ltd 2018 - 2023 -// SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.17; - -/** - * @notice SIP7EventsAndErrors contains errors and events - * related to zone interaction as specified in the SIP7. - */ -interface SIP7EventsAndErrors { - /** - * @dev Emit an event when a new signer is added. - */ - event SignerAdded(address signer); - - /** - * @dev Emit an event when a signer is removed. - */ - event SignerRemoved(address signer); - - /** - * @dev Revert with an error if trying to add a signer that is - * already active. - */ - error SignerAlreadyActive(address signer); - - /** - * @dev Revert with an error if trying to remove a signer that is - * not active - */ - error SignerNotActive(address signer); - - /** - * @dev Revert with an error if a new signer is the zero address. - */ - error SignerCannotBeZeroAddress(); - - /** - * @dev Revert with an error if a removed signer is trying to be - * reauthorized. - */ - error SignerCannotBeReauthorized(address signer); - - /** - * @dev Revert with an error when the signature has expired. - */ - error SignatureExpired( - uint256 currentTimestamp, - uint256 expiration, - bytes32 orderHash - ); - - /** - * @dev Revert with an error if the fulfiller does not match. - */ - error InvalidFulfiller( - address expectedFulfiller, - address actualFulfiller, - bytes32 orderHash - ); - - /** - * @dev Revert with an error if a substandard validation fails - */ - error SubstandardViolation( - uint256 substandardId, - string reason, - bytes32 orderHash - ); - - /** - * @dev Revert with an error if supplied order extraData is invalid - * or improperly formatted. - */ - error InvalidExtraData(string reason, bytes32 orderHash); -} diff --git a/contracts/trading/seaport/zones/interfaces/SIP7Interface.sol b/contracts/trading/seaport/zones/interfaces/SIP7Interface.sol deleted file mode 100644 index 47a16551..00000000 --- a/contracts/trading/seaport/zones/interfaces/SIP7Interface.sol +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright (c) Immutable Pty Ltd 2018 - 2023 -// SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.17; - -/** - * @title SIP7Interface - * @author ryanio, Immutable - * @notice ImmutableSignedZone is an implementation of SIP-7 that requires orders - * to be signed by an approved signer. - * https://github.com/ProjectOpenSea/SIPs/blob/main/SIPS/sip-7.md - * - */ -interface SIP7Interface { - /** - * @dev The struct for storing signer info. - */ - struct SignerInfo { - bool active; /// If the signer is currently active. - bool previouslyActive; /// If the signer has been active before. - } - - /** - * @notice Add a new signer to the zone. - * - * @param signer The new signer address to add. - */ - function addSigner(address signer) external; - - /** - * @notice Remove an active signer from the zone. - * - * @param signer The signer address to remove. - */ - function removeSigner(address signer) external; - - /** - * @notice Update the API endpoint returned by this zone. - * - * @param newApiEndpoint The new API endpoint. - */ - function updateAPIEndpoint(string calldata newApiEndpoint) external; - - /** - * @notice Returns signing information about the zone. - * - * @return domainSeparator The domain separator used for signing. - * @return apiEndpoint The API endpoint to get signatures for orders - * using this zone. - */ - function sip7Information() - external - view - returns ( - bytes32 domainSeparator, - string memory apiEndpoint, - uint256[] memory substandards, - string memory documentationURI - ); -} diff --git a/remappings.txt b/remappings.txt index d5e44f78..ac39bdab 100644 --- a/remappings.txt +++ b/remappings.txt @@ -5,4 +5,4 @@ solidity-bytes-utils/=lib/solidity-bytes-utils/ seaport-core/=lib/seaport-core/ seaport-types/=lib/seaport-types/ -# seaport/contracts/=lib/seaport.git/contracts/ +# seaport/contracts/=lib/seaportsdvdsfsfdsdfdgit/contracts/ From 236c5186a95cb1e1bdc211e827e4c818f984009a Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 21 Dec 2023 17:24:07 +1000 Subject: [PATCH 036/100] Remove seaport lib directory --- lib/seaport.git | 1 - 1 file changed, 1 deletion(-) delete mode 160000 lib/seaport.git diff --git a/lib/seaport.git b/lib/seaport.git deleted file mode 160000 index ae061dc0..00000000 --- a/lib/seaport.git +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ae061dc008105dd8d05937df9ad9a676f878cbf9 From 1c30b08092c47923b4c62caa70bf046542bc47e4 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 22 Dec 2023 15:21:37 +1000 Subject: [PATCH 037/100] Re-designed based on integration with chainlink --- .gitmodules | 3 + contracts/random/IOffchainRandomSource.sol | 12 +- contracts/random/RandomSeedProvider.sol | 201 +++++++++++------- contracts/random/RandomValues.sol | 39 ++-- .../offchainsources/ChainlinkSource.sol | 82 +++++++ lib/chainlink | 1 + remappings.txt | 1 + test/random/README.md | 2 + 8 files changed, 241 insertions(+), 100 deletions(-) create mode 100644 contracts/random/offchainsources/ChainlinkSource.sol create mode 160000 lib/chainlink create mode 100644 test/random/README.md diff --git a/.gitmodules b/.gitmodules index 5525b8f1..be5a7928 100644 --- a/.gitmodules +++ b/.gitmodules @@ -22,3 +22,6 @@ [submodule "lib/seaport-types"] path = lib/seaport-types url = https://github.com/ProjectOpenSea/seaport-types +[submodule "lib/chainlink"] + path = lib/chainlink + url = https://github.com/smartcontractkit/chainlink diff --git a/contracts/random/IOffchainRandomSource.sol b/contracts/random/IOffchainRandomSource.sol index 25a873bd..2d063bf8 100644 --- a/contracts/random/IOffchainRandomSource.sol +++ b/contracts/random/IOffchainRandomSource.sol @@ -1,15 +1,19 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2023 // SPDX-License-Identifier: Apache 2 -pragma solidity ^0.8.19; - +pragma solidity 0.8.19; +/** + * @notice Off-chain random source adaptors must implement this interface. + */ interface IOffchainRandomSource { + function requestOffchainRandom() external returns(uint256 _fulfillmentIndex); + /** * @notice Fetch the latest off-chain generated random value. + * @param _fulfillmentIndex Number previously given when requesting a ramdon value. * @return _randomValue The value generated off-chain. - * @return _index A number indicating how many random numbers have been previously generated. */ - function getOffchainRandom() external returns(bytes32 _randomValue, uint256 _index); + function getOffchainRandom(uint256 _fulfillmentIndex) external view returns(bytes32 _randomValue); } \ No newline at end of file diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index e3b645ad..0972d494 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -1,6 +1,6 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2023 // SPDX-License-Identifier: Apache 2 -pragma solidity ^0.8.19; +pragma solidity 0.8.19; import {AccessControlEnumerableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol"; import {IOffchainRandomSource} from "./IOffchainRandomSource.sol"; @@ -16,11 +16,11 @@ import {IOffchainRandomSource} from "./IOffchainRandomSource.sol"; * Open Zeppelin TransparentUpgradeProxy. */ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { - // Security levels between 1 and 10 are allowed. - error InvalidSecurityLevel(uint256 _securityLevel); // The random seed value is not yet available. error WaitForRandom(); + error UnknownMethodology(); + // The offchain random source has been updated. event OffchainRandomSourceSet(address _offchainRandomSource); @@ -28,26 +28,36 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { // an offchain random source is not available. event RanDaoEnabled(); + enum GenerationMethodology { + TRADITIONAL, + RANDAO, + OFFCHAIN + } + + // Admin role that can enable RanDAO and offchain random sources. bytes32 public constant RANDOM_ADMIN_ROLE = keccak256("RANDOM_ADMIN_ROLE"); // When random seeds are requested, a request id is returned. The id // relates to a certain future random seed. This map holds all of the // random seeds that have been produced. - mapping (uint256 => bytes32) private randomOutput; + mapping (uint256 => bytes32) public randomOutput; // The index of the next seed value to be produced. - uint256 private nextRandomIndex; + uint256 public nextRandomIndex; // The block number in which the last seed value was generated. - uint256 private lastBlockRandomGenerated; + uint256 public lastBlockRandomGenerated; + + uint256 public offchainRequestRateLimit; + uint256 public prevOffchainRandomRequest; + uint256 public lastBlockOffchainRequest; + // Off-chain random source that is used to generate random seeds. IOffchainRandomSource public offchainRandomSource; - // True if RanDAO is being used as a source of random values (assuming - // the off-chain random source has not been enabled). - bool public ranDaoEnabled; + GenerationMethodology public methodology; /** @@ -65,6 +75,8 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { // all random numbers are personalised to this chain. randomOutput[0] = keccak256(abi.encodePacked(block.chainid, block.number)); nextRandomIndex = 1; + + methodology = GenerationMethodology.TRADITIONAL; } /** @@ -72,8 +84,10 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * @dev Must have RANDOM_ROLE. * @param _offchainRandomSource Address of contract that is an offchain random source. */ - function setOffchainRandomSource(address _offchainRandomSource) external onlyRole(RANDOM_ADMIN_ROLE) { + function setOffchainRandomSource(address _offchainRandomSource, uint256 _offchainRequestRateLimit) external onlyRole(RANDOM_ADMIN_ROLE) { offchainRandomSource = IOffchainRandomSource(_offchainRandomSource); + offchainRequestRateLimit = _offchainRequestRateLimit; + methodology = GenerationMethodology.OFFCHAIN; emit OffchainRandomSourceSet(_offchainRandomSource); } @@ -84,39 +98,46 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * algorithm supports RanDAO, then let's use it. */ function enableRanDao() external onlyRole(RANDOM_ADMIN_ROLE) { - ranDaoEnabled = true; + methodology = GenerationMethodology.RANDAO; emit RanDaoEnabled(); } /** - * @notice Generate a random value. + * @notice Generate a random value using on-chain methodologies. */ function generateNextRandom() public { - // Previous random output. bytes32 prevRandomOutput = randomOutput[nextRandomIndex - 1]; + bytes32 newRandomOutput; - // Use the off-chain random provider if it has been configured. - IOffchainRandomSource offchainSourceCached = offchainRandomSource; - if (address(offchainSourceCached) != address(0)) { - bytes32 offchainRandom; - uint256 index; - (offchainRandom, index) = offchainSourceCached.getOffchainRandom(); - // No new random value is available at this point. Check back later. - if (index != nextRandomIndex) { + if (methodology == GenerationMethodology.TRADITIONAL) { + // Random values for the TRADITIONAL methodology can only be generated once per block. + if (lastBlockRandomGenerated == block.number) { return; } - randomOutput[nextRandomIndex++] = keccak256(abi.encodePacked(prevRandomOutput, offchainRandom)); - return; - } - // The values below can only be updated once per block. - if (lastBlockRandomGenerated == block.number) { - return; + // Block hash will be different for each block and difficult for game players + // to guess. The block producer could manipulate the block hash by crafting a + // transaction that included a number that the block producer controls. A + // malicious block producer could produce many candidate blocks, in an attempt + // to produce a specific value. + bytes32 blockHash = blockhash(block.number); + + // Timestamp when a block is produced in milli-seconds will be different for each + // block. Game players could estimate the possible values for the timestamp. + // The block producer could manipulate the timestamp by changing the time recorded + // as when the block was produced. The block will be deemed invalid if the value is + // too far from the expected block time. + // slither-disable-next-line timestamp + uint256 timestamp = block.timestamp; + + newRandomOutput = keccak256(abi.encodePacked(prevRandomOutput, blockHash, timestamp)); } + else if (methodology == GenerationMethodology.RANDAO) { + // Random values for the RANDAO methodology can only be generated once per block. + if (lastBlockRandomGenerated == block.number) { + return; + } - // If the off-chain random provider hasn't been configured yet, but the - // consensus protocol supports RANDAO, use RANDAO. - if (ranDaoEnabled) { // PrevRanDAO (previously known as DIFFICULTY) is the output of the RanDAO function // used as a part of consensus. The value posted is the value revealed in the previous // block, not in this block. In this way, all parties know the value prior to it being @@ -130,58 +151,56 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { // be a predictable value related to the block number. uint256 prevRanDAO = block.prevrandao; - randomOutput[nextRandomIndex++] = keccak256(abi.encodePacked(prevRandomOutput, prevRanDAO)); + newRandomOutput = keccak256(abi.encodePacked(prevRandomOutput, prevRanDAO)); + } + else if (methodology == GenerationMethodology.OFFCHAIN) { + // Nothing to do here. } else { - // If neither off-chain random nor RANDAO is available, use block hash - // and block number. - - // Block hash will be different for each block and difficult for game players - // to guess. The block producer could manipulate the block hash by crafting a - // transaction that included a number that the block producer controlled. A - // malicious block producer could produce many candidate blocks, in an attempt - // to produce a specific value. - bytes32 blockHash = blockhash(block.number); - - // Timestamp when a block is produced in milli-seconds will be different for each - // block. Game players could estimate the possible values for the timestamp. - // The block producer could manipulate the timestamp by changing the time recorded - // as when the block was produced. The block will be deemed invalid if the value is - // too far from the expected block time. - // slither-disable-next-line timestamp - uint256 timestamp = block.timestamp; - - randomOutput[nextRandomIndex++] = keccak256(abi.encodePacked(prevRandomOutput, blockHash, timestamp)); + revert UnknownMethodology(); } + + randomOutput[nextRandomIndex++] = newRandomOutput; + lastBlockRandomGenerated = block.number; } /** - * @notice Request the index number to be used for generating a random value. + * @notice Request the index number to track when a random number will be produced. * @dev Note that the same _randomFulfillmentIndex will be returned to multiple games and even within * the one game. Games must personalise this value to their own game, the the particular game player, * and to the game player's request. - * @param _securityLevel The number of random number generations to wait. A higher value provides - * better security. For most applications, a value of 1 or 2 is ideal. If the random number - * is for a high value transaction, choose a high number, for instance 3 or 4. - * The reasoning behind a low value providing less security is that when the security level - * is set to one, the seed is derived from the next off-chain random value. However, this - * value could relate to an off-chain random value being supplied by a transaction that is currently - * in the transaction pool. Some game players may be able to see this value and hence guess the - * outcome for the random generation. Having a higher value means that the game player has to commit - * before the off-chain random number is put into a transaction that is then put into the - * transaction pool. * @return _randomFulfillmentIndex The index for the game contract to present to fetch the next random value. */ - function requestRandom(uint256 _securityLevel) external returns(uint256 _randomFulfillmentIndex) { - if (_securityLevel == 0 || _securityLevel > 10) { - revert InvalidSecurityLevel(_securityLevel); + function requestRandomSeed() external returns(uint256 _randomFulfillmentIndex, GenerationMethodology _method) { + if (methodology == GenerationMethodology.TRADITIONAL || methodology == GenerationMethodology.RANDAO) { + // Generate a value for this block, just in case there are historical requests + // to be fulfilled in transactions later in this block. + generateNextRandom(); + + // Indicate that a value based on the next block will be fine. + _randomFulfillmentIndex = nextRandomIndex + 1; + _method = methodology; + } + else if (methodology == GenerationMethodology.OFFCHAIN) { + // Limit how often offchain random numbers are requested. If + // offchainRequestRateLimit is 1, then a maximum of one request + // per block is generated. If it 2, then a maximum of one request + // every two blocks is generated. + uint256 offchainRequestRateLimitCached = offchainRequestRateLimit; + uint256 blockNumberRateLimited = (block.number / offchainRequestRateLimitCached) * offchainRequestRateLimitCached; + if (lastBlockOffchainRequest == blockNumberRateLimited) { + _randomFulfillmentIndex = prevOffchainRandomRequest; + } + else { + _randomFulfillmentIndex = offchainRandomSource.requestOffchainRandom(); + prevOffchainRandomRequest = _randomFulfillmentIndex; + lastBlockOffchainRequest = block.number; + } + _method = GenerationMethodology.OFFCHAIN; + } + else { + revert UnknownMethodology(); } - // Generate a new value now using offchain values that might be cached in the blockchain already. - // Do this to ensure nafarious actors can't read the cached values and use them to determine - // the next random value. - generateNextRandom(); - // Indicate that the next generated random value can be used. - _randomFulfillmentIndex = nextRandomIndex + _securityLevel; } @@ -192,16 +211,44 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * and to the game player's request. * @return _randomSeed The value from with random values can be derived. */ - function getRandomSeed(uint256 _randomFulfillmentIndex) external returns (bytes32 _randomSeed) { - generateNextRandom(); - if (_randomFulfillmentIndex < nextRandomIndex) { - revert WaitForRandom(); + function getRandomSeed(uint256 _randomFulfillmentIndex, GenerationMethodology _method) external returns (bytes32 _randomSeed) { + if (_method == GenerationMethodology.TRADITIONAL || _method == GenerationMethodology.RANDAO) { + generateNextRandom(); + if (_randomFulfillmentIndex < nextRandomIndex) { + revert WaitForRandom(); + } + return randomOutput[_randomFulfillmentIndex]; } - return randomOutput[_randomFulfillmentIndex]; - + else if (_method == GenerationMethodology.OFFCHAIN) { + return offchainRandomSource.getOffchainRandom(_randomFulfillmentIndex); + } + else { + revert UnknownMethodology(); + } + } + /** + * @notice Check whether a random seed is ready. + * @param _randomFulfillmentIndex Index when random seed will be ready. + */ + function randomSeedIsReady(uint256 _randomFulfillmentIndex, GenerationMethodology _method) external view returns (bool) { + if (_method == GenerationMethodology.TRADITIONAL || _method == GenerationMethodology.RANDAO) { + if (lastBlockRandomGenerated == block.number) { + return _randomFulfillmentIndex <= nextRandomIndex; + } + else { + return _randomFulfillmentIndex <= nextRandomIndex+1; + } + } + else if (_method == GenerationMethodology.OFFCHAIN) { + return bytes32(0x00) != offchainRandomSource.getOffchainRandom(_randomFulfillmentIndex); + } + else { + revert UnknownMethodology(); + } } + // slither-disable-next-line unused-state,naming-convention - uint256[100] private __gapRootManager; + uint256[100] private __gapRandomSeedProvider; } \ No newline at end of file diff --git a/contracts/random/RandomValues.sol b/contracts/random/RandomValues.sol index 48b4abb4..4d8ea4f4 100644 --- a/contracts/random/RandomValues.sol +++ b/contracts/random/RandomValues.sol @@ -1,39 +1,38 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2023 // SPDX-License-Identifier: Apache 2 -pragma solidity ^0.8.19; +pragma solidity 0.8.19; import {RandomSeedProvider} from "./RandomSeedProvider.sol"; - - -// TODO add doc: This contract should be extended by game companies, one per game. - -// TODO written so can be upgradeable +/** + * @notice Game contracts that need random numbers should extend this contract. + * @dev This variant of the contract has been used with UPGRADEABLE or NON-UNGRADEABLE contracts. + */ abstract contract RandomValues { - mapping (uint256 => uint256) private randCreationRequests; - uint256 private nextNonce; + RandomSeedProvider public immutable randomSeedProvider; - RandomSeedProvider public randomSeedProvider; + mapping (uint256 => uint256) private randCreationRequests; + mapping (uint256 => RandomSeedProvider.GenerationMethodology) private randCreationRequestsMethod; + uint256 private nextNonce; constructor(address _randomSeedProvider) { randomSeedProvider = RandomSeedProvider(_randomSeedProvider); } - - + /** * @notice Register a request to generate a random value. This function should be called * when a game player has purchased an item that has a random value. - * @param _securityLevel The number of random number generations to wait. A higher value provides - * better security. For most applications, a value of 1 or 2 is ideal. If the random number - * is for a high value transaction, choose a high number, for instance 3 or 4. * @return _randomRequestId A value that needs to be presented when fetching the random * value with fetchRandom. */ - function requestRandomValueCreation(uint256 _securityLevel) internal returns (uint256 _randomRequestId) { - uint256 randomFulfillmentIndex = randomSeedProvider.requestRandom(_securityLevel); + function _requestRandomValueCreation() internal returns (uint256 _randomRequestId) { + uint256 randomFulfillmentIndex; + RandomSeedProvider.GenerationMethodology method; + (randomFulfillmentIndex, method) = randomSeedProvider.requestRandomSeed(); _randomRequestId = nextNonce++; randCreationRequests[_randomRequestId] = randomFulfillmentIndex; + randCreationRequestsMethod[_randomRequestId] = method; } @@ -44,9 +43,10 @@ abstract contract RandomValues { * and no game player will have the same random value twice. * @return _randomValue The index for the game contract to present to fetch the next random value. */ - function fetchRandom(uint256 _randomRequestId) internal returns(bytes32 _randomValue) { + function _fetchRandom(uint256 _randomRequestId) internal returns(bytes32 _randomValue) { // Request the random seed. If not enough time has elapsed yet, this call will revert. - bytes32 randomSeed = randomSeedProvider.getRandomSeed(randCreationRequests[_randomRequestId]); + bytes32 randomSeed = randomSeedProvider.getRandomSeed( + randCreationRequests[_randomRequestId], randCreationRequestsMethod[_randomRequestId]); // Generate the random value by combining: // address(this): personalises the random seed to this game. // msg.sender: personalises the random seed to the game player. @@ -56,5 +56,6 @@ abstract contract RandomValues { _randomValue = keccak256(abi.encodePacked(address(this), msg.sender, _randomRequestId, randomSeed)); } - // TODO storage gap + // slither-disable-next-line unused-state,naming-convention + uint256[100] private __gapRandomValues; } \ No newline at end of file diff --git a/contracts/random/offchainsources/ChainlinkSource.sol b/contracts/random/offchainsources/ChainlinkSource.sol new file mode 100644 index 00000000..173e7e81 --- /dev/null +++ b/contracts/random/offchainsources/ChainlinkSource.sol @@ -0,0 +1,82 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache 2 +pragma solidity 0.8.19; + +import {AccessControlEnumerable} from "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; +import "chainlink/contracts/src/v0.8/vrf/VRFConsumerBaseV2.sol"; +import "chainlink/contracts/src/v0.8/vrf/interfaces/VRFCoordinatorV2Interface.sol"; +import "../IOffchainRandomSource.sol"; + +/** + * @notice Fetch random numbers from the Chainlink Verifiable Random + * @notice Function (VRF). + * @dev This contract is NOT upgradeable. + */ +contract ChainlinkSource is VRFConsumerBaseV2, AccessControlEnumerable, IOffchainRandomSource { + // The random seed value is not yet available. + error WaitForRandom(); + + event UnexpectedRandomWordsLength(uint256 _length); + + + bytes32 public constant CONFIG_ADMIN_ROLE = keccak256("CONFIG_ADMIN_ROLE"); + + // Immutable zkEVM has instant finality, so a single block confirmation is fine. + uint16 public constant MIN_CONFIRMATIONS = 1; + // We only need one word, and can expand that word in this system of contracts. + uint32 public constant NUM_WORDS = 1; + + VRFCoordinatorV2Interface private immutable vrfCoordinator; + + bytes32 public keyHash; + uint64 public subId; + uint32 public callbackGasLimit; + + mapping (uint256 => bytes32) private randomOutput; + + + constructor(address _roleAdmin, address _configAdmin, address _vrfCoordinator, bytes32 _keyHash, + uint64 _subId, uint32 _callbackGasLimit) VRFConsumerBaseV2(_vrfCoordinator) { + _grantRole(DEFAULT_ADMIN_ROLE, _roleAdmin); + _grantRole(CONFIG_ADMIN_ROLE, _configAdmin); + vrfCoordinator = VRFCoordinatorV2Interface(_vrfCoordinator); + + keyHash = _keyHash; + subId = _subId; + callbackGasLimit = _callbackGasLimit; + } + + function configureRequests(bytes32 _keyHash, uint64 _subId, uint32 _callbackGasLimit) external onlyRole(CONFIG_ADMIN_ROLE) { + keyHash = _keyHash; + subId = _subId; + callbackGasLimit = _callbackGasLimit; + } + + function requestOffchainRandom() external returns(uint256 _requestId) { + return vrfCoordinator.requestRandomWords(keyHash, subId, MIN_CONFIRMATIONS, callbackGasLimit, NUM_WORDS); + } + + + + function fulfillRandomWords(uint256 _requestId, uint256[] memory _randomWords) internal virtual override { + // NOTE: This function call is not allowed to fail. + // Only one word should be returned.... + if (_randomWords.length != 1) { + emit UnexpectedRandomWordsLength(_randomWords.length); + } + else if (_randomWords.length != 1) { + return; + } + + randomOutput[_requestId] = bytes32(_randomWords[0]); + } + + + function getOffchainRandom(uint256 _fulfillmentIndex) external view returns(bytes32 _randomValue) { + bytes32 rand = randomOutput[_fulfillmentIndex]; + if (rand == bytes32(0)) { + revert WaitForRandom(); + } + _randomValue = rand; + } +} \ No newline at end of file diff --git a/lib/chainlink b/lib/chainlink new file mode 160000 index 00000000..3cf93c9f --- /dev/null +++ b/lib/chainlink @@ -0,0 +1 @@ +Subproject commit 3cf93c9f849be99a451ddd77ac203395760302c2 diff --git a/remappings.txt b/remappings.txt index ac39bdab..5e1cb6ff 100644 --- a/remappings.txt +++ b/remappings.txt @@ -4,5 +4,6 @@ solidity-bits/=lib/solidity-bits/ solidity-bytes-utils/=lib/solidity-bytes-utils/ seaport-core/=lib/seaport-core/ seaport-types/=lib/seaport-types/ +chainlink/contracts/=lib/chainlink/contracts/ # seaport/contracts/=lib/seaportsdvdsfsfdsdfdgit/contracts/ diff --git a/test/random/README.md b/test/random/README.md new file mode 100644 index 00000000..6b1d0384 --- /dev/null +++ b/test/random/README.md @@ -0,0 +1,2 @@ +# Test Plan for Random Number Generation + From aa82b49b8af80d42563c905850a315b6b51f450d Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 22 Dec 2023 16:36:17 +1000 Subject: [PATCH 038/100] Initial test plan --- contracts/random/RandomSeedProvider.sol | 196 ++++++++++++------------ contracts/random/RandomValues.sol | 10 +- test/random/README.md | 82 +++++++++- 3 files changed, 181 insertions(+), 107 deletions(-) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 0972d494..683fe328 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -19,25 +19,23 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { // The random seed value is not yet available. error WaitForRandom(); - error UnknownMethodology(); - // The offchain random source has been updated. - event OffchainRandomSourceSet(address _offchainRandomSource); + event OffchainRandomSourceSet(address _offchainRandomSource, uint256 _offchainRequestRateLimit); - // The RanDAO source has been enabled. Note that this source will only be used if - // an offchain random source is not available. + // Indicates that new random values will be generated using the RanDAO source. event RanDaoEnabled(); - enum GenerationMethodology { - TRADITIONAL, - RANDAO, - OFFCHAIN - } - + // Indicates that new random values will be generated using the traditional on-chain source. + event TraditionalEnabled(); // Admin role that can enable RanDAO and offchain random sources. bytes32 public constant RANDOM_ADMIN_ROLE = keccak256("RANDOM_ADMIN_ROLE"); + // Indicates: Generate new random numbers using the traditional on-chain methodology. + address public constant TRADITIONAL = address(0); + // Indicates: Generate new random numbers using the RanDAO methodology. + address public constant RANDAO = address(1); + // When random seeds are requested, a request id is returned. The id // relates to a certain future random seed. This map holds all of the // random seeds that have been produced. @@ -53,11 +51,12 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { uint256 public prevOffchainRandomRequest; uint256 public lastBlockOffchainRequest; + // @notice The source of new random numbers. This could be the special values for + // @notice TRADITIONAL or RANDAO or the address of a Offchain Random Source contract. + // @dev This value is return with the request ids. This allows off-chain random sources + // @dev to be switched without stopping in-flight random values from being retrieved. + address public randomSource; - // Off-chain random source that is used to generate random seeds. - IOffchainRandomSource public offchainRandomSource; - - GenerationMethodology public methodology; /** @@ -76,7 +75,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { randomOutput[0] = keccak256(abi.encodePacked(block.chainid, block.number)); nextRandomIndex = 1; - methodology = GenerationMethodology.TRADITIONAL; + randomSource = TRADITIONAL; } /** @@ -85,85 +84,29 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * @param _offchainRandomSource Address of contract that is an offchain random source. */ function setOffchainRandomSource(address _offchainRandomSource, uint256 _offchainRequestRateLimit) external onlyRole(RANDOM_ADMIN_ROLE) { - offchainRandomSource = IOffchainRandomSource(_offchainRandomSource); + randomSource = _offchainRandomSource; offchainRequestRateLimit = _offchainRequestRateLimit; - methodology = GenerationMethodology.OFFCHAIN; - emit OffchainRandomSourceSet(_offchainRandomSource); + emit OffchainRandomSourceSet(_offchainRandomSource, _offchainRequestRateLimit); } /** - * @notice Enable the RanDAO source. - * @dev If the off-chain source has not been configured, and the consensus - * algorithm supports RanDAO, then let's use it. + * @notice Switch to the RanDAO source. */ function enableRanDao() external onlyRole(RANDOM_ADMIN_ROLE) { - methodology = GenerationMethodology.RANDAO; + randomSource = RANDAO; emit RanDaoEnabled(); } /** - * @notice Generate a random value using on-chain methodologies. + * @notice Switch to the traditional on-chain random source. */ - function generateNextRandom() public { - bytes32 prevRandomOutput = randomOutput[nextRandomIndex - 1]; - bytes32 newRandomOutput; - - if (methodology == GenerationMethodology.TRADITIONAL) { - // Random values for the TRADITIONAL methodology can only be generated once per block. - if (lastBlockRandomGenerated == block.number) { - return; - } - - // Block hash will be different for each block and difficult for game players - // to guess. The block producer could manipulate the block hash by crafting a - // transaction that included a number that the block producer controls. A - // malicious block producer could produce many candidate blocks, in an attempt - // to produce a specific value. - bytes32 blockHash = blockhash(block.number); - - // Timestamp when a block is produced in milli-seconds will be different for each - // block. Game players could estimate the possible values for the timestamp. - // The block producer could manipulate the timestamp by changing the time recorded - // as when the block was produced. The block will be deemed invalid if the value is - // too far from the expected block time. - // slither-disable-next-line timestamp - uint256 timestamp = block.timestamp; - - newRandomOutput = keccak256(abi.encodePacked(prevRandomOutput, blockHash, timestamp)); - } - else if (methodology == GenerationMethodology.RANDAO) { - // Random values for the RANDAO methodology can only be generated once per block. - if (lastBlockRandomGenerated == block.number) { - return; - } - - // PrevRanDAO (previously known as DIFFICULTY) is the output of the RanDAO function - // used as a part of consensus. The value posted is the value revealed in the previous - // block, not in this block. In this way, all parties know the value prior to it being - // useable by applications. - // - // The RanDAO value can be influenced by a block producer deciding to produce or - // not produce a block. This limits the block producer's influence to one of two - // values. - // - // Prior to the BFT fork (expected in the first half of 2024), this value will - // be a predictable value related to the block number. - uint256 prevRanDAO = block.prevrandao; - - newRandomOutput = keccak256(abi.encodePacked(prevRandomOutput, prevRanDAO)); - } - else if (methodology == GenerationMethodology.OFFCHAIN) { - // Nothing to do here. - } - else { - revert UnknownMethodology(); - } - - randomOutput[nextRandomIndex++] = newRandomOutput; - lastBlockRandomGenerated = block.number; + function enableTraditional() external onlyRole(RANDOM_ADMIN_ROLE) { + randomSource = TRADITIONAL; + emit TraditionalEnabled(); } + /** * @notice Request the index number to track when a random number will be produced. * @dev Note that the same _randomFulfillmentIndex will be returned to multiple games and even within @@ -171,17 +114,16 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * and to the game player's request. * @return _randomFulfillmentIndex The index for the game contract to present to fetch the next random value. */ - function requestRandomSeed() external returns(uint256 _randomFulfillmentIndex, GenerationMethodology _method) { - if (methodology == GenerationMethodology.TRADITIONAL || methodology == GenerationMethodology.RANDAO) { + function requestRandomSeed() external returns(uint256 _randomFulfillmentIndex, address _randomSource) { + if (randomSource == TRADITIONAL || randomSource == RANDAO) { // Generate a value for this block, just in case there are historical requests // to be fulfilled in transactions later in this block. generateNextRandom(); // Indicate that a value based on the next block will be fine. _randomFulfillmentIndex = nextRandomIndex + 1; - _method = methodology; } - else if (methodology == GenerationMethodology.OFFCHAIN) { + else { // Limit how often offchain random numbers are requested. If // offchainRequestRateLimit is 1, then a maximum of one request // per block is generated. If it 2, then a maximum of one request @@ -192,15 +134,12 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { _randomFulfillmentIndex = prevOffchainRandomRequest; } else { - _randomFulfillmentIndex = offchainRandomSource.requestOffchainRandom(); + _randomFulfillmentIndex = IOffchainRandomSource(randomSource).requestOffchainRandom(); prevOffchainRandomRequest = _randomFulfillmentIndex; lastBlockOffchainRequest = block.number; } - _method = GenerationMethodology.OFFCHAIN; - } - else { - revert UnknownMethodology(); } + _randomSource = randomSource; } @@ -211,19 +150,16 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * and to the game player's request. * @return _randomSeed The value from with random values can be derived. */ - function getRandomSeed(uint256 _randomFulfillmentIndex, GenerationMethodology _method) external returns (bytes32 _randomSeed) { - if (_method == GenerationMethodology.TRADITIONAL || _method == GenerationMethodology.RANDAO) { + function getRandomSeed(uint256 _randomFulfillmentIndex, address _randomSource) external returns (bytes32 _randomSeed) { + if (_randomSource == TRADITIONAL || _randomSource == RANDAO) { generateNextRandom(); if (_randomFulfillmentIndex < nextRandomIndex) { revert WaitForRandom(); } return randomOutput[_randomFulfillmentIndex]; } - else if (_method == GenerationMethodology.OFFCHAIN) { - return offchainRandomSource.getOffchainRandom(_randomFulfillmentIndex); - } else { - revert UnknownMethodology(); + return IOffchainRandomSource(randomSource).getOffchainRandom(_randomFulfillmentIndex); } } @@ -231,8 +167,8 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * @notice Check whether a random seed is ready. * @param _randomFulfillmentIndex Index when random seed will be ready. */ - function randomSeedIsReady(uint256 _randomFulfillmentIndex, GenerationMethodology _method) external view returns (bool) { - if (_method == GenerationMethodology.TRADITIONAL || _method == GenerationMethodology.RANDAO) { + function randomSeedIsReady(uint256 _randomFulfillmentIndex, address _randomSource) external view returns (bool) { + if (_randomSource == TRADITIONAL || _randomSource == RANDAO) { if (lastBlockRandomGenerated == block.number) { return _randomFulfillmentIndex <= nextRandomIndex; } @@ -240,15 +176,73 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { return _randomFulfillmentIndex <= nextRandomIndex+1; } } - else if (_method == GenerationMethodology.OFFCHAIN) { - return bytes32(0x00) != offchainRandomSource.getOffchainRandom(_randomFulfillmentIndex); + else { + return bytes32(0x00) != IOffchainRandomSource(randomSource).getOffchainRandom(_randomFulfillmentIndex); + } + } + + + /** + * @notice Generate a random value using on-chain methodologies. + */ + function _generateNextRandom() private { + bytes32 prevRandomOutput = randomOutput[nextRandomIndex - 1]; + bytes32 newRandomOutput; + + if (randomSource == TRADITIONAL) { + // Random values for the TRADITIONAL methodology can only be generated once per block. + if (lastBlockRandomGenerated == block.number) { + return; + } + + // Block hash will be different for each block and difficult for game players + // to guess. The block producer could manipulate the block hash by crafting a + // transaction that included a number that the block producer controls. A + // malicious block producer could produce many candidate blocks, in an attempt + // to produce a specific value. + bytes32 blockHash = blockhash(block.number); + + // Timestamp when a block is produced in milli-seconds will be different for each + // block. Game players could estimate the possible values for the timestamp. + // The block producer could manipulate the timestamp by changing the time recorded + // as when the block was produced. The block will be deemed invalid if the value is + // too far from the expected block time. + // slither-disable-next-line timestamp + uint256 timestamp = block.timestamp; + + newRandomOutput = keccak256(abi.encodePacked(prevRandomOutput, blockHash, timestamp)); + } + else if (randomSource == RANDAO) { + // Random values for the RANDAO methodology can only be generated once per block. + if (lastBlockRandomGenerated == block.number) { + return; + } + + // PrevRanDAO (previously known as DIFFICULTY) is the output of the RanDAO function + // used as a part of consensus. The value posted is the value revealed in the previous + // block, not in this block. In this way, all parties know the value prior to it being + // useable by applications. + // + // The RanDAO value can be influenced by a block producer deciding to produce or + // not produce a block. This limits the block producer's influence to one of two + // values. + // + // Prior to the BFT fork (expected in the first half of 2024), this value will + // be a predictable value related to the block number. + uint256 prevRanDAO = block.prevrandao; + + newRandomOutput = keccak256(abi.encodePacked(prevRandomOutput, prevRanDAO)); } else { - revert UnknownMethodology(); + // Nothing to do here. } + + randomOutput[nextRandomIndex++] = newRandomOutput; + lastBlockRandomGenerated = block.number; } + // slither-disable-next-line unused-state,naming-convention uint256[100] private __gapRandomSeedProvider; } \ No newline at end of file diff --git a/contracts/random/RandomValues.sol b/contracts/random/RandomValues.sol index 4d8ea4f4..99afdf98 100644 --- a/contracts/random/RandomValues.sol +++ b/contracts/random/RandomValues.sol @@ -12,7 +12,7 @@ abstract contract RandomValues { RandomSeedProvider public immutable randomSeedProvider; mapping (uint256 => uint256) private randCreationRequests; - mapping (uint256 => RandomSeedProvider.GenerationMethodology) private randCreationRequestsMethod; + mapping (uint256 => address) private randCreationRequestsSource; uint256 private nextNonce; @@ -28,11 +28,11 @@ abstract contract RandomValues { */ function _requestRandomValueCreation() internal returns (uint256 _randomRequestId) { uint256 randomFulfillmentIndex; - RandomSeedProvider.GenerationMethodology method; - (randomFulfillmentIndex, method) = randomSeedProvider.requestRandomSeed(); + address randomSource; + (randomFulfillmentIndex, randomSource) = randomSeedProvider.requestRandomSeed(); _randomRequestId = nextNonce++; randCreationRequests[_randomRequestId] = randomFulfillmentIndex; - randCreationRequestsMethod[_randomRequestId] = method; + randCreationRequestsSource[_randomRequestId] = randomSource; } @@ -46,7 +46,7 @@ abstract contract RandomValues { function _fetchRandom(uint256 _randomRequestId) internal returns(bytes32 _randomValue) { // Request the random seed. If not enough time has elapsed yet, this call will revert. bytes32 randomSeed = randomSeedProvider.getRandomSeed( - randCreationRequests[_randomRequestId], randCreationRequestsMethod[_randomRequestId]); + randCreationRequests[_randomRequestId], randCreationRequestsSource[_randomRequestId]); // Generate the random value by combining: // address(this): personalises the random seed to this game. // msg.sender: personalises the random seed to the game player. diff --git a/test/random/README.md b/test/random/README.md index 6b1d0384..e665b10c 100644 --- a/test/random/README.md +++ b/test/random/README.md @@ -1,2 +1,82 @@ -# Test Plan for Random Number Generation +# Test Plan for Random Number Generation contracts +## RandomSeedProvider.sol +This section defines tests for contracts/random/RandomSeedProvider.sol. +All of these tests are in test/random/RandomSeedProvider.t.sol. + +Initialize testing: + +| Test name |Description | Happy Case | Implemented | +|---------------------------------| --------------------------------------------------|------------|-------------| +| testInit | Check that deployment + initialize work. | Yes | No | +| testGetRandomSeedInitTraditional | getRandomSeed(), initial value, method TRADITIONAL | Yes | No | +| testGetRandomSeedInitRandao | getRandomSeed(), initial value, method RANDAO | Yes | No | +| testGetRandomSeedNotGenTraditional | getRandomSeed(), when value not generated | No | No | +| testGetRandomSeedNotGenRandao | getRandomSeed(), when value not generated | No | No | +| testGetRandomSeedNoOffchainSource | getRandomSeed(), when no offchain source configured | No | No | + +Control functions tests: + +| Test name |Description | Happy Case | Implemented | +|---------------------------------| --------------------------------------------------|------------|-------------| +| testRoleAdmin | Check DEFAULT_ADMIN_ROLE can assign new roles. | Yes | No | +| testRoleAdminBadAuth | Check auth for create new admins. | No | No | +| testSetOffchainRandomSource | setOffchainRandomSource(). | Yes | No | +| testSetOffchainRandomSourceBadAuth | setOffchainRandomSource() without authorization. | No | No | +| testEnableRanDao | enableRanDao(). | Yes | No | +| testEnableRanDaoBadAuth | enableRanDao() without authorization. | No | No | +| testEnableTraditional | enableTraditional(). | Yes | No | +| testEnableTraditionalBadAuth | enableTraditional() without authorization. | No | No | + +Operational functions tests: + +| Test name |Description | Happy Case | Implemented | +|---------------------------------| --------------------------------------------------|------------|-------------| +| testTradNextBlock | Check request id is for next block | Yes | No | +| testRanDaoNextBlock | Check request id is for next block | Yes | No | +| testTradTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | No | +| testRanDaoTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | No | +| testOffchainTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | No | +| testTradDelayedFulfillment | Request then wait several blocks before fulfillment | Yes | No | +| testRanDaoDelayedFulfillment | Request then wait several blocks before fulfillment | Yes | No | +| testOffchainRateLimit | Check can limit requests to once every N blocks | Yes | No | + +Scenario: Generate some random numbers, switch random generation methodology, generate some more +numbers, check that the numbers generated earlier are still available: + +| Test name |Description | Happy Case | Implemented | +|---------------------------------| --------------------------------------------------|------------|-------------| +| testSwitchTraditionalRandao | Traditional -> RanDAO. | Yes | No | +| testSwitchTraditionalOffchain | Traditional -> Off-chain. | Yes | No | +| testSwitchRandaoOffchain | RanDAO -> Traditional. | Yes | No | +| testSwitchRandaoOffchain | RanDAO -> Off-chain. | Yes | No | +| testSwitchOffchainTraditional | Off-chain -> Traditional. | Yes | No | +| testSwitchOffchainRandao | Off-chain -> RanDAO | Yes | No | +| testSwitchOffchainOffchain | Off-chain to another off-chain source. | Yes | No | + + + +## ChainlinkSource.sol +This section defines tests for contracts/random/ChainlinkSource.sol. +All of these tests are in test/random/ChainlinkSource.t.sol. + +Initialize testing: + +| Test name |Description | Happy Case | Implemented | +|---------------------------------| --------------------------------------------------|------------|-------------| +| testInit | Check that deployment works. | Yes | No | +| TODO | TODO | Yes | No | + +Control functions tests: + +| Test name |Description | Happy Case | Implemented | +|---------------------------------| --------------------------------------------------|------------|-------------| +| testRoleAdmin | Check DEFAULT_ADMIN_ROLE can assign new roles. | Yes | No | +| testRoleAdminBadAuth | Check auth for create new admins. | No | No | +| TODO | TODO | Yes | No | + +Operational functions tests: + +| Test name |Description | Happy Case | Implemented | +|---------------------------------| --------------------------------------------------|------------|-------------| +| TODO | TODO | Yes | No | From 2034b99566e61ca26c018c381e8f9ee82fb81f87 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 10 Jan 2024 15:28:58 +1000 Subject: [PATCH 039/100] Revised documentation. Added allow listing --- .gitmodules | 12 ++-- contracts/random/README.md | 23 ++++---- contracts/random/RandomSeedProvider.sol | 23 ++++---- contracts/random/RandomValues.sol | 53 ++++++++++++++++-- ...kSource.sol => ChainlinkSourceAdaptor.sol} | 7 +-- contracts/random/random-architecture.png | Bin 92685 -> 81262 bytes contracts/random/random-sequence.png | Bin 332531 -> 400868 bytes foundry.toml | 3 +- lib/openzeppelin-contracts | 1 - lib/openzeppelin-contracts-4.9.3 | 1 + lib/openzeppelin-contracts-upgradeable | 1 - lib/openzeppelin-contracts-upgradeable-4.9.3 | 1 + lib/seaport | 1 + remappings.txt | 11 ++-- 14 files changed, 92 insertions(+), 45 deletions(-) rename contracts/random/offchainsources/{ChainlinkSource.sol => ChainlinkSourceAdaptor.sol} (94%) delete mode 160000 lib/openzeppelin-contracts create mode 160000 lib/openzeppelin-contracts-4.9.3 delete mode 160000 lib/openzeppelin-contracts-upgradeable create mode 160000 lib/openzeppelin-contracts-upgradeable-4.9.3 create mode 160000 lib/seaport diff --git a/.gitmodules b/.gitmodules index be5a7928..6c8fed5c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,6 @@ [submodule "lib/forge-std"] path = lib/forge-std url = https://github.com/foundry-rs/forge-std -[submodule "lib/openzeppelin-contracts-upgradeable"] - path = lib/openzeppelin-contracts-upgradeable - url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable -[submodule "lib/openzeppelin-contracts"] - path = lib/openzeppelin-contracts - url = https://github.com/OpenZeppelin/openzeppelin-contracts [submodule "lib/seaport"] path = lib/seaport url = https://github.com/immutable/seaport @@ -25,3 +19,9 @@ [submodule "lib/chainlink"] path = lib/chainlink url = https://github.com/smartcontractkit/chainlink +[submodule "lib/openzeppelin-contracts-4.9.3"] + path = lib/openzeppelin-contracts-4.9.3 + url = https://github.com/OpenZeppelin/openzeppelin-contracts +[submodule "lib/openzeppelin-contracts-upgradeable-4.9.3"] + path = lib/openzeppelin-contracts-upgradeable-4.9.3 + url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable diff --git a/contracts/random/README.md b/contracts/random/README.md index 7def6645..0ff5297c 100644 --- a/contracts/random/README.md +++ b/contracts/random/README.md @@ -8,15 +8,16 @@ The Random Number Generation system on the immutable platform is shown in the di ![Random number genration](./random-architecture.png) -Game contracts extend ```RandomValues.sol```. This contract interacts with the ```RandomManager.sol``` contract to request and retreive random numbers. +Game contracts extend ```RandomValues.sol```. This contract interacts with the ```RandomSeedProvider.sol``` contract to request and retreive random seed values. -There is one ```RandomManager.sol``` contract deployed per chain. Each game has its own instance of ```RandomValues.sol``` as this contract is integrated directly into the game contract. +There is one ```RandomSeedProvider.sol``` contract deployed per chain. Each game has its own instance of ```RandomValues.sol``` as this contract is integrated directly into the game contract. -The ```RandomManager.sol``` operates behind a transparent proxy, ```TransparentUpgradeProxy.sol``` that is controlled by ```ProxyAdmin.sol```. Using an upgradeable pattern allows the random manager contract to be upgraded to extend its feature set and resolve issues. +The ```RandomSeedProvider.sol``` operates behind a transparent proxy, ```TransparentUpgradeProxy.sol``` that is controlled by ```ProxyAdmin.sol```. Using an upgradeable pattern allows the random manager contract to be upgraded to extend its feature set and resolve issues. -The ```RandomManager.sol``` contract can be configured to use an off-chain random number source. This source is accessed via the ```IOffchainRandomSource.sol``` interface. To allow the flexibility to switch off-chain random sources, there is an adaptor contract between the offchain random source contract and the random manager. +The ```RandomSeedProvider.sol``` contract can be configured to use an off-chain random number source. This source is accessed via the ```IOffchainRandomSource.sol``` interface. To allow the flexibility to switch between off-chain random sources, there is an adaptor contract between the offchain random source contract and the random seed provider. + +The architecture diagram shows a ChainLink VRF source and a Supra VRF source. This is purely to show the possibility of integrating with one off-chain service and then, at a later point choosing to switch to an alternative off-chain source. At present, there is no agreement to use any specific off-chain source. -Initially, no offchain random source will be used. As such, the ```RandomSourceAdaptor.sol``` contract has not been implemented at this time. ## Process of Requesting a Random Number @@ -27,12 +28,10 @@ The process for requesting a random number is shown below. Players do actions re The steps are: -* The game contract calls ```requestRandomValueCreation```, passing in a security level. Values of 1 or 2 are OK for small value random numbers, and higher values such as 3 or 4 are better for high value random numbers. The security level relates to how many blocks must pass or off-chain random numbers need to be submitted prior to returning the random value. -* The ```requestRandomValueCreation``` returns a value ```_randomRequestId```. This value is supplied later to fetch the random value once it has been generated. - -* TODO should have a "is it ready step" in the sequence. - -* The game contract calls ```fetchRandom```, passing in the ```_randomRequestId```. The random seed is returned to the RandomValue.sol, which then customises the value prior returning it to the game. +* The game contract calls ```_requestRandomValueCreation```. +The ```_requestRandomValueCreation``` returns a value ```_randomRequestId```. This value is supplied later to fetch the random value once it has been generated. The function ```_requestRandomValueCreation``` executes a call to the ```RandomSeedProvider``` contract requesting a seed value be produced. +* The game contract calls ```_isRandomValueReady```, passing in the ```_randomRequestId```. The returns ```true``` if the value is ready to be returned. +* The game contract calls ```_fetchRandom```, passing in the ```_randomRequestId```. The random seed is returned to the RandomValue.sol, which then customises the value prior returning it to the game. -Diagram source here: https://sequencediagram.org/index.html#initialData=C4S2BsFMAICUEMB2ATA9gW2gOQK7oEaQBO0A4pIsfKKogFB0AO8RoAxiM4sNAESnx0kAHQBnVOF7R4osoMhMW7Tkh68EKDADV44HCPGTps2FsWsQHLmo1p0AWSTwA5sTESpMuPYbOiqHEZoAAVweABPYmhGHCI2AAsZSFl4aCIkO2k2GnoBIQBaAD5TAC40yABHfVFgW21dfQBhIkhqEFoACgAdRBwQbgAmAFYANmgAfVFINliwcIAZSAA3SHAASjpTIth7Mpaq5NqMjG7e-uBhscnp2eAF5dWN0wAefPydsvH0zXRYSurgABJZB0PKQV7vLSfb52P4HGrAugUEF0RCoYAwVArEhggA0HwA6vAwNAAGaoEipfDgVBsADW0GAqGghGi-mQODYkGQ0Ap0kQvNJpPyCWJAphGEZzNZyFWIGx3OEvn8gTkQmgsvA8uIsgA9OUVrpZBLMPBsu1cvJtlCyZBgAk6uhTn1BqMJia4QDgU8tNtdtBXEcfgBlSDc53nS7u46-f6Hb2bLQQj7RkNhkFbYo24I62i6EBTNIx6C9AhRHpMgPyXHRMKRIg1jLleHAHqlwhEJVg5M2r4xnR6BTIhgjuhAA \ No newline at end of file +Diagram source here: https://sequencediagram.org/index.html#initialData=title%20Random%20Number%20Generation%0A%0Aparticipant%20%22Game.sol%22%20as%20Game%0Aparticipant%20%22RandomValue.sol%22%20as%20RV%0Aparticipant%20%22RandomSeedProvider.sol%22%20as%20RM%0A%0Agroup%20Player%20purchases%20a%20random%20action%0AGame-%3ERV%3A%20_requestRandomValueCreation()%0ARV-%3ERM%3A%20requestRandomSeed()%0ARV%3C--RM%3A%20_seedRequestId%2C%20_source%0AGame%3C--RV%3A%20_randomRequestId%0Aend%0A%0Anote%20over%20Game%2CRM%3AWait%20for%20a%20block%20to%20be%20produced%20or%20an%20off-chain%20random%20to%20be%20delivered.%0A%0Agroup%20Check%20random%20value%20is%20ready%0AGame-%3ERV%3A%20isRandomValueReady(_randomRequestId)%0ARV-%3ERM%3A%20isRandomSeedReady(%5Cn_seedRequestId%2C%20_source)%0ARV%3C--RM%3A%20true%0AGame%3C--RV%3A%20true%0Aend%0A%0Agroup%20Game%20delivers%20%2F%20reveals%20random%20action%0AGame-%3ERV%3A%20fetchRandom(_randomRequestId)%0ARV-%3ERM%3A%20getRandomSeed(%5Cn_seedRequestId%2C%20_source)%0ARV%3C--RM%3A%20_randomSeed%0ARV-%3ERV%3A%20Personalise%20random%20number%20%5Cnby%20game%2C%20player%2C%20and%20request%5Cnnumber.%0AGame%3C--RV%3A%20_randomValue%0Aend%0A%0A%0A%0A%0A%0A \ No newline at end of file diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 683fe328..6f3caa1d 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache 2 pragma solidity 0.8.19; -import {AccessControlEnumerableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol"; +import {AccessControlEnumerableUpgradeable} from "openzeppelin-contracts-upgradeable-4.9.3/access/AccessControlEnumerableUpgradeable.sol"; import {IOffchainRandomSource} from "./IOffchainRandomSource.sol"; @@ -57,6 +57,8 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { // @dev to be switched without stopping in-flight random values from being retrieved. address public randomSource; + // TODO add functions to modify this. + mapping (address => bool) public approvedForOffchainRandom; /** @@ -115,19 +117,18 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * @return _randomFulfillmentIndex The index for the game contract to present to fetch the next random value. */ function requestRandomSeed() external returns(uint256 _randomFulfillmentIndex, address _randomSource) { - if (randomSource == TRADITIONAL || randomSource == RANDAO) { + if (randomSource == TRADITIONAL || randomSource == RANDAO || !approvedForOffchainRandom[msg.sender]) { // Generate a value for this block, just in case there are historical requests // to be fulfilled in transactions later in this block. - generateNextRandom(); + _generateNextRandom(); // Indicate that a value based on the next block will be fine. _randomFulfillmentIndex = nextRandomIndex + 1; } else { - // Limit how often offchain random numbers are requested. If - // offchainRequestRateLimit is 1, then a maximum of one request - // per block is generated. If it 2, then a maximum of one request - // every two blocks is generated. + // Limit how often offchain random numbers are requested. If offchainRequestRateLimit is 1, then a + // maximum of one request per block is generated. If it 2, then a maximum of one request every two + // blocks is generated. uint256 offchainRequestRateLimitCached = offchainRequestRateLimit; uint256 blockNumberRateLimited = (block.number / offchainRequestRateLimitCached) * offchainRequestRateLimitCached; if (lastBlockOffchainRequest == blockNumberRateLimited) { @@ -152,7 +153,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { */ function getRandomSeed(uint256 _randomFulfillmentIndex, address _randomSource) external returns (bytes32 _randomSeed) { if (_randomSource == TRADITIONAL || _randomSource == RANDAO) { - generateNextRandom(); + _generateNextRandom(); if (_randomFulfillmentIndex < nextRandomIndex) { revert WaitForRandom(); } @@ -167,7 +168,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * @notice Check whether a random seed is ready. * @param _randomFulfillmentIndex Index when random seed will be ready. */ - function randomSeedIsReady(uint256 _randomFulfillmentIndex, address _randomSource) external view returns (bool) { + function isRandomSeedReady(uint256 _randomFulfillmentIndex, address _randomSource) external view returns (bool) { if (_randomSource == TRADITIONAL || _randomSource == RANDAO) { if (lastBlockRandomGenerated == block.number) { return _randomFulfillmentIndex <= nextRandomIndex; @@ -195,11 +196,13 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { return; } - // Block hash will be different for each block and difficult for game players + // Block hash will be different for each block and ---- easy ---- difficult for game players // to guess. The block producer could manipulate the block hash by crafting a // transaction that included a number that the block producer controls. A // malicious block producer could produce many candidate blocks, in an attempt // to produce a specific value. + + // TODO this will crash - can't get blockhash of this block. bytes32 blockHash = blockhash(block.number); // Timestamp when a block is produced in milli-seconds will be different for each diff --git a/contracts/random/RandomValues.sol b/contracts/random/RandomValues.sol index 99afdf98..f17ef347 100644 --- a/contracts/random/RandomValues.sol +++ b/contracts/random/RandomValues.sol @@ -6,23 +6,37 @@ import {RandomSeedProvider} from "./RandomSeedProvider.sol"; /** * @notice Game contracts that need random numbers should extend this contract. - * @dev This variant of the contract has been used with UPGRADEABLE or NON-UNGRADEABLE contracts. + * @dev This contract can be used with UPGRADEABLE or NON-UNGRADEABLE contracts. */ abstract contract RandomValues { + // Address of random seed provider contract. + // This value "immutable", and hence patched directly into bytecode when it is used. + // There will only ever be one random seed provider per chain. Hence, this value + // does not need to be changed. RandomSeedProvider public immutable randomSeedProvider; + // Map of request id to fulfilment id. mapping (uint256 => uint256) private randCreationRequests; + // Map of request id to random source. Retaining the source allows for upgrade + // of sources inside the random seed provider contract. mapping (uint256 => address) private randCreationRequestsSource; + // Each request has a unique request id. The id is the current value + // of nextNonce. nextNonce is incremented for each request. uint256 private nextNonce; + + /** + * @notice Set the address of the random seed provider. + * @param _randomSeedProvider Address of random seed provider. + */ constructor(address _randomSeedProvider) { randomSeedProvider = RandomSeedProvider(_randomSeedProvider); } /** * @notice Register a request to generate a random value. This function should be called - * when a game player has purchased an item that has a random value. + * when a game player has purchased an item the value of which is based on a random value. * @return _randomRequestId A value that needs to be presented when fetching the random * value with fetchRandom. */ @@ -37,11 +51,12 @@ abstract contract RandomValues { /** - * @notice Fetch a random value that was requested using requestRandomValueCreation. + * @notice Fetch a random value that was requested using _requestRandomValueCreation. * @dev The value is customised to this game, the game player, and the request by the game player. * This level of personalisation ensures that no two players end up with the same random value * and no game player will have the same random value twice. - * @return _randomValue The index for the game contract to present to fetch the next random value. + * @param _randomRequestId The value returned by _requestRandomValueCreation. + * @return _randomValue The random number that the game can use. */ function _fetchRandom(uint256 _randomRequestId) internal returns(bytes32 _randomValue) { // Request the random seed. If not enough time has elapsed yet, this call will revert. @@ -56,6 +71,36 @@ abstract contract RandomValues { _randomValue = keccak256(abi.encodePacked(address(this), msg.sender, _randomRequestId, randomSeed)); } + /** + * @notice Fetch a set of random values that were requested using _requestRandomValueCreation. + * @dev The values are customised to this game, the game player, and the request by the game player. + * This level of personalisation ensures that no two players end up with the same random value + * and no game player will have the same random value twice. + * @param _randomRequestId The value returned by _requestRandomValueCreation. + * @param _size The size of the array to return. + * @return _randomValues An array of random values derived from a single random value. + */ + function _fetchRandomValues(uint256 _randomRequestId, uint256 _size) internal returns(bytes32[] memory _randomValues) { + bytes32 randomValue = _fetchRandom(_randomRequestId); + + _randomValues = new bytes32[](_size); + for (uint256 i = 0; i < _size; i++) { + _randomValues[i] = keccak256(abi.encodePacked(randomValue, i)); + } + } + + /** + * @notice Check whether a random value is ready. + * @dev If this function returns true then it is safe to call _fetchRandom or _fetchRandomValues. + * @param _randomRequestId The value returned by _requestRandomValueCreation. + * @return True when the random value is ready to be retrieved. + */ + function _isRandomValueReady(uint256 _randomRequestId) internal view returns(bool) { + return randomSeedProvider.isRandomSeedReady( + randCreationRequests[_randomRequestId], randCreationRequestsSource[_randomRequestId]); + } + + // slither-disable-next-line unused-state,naming-convention uint256[100] private __gapRandomValues; } \ No newline at end of file diff --git a/contracts/random/offchainsources/ChainlinkSource.sol b/contracts/random/offchainsources/ChainlinkSourceAdaptor.sol similarity index 94% rename from contracts/random/offchainsources/ChainlinkSource.sol rename to contracts/random/offchainsources/ChainlinkSourceAdaptor.sol index 173e7e81..69c269bc 100644 --- a/contracts/random/offchainsources/ChainlinkSource.sol +++ b/contracts/random/offchainsources/ChainlinkSourceAdaptor.sol @@ -12,7 +12,7 @@ import "../IOffchainRandomSource.sol"; * @notice Function (VRF). * @dev This contract is NOT upgradeable. */ -contract ChainlinkSource is VRFConsumerBaseV2, AccessControlEnumerable, IOffchainRandomSource { +contract ChainlinkSourceAdaptor is VRFConsumerBaseV2, AccessControlEnumerable, IOffchainRandomSource { // The random seed value is not yet available. error WaitForRandom(); @@ -57,16 +57,13 @@ contract ChainlinkSource is VRFConsumerBaseV2, AccessControlEnumerable, IOffchai } - +// Call back function fulfillRandomWords(uint256 _requestId, uint256[] memory _randomWords) internal virtual override { // NOTE: This function call is not allowed to fail. // Only one word should be returned.... if (_randomWords.length != 1) { emit UnexpectedRandomWordsLength(_randomWords.length); } - else if (_randomWords.length != 1) { - return; - } randomOutput[_requestId] = bytes32(_randomWords[0]); } diff --git a/contracts/random/random-architecture.png b/contracts/random/random-architecture.png index 7d88fd1dc1855e824e1bdb86cc49f674670f7e7d..ade4d401e9948c3cd5efb4c492c02e280aa445c2 100644 GIT binary patch literal 81262 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ž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�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 diff --git a/foundry.toml b/foundry.toml index 1c80798e..9c682eb7 100644 --- a/foundry.toml +++ b/foundry.toml @@ -1,7 +1,8 @@ [profile.default] src = 'contracts' out = 'foundry-out' -libs = ["lib", "node_modules"] +# libs = ["lib", "node_modules"] +libs = ["lib"] # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options diff --git a/lib/openzeppelin-contracts b/lib/openzeppelin-contracts deleted file mode 160000 index bd325d56..00000000 --- a/lib/openzeppelin-contracts +++ /dev/null @@ -1 +0,0 @@ -Subproject commit bd325d56b4c62c9c5c1aff048c37c6bb18ac0290 diff --git a/lib/openzeppelin-contracts-4.9.3 b/lib/openzeppelin-contracts-4.9.3 new file mode 160000 index 00000000..fd81a96f --- /dev/null +++ b/lib/openzeppelin-contracts-4.9.3 @@ -0,0 +1 @@ +Subproject commit fd81a96f01cc42ef1c9a5399364968d0e07e9e90 diff --git a/lib/openzeppelin-contracts-upgradeable b/lib/openzeppelin-contracts-upgradeable deleted file mode 160000 index a40cb0bd..00000000 --- a/lib/openzeppelin-contracts-upgradeable +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a40cb0bda838c2ef3dfc252c179f5c37c32e80c4 diff --git a/lib/openzeppelin-contracts-upgradeable-4.9.3 b/lib/openzeppelin-contracts-upgradeable-4.9.3 new file mode 160000 index 00000000..3d4c0d57 --- /dev/null +++ b/lib/openzeppelin-contracts-upgradeable-4.9.3 @@ -0,0 +1 @@ +Subproject commit 3d4c0d5741b131c231e558d7a6213392ab3672a5 diff --git a/lib/seaport b/lib/seaport new file mode 160000 index 00000000..ae061dc0 --- /dev/null +++ b/lib/seaport @@ -0,0 +1 @@ +Subproject commit ae061dc008105dd8d05937df9ad9a676f878cbf9 diff --git a/remappings.txt b/remappings.txt index 5e1cb6ff..612a34ea 100644 --- a/remappings.txt +++ b/remappings.txt @@ -1,9 +1,10 @@ -@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/ -@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/ +@openzeppelin/contracts/=lib/openzeppelin-contracts-4.9.3/contracts/ +openzeppelin-contracts-4.9.3/=lib/openzeppelin-contracts-4.9.3/contracts/ +openzeppelin-contracts-upgradeable-4.9.3/=lib/openzeppelin-contracts-upgradeable-4.9.3/contracts/ + solidity-bits/=lib/solidity-bits/ solidity-bytes-utils/=lib/solidity-bytes-utils/ +chainlink/contracts/=lib/chainlink/contracts/ seaport-core/=lib/seaport-core/ seaport-types/=lib/seaport-types/ -chainlink/contracts/=lib/chainlink/contracts/ - -# seaport/contracts/=lib/seaportsdvdsfsfdsdfdgit/contracts/ +seaport/contracts/=lib/seaport/contracts/ From b245fd7ddc04a1ff18172087bd01368d43259c1b Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 10 Jan 2024 17:01:12 +1000 Subject: [PATCH 040/100] Initial tests --- contracts/random/IOffchainRandomSource.sol | 8 +- contracts/random/RandomSeedProvider.sol | 3 +- contracts/random/RandomValues.sol | 2 +- .../ChainlinkSourceAdaptor.sol | 8 +- test/random/README.md | 3 +- test/random/RandomSeedProvider.t.sol | 75 +++++++++++++++++++ 6 files changed, 92 insertions(+), 7 deletions(-) create mode 100644 test/random/RandomSeedProvider.t.sol diff --git a/contracts/random/IOffchainRandomSource.sol b/contracts/random/IOffchainRandomSource.sol index 2d063bf8..4d859f1e 100644 --- a/contracts/random/IOffchainRandomSource.sol +++ b/contracts/random/IOffchainRandomSource.sol @@ -7,8 +7,10 @@ pragma solidity 0.8.19; * @notice Off-chain random source adaptors must implement this interface. */ interface IOffchainRandomSource { - - function requestOffchainRandom() external returns(uint256 _fulfillmentIndex); + // The random seed value is not yet available. + error WaitForRandom(); + + function requestOffchainRandom() external returns(uint256 _fulfilmentIndex); /** * @notice Fetch the latest off-chain generated random value. @@ -16,4 +18,6 @@ interface IOffchainRandomSource { * @return _randomValue The value generated off-chain. */ function getOffchainRandom(uint256 _fulfillmentIndex) external view returns(bytes32 _randomValue); + + function isOffchainRandomReady(uint256 _fulfillmentIndex) external view returns(bool); } \ No newline at end of file diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 6f3caa1d..01183a83 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -76,6 +76,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { // all random numbers are personalised to this chain. randomOutput[0] = keccak256(abi.encodePacked(block.chainid, block.number)); nextRandomIndex = 1; + lastBlockRandomGenerated = block.number; randomSource = TRADITIONAL; } @@ -178,7 +179,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { } } else { - return bytes32(0x00) != IOffchainRandomSource(randomSource).getOffchainRandom(_randomFulfillmentIndex); + return IOffchainRandomSource(randomSource).isOffchainRandomReady(_randomFulfillmentIndex); } } diff --git a/contracts/random/RandomValues.sol b/contracts/random/RandomValues.sol index f17ef347..27000794 100644 --- a/contracts/random/RandomValues.sol +++ b/contracts/random/RandomValues.sol @@ -15,7 +15,7 @@ abstract contract RandomValues { // does not need to be changed. RandomSeedProvider public immutable randomSeedProvider; - // Map of request id to fulfilment id. + // Map of request id to fulfillment id. mapping (uint256 => uint256) private randCreationRequests; // Map of request id to random source. Retaining the source allows for upgrade // of sources inside the random seed provider contract. diff --git a/contracts/random/offchainsources/ChainlinkSourceAdaptor.sol b/contracts/random/offchainsources/ChainlinkSourceAdaptor.sol index 69c269bc..67aa8acc 100644 --- a/contracts/random/offchainsources/ChainlinkSourceAdaptor.sol +++ b/contracts/random/offchainsources/ChainlinkSourceAdaptor.sol @@ -13,8 +13,7 @@ import "../IOffchainRandomSource.sol"; * @dev This contract is NOT upgradeable. */ contract ChainlinkSourceAdaptor is VRFConsumerBaseV2, AccessControlEnumerable, IOffchainRandomSource { - // The random seed value is not yet available. - error WaitForRandom(); + event UnexpectedRandomWordsLength(uint256 _length); @@ -76,4 +75,9 @@ contract ChainlinkSourceAdaptor is VRFConsumerBaseV2, AccessControlEnumerable, I } _randomValue = rand; } + + function isOffchainRandomReady(uint256 _fulfillmentIndex) external view returns(bool) { + return randomOutput[_fulfillmentIndex] != bytes32(0); + } + } \ No newline at end of file diff --git a/test/random/README.md b/test/random/README.md index e665b10c..81543dd6 100644 --- a/test/random/README.md +++ b/test/random/README.md @@ -8,7 +8,8 @@ Initialize testing: | Test name |Description | Happy Case | Implemented | |---------------------------------| --------------------------------------------------|------------|-------------| -| testInit | Check that deployment + initialize work. | Yes | No | +| testInit | Check that deployment + initialize work. | Yes | Yes | +| testReinit | Calling initialise a second time fails. | No | Yes | | testGetRandomSeedInitTraditional | getRandomSeed(), initial value, method TRADITIONAL | Yes | No | | testGetRandomSeedInitRandao | getRandomSeed(), initial value, method RANDAO | Yes | No | | testGetRandomSeedNotGenTraditional | getRandomSeed(), when value not generated | No | No | diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol new file mode 100644 index 00000000..bd0f08a9 --- /dev/null +++ b/test/random/RandomSeedProvider.t.sol @@ -0,0 +1,75 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.19; + +import "forge-std/Test.sol"; + +import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; +import {IOffchainRandomSource} from "contracts/random/IOffchainRandomSource.sol"; +import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; + + + +contract MockOffchainSource is IOffchainRandomSource { + uint256 public nextIndex; + bool public isReady; + + function setIsReady(bool _ready) external { + isReady = _ready; + } + + function requestOffchainRandom() external override(IOffchainRandomSource) returns(uint256 _fulfillmentIndex) { + return nextIndex++; + } + + function getOffchainRandom(uint256 _fulfillmentIndex) external view override(IOffchainRandomSource) returns(bytes32 _randomValue) { + if (!isReady) { + revert WaitForRandom(); + } + return keccak256(abi.encodePacked(_fulfillmentIndex)); + } + + function isOffchainRandomReady(uint256 /* _fulfillmentIndex */) external view returns(bool) { + return isReady; + } + + +} + +contract UninitializedRandomSeedProviderTest is Test { + address public constant TRADITIONAL = address(0); + // Indicates: Generate new random numbers using the RanDAO methodology. + address public constant RANDAO = address(1); + + TransparentUpgradeableProxy public proxy; + RandomSeedProvider public impl; + RandomSeedProvider public randomSeedProvider; + + address public proxyAdmin; + address public roleAdmin; + address public randomAdmin; + + function setUp() public virtual { + proxyAdmin = makeAddr("proxyAdmin"); + roleAdmin = makeAddr("roleAdmin"); + randomAdmin = makeAddr("randomAdmin"); + impl = new RandomSeedProvider(); + proxy = new TransparentUpgradeableProxy(address(impl), proxyAdmin, + abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin)); + randomSeedProvider = RandomSeedProvider(address(proxy)); + } + + function testInit() public { + assertEq(randomSeedProvider.nextRandomIndex(), 1, "nextRandomIndex"); + assertEq(randomSeedProvider.lastBlockRandomGenerated(), block.number, "lastBlockRandomGenerated"); + assertEq(randomSeedProvider.offchainRequestRateLimit(), 0, "offchainRequestRateLimit"); + assertEq(randomSeedProvider.prevOffchainRandomRequest(), 0, "prevOffchainRandomRequest"); + assertEq(randomSeedProvider.lastBlockOffchainRequest(), 0, "lastBlockOffchainRequest"); + assertEq(randomSeedProvider.randomSource(), TRADITIONAL, "lastBlockOffchainRequest"); + } + + function testReinit() public { + vm.expectRevert(); + randomSeedProvider.initialize(roleAdmin, randomAdmin); + } + +} From 7515b9f3e8e47042e538b9e7d5de054c3a8504b6 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 10 Jan 2024 17:24:13 +1000 Subject: [PATCH 041/100] Add more tests --- contracts/random/RandomSeedProvider.sol | 2 +- test/random/README.md | 4 ++-- test/random/RandomSeedProvider.t.sol | 14 +++++++++++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 01183a83..bf3220e8 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -155,7 +155,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { function getRandomSeed(uint256 _randomFulfillmentIndex, address _randomSource) external returns (bytes32 _randomSeed) { if (_randomSource == TRADITIONAL || _randomSource == RANDAO) { _generateNextRandom(); - if (_randomFulfillmentIndex < nextRandomIndex) { + if (_randomFulfillmentIndex > nextRandomIndex) { revert WaitForRandom(); } return randomOutput[_randomFulfillmentIndex]; diff --git a/test/random/README.md b/test/random/README.md index 81543dd6..4d20e247 100644 --- a/test/random/README.md +++ b/test/random/README.md @@ -10,8 +10,8 @@ Initialize testing: |---------------------------------| --------------------------------------------------|------------|-------------| | testInit | Check that deployment + initialize work. | Yes | Yes | | testReinit | Calling initialise a second time fails. | No | Yes | -| testGetRandomSeedInitTraditional | getRandomSeed(), initial value, method TRADITIONAL | Yes | No | -| testGetRandomSeedInitRandao | getRandomSeed(), initial value, method RANDAO | Yes | No | +| testGetRandomSeedInitTraditional | getRandomSeed(), initial value, method TRADITIONAL | Yes | Yes | +| testGetRandomSeedInitRandao | getRandomSeed(), initial value, method RANDAO | Yes | Yes | | testGetRandomSeedNotGenTraditional | getRandomSeed(), when value not generated | No | No | | testGetRandomSeedNotGenRandao | getRandomSeed(), when value not generated | No | No | | testGetRandomSeedNoOffchainSource | getRandomSeed(), when no offchain source configured | No | No | diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index bd0f08a9..b0c1276a 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -37,7 +37,6 @@ contract MockOffchainSource is IOffchainRandomSource { contract UninitializedRandomSeedProviderTest is Test { address public constant TRADITIONAL = address(0); - // Indicates: Generate new random numbers using the RanDAO methodology. address public constant RANDAO = address(1); TransparentUpgradeableProxy public proxy; @@ -72,4 +71,17 @@ contract UninitializedRandomSeedProviderTest is Test { randomSeedProvider.initialize(roleAdmin, randomAdmin); } + + function testGetRandomSeedInitTraditional() public { + bytes32 seed = randomSeedProvider.getRandomSeed(0, TRADITIONAL); + bytes32 expectedInitialSeed = keccak256(abi.encodePacked(block.chainid, block.number)); + assertEq(seed, expectedInitialSeed, "initial seed"); + } + + function testGetRandomSeedInitRandao() public { + bytes32 seed = randomSeedProvider.getRandomSeed(0, RANDAO); + bytes32 expectedInitialSeed = keccak256(abi.encodePacked(block.chainid, block.number)); + assertEq(seed, expectedInitialSeed, "initial seed"); + } + } From f0bc1f1283b77731c8d6fd9e3fc6fb30c4011375 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 11 Jan 2024 11:38:25 +1000 Subject: [PATCH 042/100] Compiling --- .gitmodules | 15 +- .../trading/seaport/ImmutableSeaport.sol | 681 ++++++++++++++++++ .../seaport/conduit/ConduitController.sol | 4 + .../interfaces/ImmutableSeaportEvents.sol | 14 + .../seaport/test/SeaportTestContracts.sol | 10 + .../validators/ReadOnlyOrderValidator.sol | 4 + .../seaport/validators/SeaportValidator.sol | 4 + .../validators/SeaportValidatorHelper.sol | 4 + .../seaport/zones/ImmutableSignedZone.sol | 605 ++++++++++++++++ contracts/trading/seaport/zones/README.md | 49 ++ .../zones/interfaces/SIP5Interface.sol | 28 + .../zones/interfaces/SIP6EventsAndErrors.sol | 14 + .../zones/interfaces/SIP7EventsAndErrors.sol | 75 ++ .../zones/interfaces/SIP7Interface.sol | 59 ++ ...{seaport => immutable-seaport-1.5.0+im1.3} | 0 lib/immutable-seaport-core-1.5.0+im1 | 1 + lib/seaport-core | 1 - lib/seaport-types | 1 - remappings.txt | 5 +- 19 files changed, 1560 insertions(+), 14 deletions(-) create mode 100644 contracts/trading/seaport/ImmutableSeaport.sol create mode 100644 contracts/trading/seaport/conduit/ConduitController.sol create mode 100644 contracts/trading/seaport/interfaces/ImmutableSeaportEvents.sol create mode 100644 contracts/trading/seaport/test/SeaportTestContracts.sol create mode 100644 contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol create mode 100644 contracts/trading/seaport/validators/SeaportValidator.sol create mode 100644 contracts/trading/seaport/validators/SeaportValidatorHelper.sol create mode 100644 contracts/trading/seaport/zones/ImmutableSignedZone.sol create mode 100644 contracts/trading/seaport/zones/README.md create mode 100644 contracts/trading/seaport/zones/interfaces/SIP5Interface.sol create mode 100644 contracts/trading/seaport/zones/interfaces/SIP6EventsAndErrors.sol create mode 100644 contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol create mode 100644 contracts/trading/seaport/zones/interfaces/SIP7Interface.sol rename lib/{seaport => immutable-seaport-1.5.0+im1.3} (100%) create mode 160000 lib/immutable-seaport-core-1.5.0+im1 delete mode 160000 lib/seaport-core delete mode 160000 lib/seaport-types diff --git a/.gitmodules b/.gitmodules index 6c8fed5c..dfaeb3de 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,21 +1,12 @@ [submodule "lib/forge-std"] path = lib/forge-std url = https://github.com/foundry-rs/forge-std -[submodule "lib/seaport"] - path = lib/seaport - url = https://github.com/immutable/seaport [submodule "lib/solidity-bits"] path = lib/solidity-bits url = https://github.com/estarriolvetch/solidity-bits [submodule "lib/solidity-bytes-utils"] path = lib/solidity-bytes-utils url = https://github.com/GNSPS/solidity-bytes-utils -[submodule "lib/seaport-core"] - path = lib/seaport-core - url = https://github.com/ProjectOpenSea/seaport-core -[submodule "lib/seaport-types"] - path = lib/seaport-types - url = https://github.com/ProjectOpenSea/seaport-types [submodule "lib/chainlink"] path = lib/chainlink url = https://github.com/smartcontractkit/chainlink @@ -25,3 +16,9 @@ [submodule "lib/openzeppelin-contracts-upgradeable-4.9.3"] path = lib/openzeppelin-contracts-upgradeable-4.9.3 url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable +[submodule "lib/immutable-seaport-1.5.0+im1.3"] + path = lib/immutable-seaport-1.5.0+im1.3 + url = https://github.com/immutable/seaport +[submodule "lib/immutable-seaport-core-1.5.0+im1"] + path = lib/immutable-seaport-core-1.5.0+im1 + url = https://github.com/immutable/seaport-core diff --git a/contracts/trading/seaport/ImmutableSeaport.sol b/contracts/trading/seaport/ImmutableSeaport.sol new file mode 100644 index 00000000..05dcd27b --- /dev/null +++ b/contracts/trading/seaport/ImmutableSeaport.sol @@ -0,0 +1,681 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache-2 +pragma solidity 0.8.17; + +import { Consideration } from "seaport-core/src/lib/Consideration.sol"; +import { + AdvancedOrder, + BasicOrderParameters, + CriteriaResolver, + Execution, + Fulfillment, + FulfillmentComponent, + Order, + OrderComponents +} from "seaport-types/src/lib/ConsiderationStructs.sol"; +import { OrderType } from "seaport-types/src/lib/ConsiderationEnums.sol"; +import { Ownable2Step } from "@openzeppelin/contracts/access/Ownable2Step.sol"; +import { + ImmutableSeaportEvents +} from "./interfaces/ImmutableSeaportEvents.sol"; + +/** + * @title ImmutableSeaport + * @custom:version 1.5 + * @notice Seaport is a generalized native token/ERC20/ERC721/ERC1155 + * marketplace with lightweight methods for common routes as well as + * more flexible methods for composing advanced orders or groups of + * orders. Each order contains an arbitrary number of items that may be + * spent (the "offer") along with an arbitrary number of items that must + * be received back by the indicated recipients (the "consideration"). + */ +contract ImmutableSeaport is + Consideration, + Ownable2Step, + ImmutableSeaportEvents +{ + // Mapping to store valid ImmutableZones - this allows for multiple Zones + // to be active at the same time, and can be expired or added on demand. + mapping(address => bool) public allowedZones; + + error OrderNotRestricted(); + error InvalidZone(address zone); + + /** + * @notice Derive and set hashes, reference chainId, and associated domain + * separator during deployment. + * + * @param conduitController A contract that deploys conduits, or proxies + * that may optionally be used to transfer approved + * ERC20/721/1155 tokens. + */ + constructor( + address conduitController + ) Consideration(conduitController) Ownable2Step() {} + + /** + * @dev Set the validity of a zone for use during fulfillment. + */ + function setAllowedZone(address zone, bool allowed) external onlyOwner { + allowedZones[zone] = allowed; + emit AllowedZoneSet(zone, allowed); + } + + /** + * @dev Internal pure function to retrieve and return the name of this + * contract. + * + * @return The name of this contract. + */ + function _name() internal pure override returns (string memory) { + // Return the name of the contract. + return "ImmutableSeaport"; + } + + /** + * @dev Internal pure function to retrieve the name of this contract as a + * string that will be used to derive the name hash in the constructor. + * + * @return The name of this contract as a string. + */ + function _nameString() internal pure override returns (string memory) { + // Return the name of the contract. + return "ImmutableSeaport"; + } + + /** + * @dev Helper function to revert any fulfillment that has an invalid zone + */ + function _rejectIfZoneInvalid(address zone) internal view { + if (!allowedZones[zone]) { + revert InvalidZone(zone); + } + } + + /** + * @notice Fulfill an order offering an ERC20, ERC721, or ERC1155 item by + * supplying Ether (or other native tokens), ERC20 tokens, an ERC721 + * item, or an ERC1155 item as consideration. Six permutations are + * supported: Native token to ERC721, Native token to ERC1155, ERC20 + * to ERC721, ERC20 to ERC1155, ERC721 to ERC20, and ERC1155 to + * ERC20 (with native tokens supplied as msg.value). For an order to + * be eligible for fulfillment via this method, it must contain a + * single offer item (though that item may have a greater amount if + * the item is not an ERC721). An arbitrary number of "additional + * recipients" may also be supplied which will each receive native + * tokens or ERC20 items from the fulfiller as consideration. Refer + * to the documentation for a more comprehensive summary of how to + * utilize this method and what orders are compatible with it. + * + * @param parameters Additional information on the fulfilled order. Note + * that the offerer and the fulfiller must first approve + * this contract (or their chosen conduit if indicated) + * before any tokens can be transferred. Also note that + * contract recipients of ERC1155 consideration items must + * implement `onERC1155Received` to receive those items. + * + * @return fulfilled A boolean indicating whether the order has been + * successfully fulfilled. + */ + function fulfillBasicOrder( + BasicOrderParameters calldata parameters + ) public payable virtual override returns (bool fulfilled) { + // All restricted orders are captured using this method + if ( + uint(parameters.basicOrderType) % 4 != 2 && + uint(parameters.basicOrderType) % 4 != 3 + ) { + revert OrderNotRestricted(); + } + + _rejectIfZoneInvalid(parameters.zone); + + return super.fulfillBasicOrder(parameters); + } + + /** + * @notice Fulfill an order offering an ERC20, ERC721, or ERC1155 item by + * supplying Ether (or other native tokens), ERC20 tokens, an ERC721 + * item, or an ERC1155 item as consideration. Six permutations are + * supported: Native token to ERC721, Native token to ERC1155, ERC20 + * to ERC721, ERC20 to ERC1155, ERC721 to ERC20, and ERC1155 to + * ERC20 (with native tokens supplied as msg.value). For an order to + * be eligible for fulfillment via this method, it must contain a + * single offer item (though that item may have a greater amount if + * the item is not an ERC721). An arbitrary number of "additional + * recipients" may also be supplied which will each receive native + * tokens or ERC20 items from the fulfiller as consideration. Refer + * to the documentation for a more comprehensive summary of how to + * utilize this method and what orders are compatible with it. Note + * that this function costs less gas than `fulfillBasicOrder` due to + * the zero bytes in the function selector (0x00000000) which also + * results in earlier function dispatch. + * + * @param parameters Additional information on the fulfilled order. Note + * that the offerer and the fulfiller must first approve + * this contract (or their chosen conduit if indicated) + * before any tokens can be transferred. Also note that + * contract recipients of ERC1155 consideration items must + * implement `onERC1155Received` to receive those items. + * + * @return fulfilled A boolean indicating whether the order has been + * successfully fulfilled. + */ + function fulfillBasicOrder_efficient_6GL6yc( + BasicOrderParameters calldata parameters + ) public payable virtual override returns (bool fulfilled) { + // All restricted orders are captured using this method + if ( + uint(parameters.basicOrderType) % 4 != 2 && + uint(parameters.basicOrderType) % 4 != 3 + ) { + revert OrderNotRestricted(); + } + + _rejectIfZoneInvalid(parameters.zone); + + return super.fulfillBasicOrder_efficient_6GL6yc(parameters); + } + + /** + * @notice Fulfill an order with an arbitrary number of items for offer and + * consideration. Note that this function does not support + * criteria-based orders or partial filling of orders (though + * filling the remainder of a partially-filled order is supported). + * + * @custom:param order The order to fulfill. Note that both the + * offerer and the fulfiller must first approve + * this contract (or the corresponding conduit if + * indicated) to transfer any relevant tokens on + * their behalf and that contracts must implement + * `onERC1155Received` to receive ERC1155 tokens + * as consideration. + * @param fulfillerConduitKey A bytes32 value indicating what conduit, if + * any, to source the fulfiller's token approvals + * from. The zero hash signifies that no conduit + * should be used (and direct approvals set on + * this contract). + * + * @return fulfilled A boolean indicating whether the order has been + * successfully fulfilled. + */ + function fulfillOrder( + /** + * @custom:name order + */ + Order calldata order, + bytes32 fulfillerConduitKey + ) public payable virtual override returns (bool fulfilled) { + if ( + order.parameters.orderType != OrderType.FULL_RESTRICTED && + order.parameters.orderType != OrderType.PARTIAL_RESTRICTED + ) { + revert OrderNotRestricted(); + } + + _rejectIfZoneInvalid(order.parameters.zone); + + return super.fulfillOrder(order, fulfillerConduitKey); + } + + /** + * @notice Fill an order, fully or partially, with an arbitrary number of + * items for offer and consideration alongside criteria resolvers + * containing specific token identifiers and associated proofs. + * + * @custom:param advancedOrder The order to fulfill along with the + * fraction of the order to attempt to fill. + * Note that both the offerer and the + * fulfiller must first approve this + * contract (or their conduit if indicated + * by the order) to transfer any relevant + * tokens on their behalf and that contracts + * must implement `onERC1155Received` to + * receive ERC1155 tokens as consideration. + * Also note that all offer and + * consideration components must have no + * remainder after multiplication of the + * respective amount with the supplied + * fraction for the partial fill to be + * considered valid. + * @custom:param criteriaResolvers An array where each element contains a + * reference to a specific offer or + * consideration, a token identifier, and a + * proof that the supplied token identifier + * is contained in the merkle root held by + * the item in question's criteria element. + * Note that an empty criteria indicates + * that any (transferable) token identifier + * on the token in question is valid and + * that no associated proof needs to be + * supplied. + * @param fulfillerConduitKey A bytes32 value indicating what conduit, + * if any, to source the fulfiller's token + * approvals from. The zero hash signifies + * that no conduit should be used (and + * direct approvals set on this contract). + * @param recipient The intended recipient for all received + * items, with `address(0)` indicating that + * the caller should receive the items. + * + * @return fulfilled A boolean indicating whether the order has been + * successfully fulfilled. + */ + function fulfillAdvancedOrder( + /** + * @custom:name advancedOrder + */ + AdvancedOrder calldata advancedOrder, + /** + * @custom:name criteriaResolvers + */ + CriteriaResolver[] calldata criteriaResolvers, + bytes32 fulfillerConduitKey, + address recipient + ) public payable virtual override returns (bool fulfilled) { + if ( + advancedOrder.parameters.orderType != OrderType.FULL_RESTRICTED && + advancedOrder.parameters.orderType != OrderType.PARTIAL_RESTRICTED + ) { + revert OrderNotRestricted(); + } + + _rejectIfZoneInvalid(advancedOrder.parameters.zone); + + return + super.fulfillAdvancedOrder( + advancedOrder, + criteriaResolvers, + fulfillerConduitKey, + recipient + ); + } + + /** + * @notice Attempt to fill a group of orders, each with an arbitrary number + * of items for offer and consideration. Any order that is not + * currently active, has already been fully filled, or has been + * cancelled will be omitted. Remaining offer and consideration + * items will then be aggregated where possible as indicated by the + * supplied offer and consideration component arrays and aggregated + * items will be transferred to the fulfiller or to each intended + * recipient, respectively. Note that a failing item transfer or an + * issue with order formatting will cause the entire batch to fail. + * Note that this function does not support criteria-based orders or + * partial filling of orders (though filling the remainder of a + * partially-filled order is supported). + * + * @custom:param orders The orders to fulfill. Note that + * both the offerer and the + * fulfiller must first approve this + * contract (or the corresponding + * conduit if indicated) to transfer + * any relevant tokens on their + * behalf and that contracts must + * implement `onERC1155Received` to + * receive ERC1155 tokens as + * consideration. + * @custom:param offerFulfillments An array of FulfillmentComponent + * arrays indicating which offer + * items to attempt to aggregate + * when preparing executions. Note + * that any offer items not included + * as part of a fulfillment will be + * sent unaggregated to the caller. + * @custom:param considerationFulfillments An array of FulfillmentComponent + * arrays indicating which + * consideration items to attempt to + * aggregate when preparing + * executions. + * @param fulfillerConduitKey A bytes32 value indicating what + * conduit, if any, to source the + * fulfiller's token approvals from. + * The zero hash signifies that no + * conduit should be used (and + * direct approvals set on this + * contract). + * @param maximumFulfilled The maximum number of orders to + * fulfill. + * + * @return availableOrders An array of booleans indicating if each order + * with an index corresponding to the index of the + * returned boolean was fulfillable or not. + * @return executions An array of elements indicating the sequence of + * transfers performed as part of matching the given + * orders. + */ + function fulfillAvailableOrders( + /** + * @custom:name orders + */ + Order[] calldata orders, + /** + * @custom:name offerFulfillments + */ + FulfillmentComponent[][] calldata offerFulfillments, + /** + * @custom:name considerationFulfillments + */ + FulfillmentComponent[][] calldata considerationFulfillments, + bytes32 fulfillerConduitKey, + uint256 maximumFulfilled + ) + public + payable + virtual + override + returns ( + bool[] memory, + /* availableOrders */ Execution[] memory /* executions */ + ) + { + for (uint256 i = 0; i < orders.length; i++) { + Order memory order = orders[i]; + if ( + order.parameters.orderType != OrderType.FULL_RESTRICTED && + order.parameters.orderType != OrderType.PARTIAL_RESTRICTED + ) { + revert OrderNotRestricted(); + } + _rejectIfZoneInvalid(order.parameters.zone); + } + + return + super.fulfillAvailableOrders( + orders, + offerFulfillments, + considerationFulfillments, + fulfillerConduitKey, + maximumFulfilled + ); + } + + /** + * @notice Attempt to fill a group of orders, fully or partially, with an + * arbitrary number of items for offer and consideration per order + * alongside criteria resolvers containing specific token + * identifiers and associated proofs. Any order that is not + * currently active, has already been fully filled, or has been + * cancelled will be omitted. Remaining offer and consideration + * items will then be aggregated where possible as indicated by the + * supplied offer and consideration component arrays and aggregated + * items will be transferred to the fulfiller or to each intended + * recipient, respectively. Note that a failing item transfer or an + * issue with order formatting will cause the entire batch to fail. + * + * @custom:param advancedOrders The orders to fulfill along with + * the fraction of those orders to + * attempt to fill. Note that both + * the offerer and the fulfiller + * must first approve this contract + * (or their conduit if indicated by + * the order) to transfer any + * relevant tokens on their behalf + * and that contracts must implement + * `onERC1155Received` to receive + * ERC1155 tokens as consideration. + * Also note that all offer and + * consideration components must + * have no remainder after + * multiplication of the respective + * amount with the supplied fraction + * for an order's partial fill + * amount to be considered valid. + * @custom:param criteriaResolvers An array where each element + * contains a reference to a + * specific offer or consideration, + * a token identifier, and a proof + * that the supplied token + * identifier is contained in the + * merkle root held by the item in + * question's criteria element. Note + * that an empty criteria indicates + * that any (transferable) token + * identifier on the token in + * question is valid and that no + * associated proof needs to be + * supplied. + * @custom:param offerFulfillments An array of FulfillmentComponent + * arrays indicating which offer + * items to attempt to aggregate + * when preparing executions. Note + * that any offer items not included + * as part of a fulfillment will be + * sent unaggregated to the caller. + * @custom:param considerationFulfillments An array of FulfillmentComponent + * arrays indicating which + * consideration items to attempt to + * aggregate when preparing + * executions. + * @param fulfillerConduitKey A bytes32 value indicating what + * conduit, if any, to source the + * fulfiller's token approvals from. + * The zero hash signifies that no + * conduit should be used (and + * direct approvals set on this + * contract). + * @param recipient The intended recipient for all + * received items, with `address(0)` + * indicating that the caller should + * receive the offer items. + * @param maximumFulfilled The maximum number of orders to + * fulfill. + * + * @return availableOrders An array of booleans indicating if each order + * with an index corresponding to the index of the + * returned boolean was fulfillable or not. + * @return executions An array of elements indicating the sequence of + * transfers performed as part of matching the given + * orders. + */ + function fulfillAvailableAdvancedOrders( + /** + * @custom:name advancedOrders + */ + AdvancedOrder[] calldata advancedOrders, + /** + * @custom:name criteriaResolvers + */ + CriteriaResolver[] calldata criteriaResolvers, + /** + * @custom:name offerFulfillments + */ + FulfillmentComponent[][] calldata offerFulfillments, + /** + * @custom:name considerationFulfillments + */ + FulfillmentComponent[][] calldata considerationFulfillments, + bytes32 fulfillerConduitKey, + address recipient, + uint256 maximumFulfilled + ) + public + payable + virtual + override + returns ( + bool[] memory, + /* availableOrders */ Execution[] memory /* executions */ + ) + { + for (uint256 i = 0; i < advancedOrders.length; i++) { + AdvancedOrder memory advancedOrder = advancedOrders[i]; + if ( + advancedOrder.parameters.orderType != + OrderType.FULL_RESTRICTED && + advancedOrder.parameters.orderType != + OrderType.PARTIAL_RESTRICTED + ) { + revert OrderNotRestricted(); + } + + _rejectIfZoneInvalid(advancedOrder.parameters.zone); + } + + return + super.fulfillAvailableAdvancedOrders( + advancedOrders, + criteriaResolvers, + offerFulfillments, + considerationFulfillments, + fulfillerConduitKey, + recipient, + maximumFulfilled + ); + } + + /** + * @notice Match an arbitrary number of orders, each with an arbitrary + * number of items for offer and consideration along with a set of + * fulfillments allocating offer components to consideration + * components. Note that this function does not support + * criteria-based or partial filling of orders (though filling the + * remainder of a partially-filled order is supported). Any unspent + * offer item amounts or native tokens will be transferred to the + * caller. + * + * @custom:param orders The orders to match. Note that both the + * offerer and fulfiller on each order must first + * approve this contract (or their conduit if + * indicated by the order) to transfer any + * relevant tokens on their behalf and each + * consideration recipient must implement + * `onERC1155Received` to receive ERC1155 tokens. + * @custom:param fulfillments An array of elements allocating offer + * components to consideration components. Note + * that each consideration component must be + * fully met for the match operation to be valid, + * and that any unspent offer items will be sent + * unaggregated to the caller. + * + * @return executions An array of elements indicating the sequence of + * transfers performed as part of matching the given + * orders. Note that unspent offer item amounts or native + * tokens will not be reflected as part of this array. + */ + function matchOrders( + /** + * @custom:name orders + */ + Order[] calldata orders, + /** + * @custom:name fulfillments + */ + Fulfillment[] calldata fulfillments + ) + public + payable + virtual + override + returns (Execution[] memory /* executions */) + { + for (uint256 i = 0; i < orders.length; i++) { + Order memory order = orders[i]; + if ( + order.parameters.orderType != OrderType.FULL_RESTRICTED && + order.parameters.orderType != OrderType.PARTIAL_RESTRICTED + ) { + revert OrderNotRestricted(); + } + _rejectIfZoneInvalid(order.parameters.zone); + } + + return super.matchOrders(orders, fulfillments); + } + + /** + * @notice Match an arbitrary number of full, partial, or contract orders, + * each with an arbitrary number of items for offer and + * consideration, supplying criteria resolvers containing specific + * token identifiers and associated proofs as well as fulfillments + * allocating offer components to consideration components. Any + * unspent offer item amounts will be transferred to the designated + * recipient (with the null address signifying to use the caller) + * and any unspent native tokens will be returned to the caller. + * + * @custom:param advancedOrders The advanced orders to match. Note that + * both the offerer and fulfiller on each + * order must first approve this contract + * (or their conduit if indicated by the + * order) to transfer any relevant tokens on + * their behalf and each consideration + * recipient must implement + * `onERC1155Received` to receive ERC1155 + * tokens. Also note that the offer and + * consideration components for each order + * must have no remainder after multiplying + * the respective amount with the supplied + * fraction for the group of partial fills + * to be considered valid. + * @custom:param criteriaResolvers An array where each element contains a + * reference to a specific offer or + * consideration, a token identifier, and a + * proof that the supplied token identifier + * is contained in the merkle root held by + * the item in question's criteria element. + * Note that an empty criteria indicates + * that any (transferable) token identifier + * on the token in question is valid and + * that no associated proof needs to be + * supplied. + * @custom:param fulfillments An array of elements allocating offer + * components to consideration components. + * Note that each consideration component + * must be fully met for the match operation + * to be valid, and that any unspent offer + * items will be sent unaggregated to the + * designated recipient. + * @param recipient The intended recipient for all unspent + * offer item amounts, or the caller if the + * null address is supplied. + * + * @return executions An array of elements indicating the sequence of + * transfers performed as part of matching the given + * orders. Note that unspent offer item amounts or + * native tokens will not be reflected as part of this + * array. + */ + function matchAdvancedOrders( + /** + * @custom:name advancedOrders + */ + AdvancedOrder[] calldata advancedOrders, + /** + * @custom:name criteriaResolvers + */ + CriteriaResolver[] calldata criteriaResolvers, + /** + * @custom:name fulfillments + */ + Fulfillment[] calldata fulfillments, + address recipient + ) + public + payable + virtual + override + returns (Execution[] memory /* executions */) + { + for (uint256 i = 0; i < advancedOrders.length; i++) { + AdvancedOrder memory advancedOrder = advancedOrders[i]; + if ( + advancedOrder.parameters.orderType != + OrderType.FULL_RESTRICTED && + advancedOrder.parameters.orderType != + OrderType.PARTIAL_RESTRICTED + ) { + revert OrderNotRestricted(); + } + + _rejectIfZoneInvalid(advancedOrder.parameters.zone); + } + + return + super.matchAdvancedOrders( + advancedOrders, + criteriaResolvers, + fulfillments, + recipient + ); + } +} diff --git a/contracts/trading/seaport/conduit/ConduitController.sol b/contracts/trading/seaport/conduit/ConduitController.sol new file mode 100644 index 00000000..11c02ae3 --- /dev/null +++ b/contracts/trading/seaport/conduit/ConduitController.sol @@ -0,0 +1,4 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.14; + +import { ConduitController } from "seaport-core/src/conduit/ConduitController.sol"; diff --git a/contracts/trading/seaport/interfaces/ImmutableSeaportEvents.sol b/contracts/trading/seaport/interfaces/ImmutableSeaportEvents.sol new file mode 100644 index 00000000..d57fa0c4 --- /dev/null +++ b/contracts/trading/seaport/interfaces/ImmutableSeaportEvents.sol @@ -0,0 +1,14 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache-2 +pragma solidity 0.8.17; + +/** + * @notice ImmutableSeaportEvents contains events + * related to the ImmutableSeaport contract + */ +interface ImmutableSeaportEvents { + /** + * @dev Emit an event when an allowed zone status is updated + */ + event AllowedZoneSet(address zoneAddress, bool allowed); +} diff --git a/contracts/trading/seaport/test/SeaportTestContracts.sol b/contracts/trading/seaport/test/SeaportTestContracts.sol new file mode 100644 index 00000000..1e66da80 --- /dev/null +++ b/contracts/trading/seaport/test/SeaportTestContracts.sol @@ -0,0 +1,10 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache-2 +pragma solidity >=0.8.4; + +/** + * @dev Import test contract helpers from Immutable pinned fork of OpenSea's seaport + * These are not deployed - they are only used for testing + */ +import "seaport/contracts/test/TestERC721.sol"; +import "seaport/contracts/test/TestZone.sol"; diff --git a/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol b/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol new file mode 100644 index 00000000..8a823c82 --- /dev/null +++ b/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol @@ -0,0 +1,4 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { ReadOnlyOrderValidator } from "seaport/contracts/helpers/order-validator/lib/ReadOnlyOrderValidator.sol"; diff --git a/contracts/trading/seaport/validators/SeaportValidator.sol b/contracts/trading/seaport/validators/SeaportValidator.sol new file mode 100644 index 00000000..b431bcb4 --- /dev/null +++ b/contracts/trading/seaport/validators/SeaportValidator.sol @@ -0,0 +1,4 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { SeaportValidator } from "seaport/contracts/helpers/order-validator/SeaportValidator.sol"; diff --git a/contracts/trading/seaport/validators/SeaportValidatorHelper.sol b/contracts/trading/seaport/validators/SeaportValidatorHelper.sol new file mode 100644 index 00000000..0334c9cd --- /dev/null +++ b/contracts/trading/seaport/validators/SeaportValidatorHelper.sol @@ -0,0 +1,4 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { SeaportValidatorHelper } from "seaport/contracts/helpers/order-validator/lib/SeaportValidatorHelper.sol"; diff --git a/contracts/trading/seaport/zones/ImmutableSignedZone.sol b/contracts/trading/seaport/zones/ImmutableSignedZone.sol new file mode 100644 index 00000000..733904b7 --- /dev/null +++ b/contracts/trading/seaport/zones/ImmutableSignedZone.sol @@ -0,0 +1,605 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache-2 +pragma solidity 0.8.17; + +import { + ZoneParameters, + Schema, + ReceivedItem +} from "seaport-types/src/lib/ConsiderationStructs.sol"; +import { ZoneInterface } from "seaport/contracts/interfaces/ZoneInterface.sol"; +import { SIP7Interface } from "./interfaces/SIP7Interface.sol"; +import { SIP7EventsAndErrors } from "./interfaces/SIP7EventsAndErrors.sol"; +import { SIP6EventsAndErrors } from "./interfaces/SIP6EventsAndErrors.sol"; +import { SIP5Interface } from "./interfaces/SIP5Interface.sol"; +import { Ownable2Step } from "@openzeppelin/contracts/access/Ownable2Step.sol"; +import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; +import { Strings } from "@openzeppelin/contracts/utils/Strings.sol"; +import { ERC165 } from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; + +/** + * @title ImmutableSignedZone + * @author Immutable + * @notice ImmutableSignedZone is a zone implementation based on the + * SIP-7 standard https://github.com/ProjectOpenSea/SIPs/blob/main/SIPS/sip-7.md + * Implementing substandard 3 and 4. + * + * Inspiration and reference from the following contracts: + * https://github.com/ProjectOpenSea/seaport/blob/024dcc5cd70231ce6db27b4e12ea6fb736f69b06/contracts/zones/SignedZone.sol + * - We notably deviate from this contract by implementing substandard 3, and SIP-6. + * https://github.com/reservoirprotocol/seaport-oracle/blob/master/packages/contracts/src/zones/SignedZone.sol + * - We deviate from this contract by going with a no assembly code reference contract approach, and we do not have a substandard + * prefix as part of the context bytes of extraData. + * - We estimate that for a standard validateOrder call with 10 consideration items, this contract consumes 1.9% more gas than the above + * as a tradeoff for having no assembly code. + */ +contract ImmutableSignedZone is + ERC165, + SIP7EventsAndErrors, + SIP6EventsAndErrors, + ZoneInterface, + SIP5Interface, + SIP7Interface, + Ownable2Step +{ + /// @dev The EIP-712 digest parameters. + bytes32 internal immutable _VERSION_HASH = keccak256(bytes("1.0")); + bytes32 internal immutable _EIP_712_DOMAIN_TYPEHASH = + keccak256( + abi.encodePacked( + "EIP712Domain(", + "string name,", + "string version,", + "uint256 chainId,", + "address verifyingContract", + ")" + ) + ); + + bytes32 internal immutable _SIGNED_ORDER_TYPEHASH = + keccak256( + abi.encodePacked( + "SignedOrder(", + "address fulfiller,", + "uint64 expiration,", + "bytes32 orderHash,", + "bytes context", + ")" + ) + ); + + bytes internal constant CONSIDERATION_BYTES = + abi.encodePacked("Consideration(", "ReceivedItem[] consideration", ")"); + + bytes internal constant RECEIVED_ITEM_BYTES = + abi.encodePacked( + "ReceivedItem(", + "uint8 itemType,", + "address token,", + "uint256 identifier,", + "uint256 amount,", + "address recipient", + ")" + ); + + bytes32 internal constant RECEIVED_ITEM_TYPEHASH = + keccak256(RECEIVED_ITEM_BYTES); + + bytes32 internal constant CONSIDERATION_TYPEHASH = + keccak256(abi.encodePacked(CONSIDERATION_BYTES, RECEIVED_ITEM_BYTES)); + + uint256 internal immutable _CHAIN_ID = block.chainid; + bytes32 internal immutable _DOMAIN_SEPARATOR; + uint8 internal immutable _ACCEPTED_SIP6_VERSION = 0; + + /// @dev The name for this zone returned in getSeaportMetadata(). + string private _ZONE_NAME; + + bytes32 internal _NAME_HASH; + + /// @dev The allowed signers. + mapping(address => SignerInfo) private _signers; + + /// @dev The API endpoint where orders for this zone can be signed. + /// Request and response payloads are defined in SIP-7. + string private _sip7APIEndpoint; + + /// @dev The documentationURI; + string private _documentationURI; + + /** + * @notice Constructor to deploy the contract. + * + * @param zoneName The name for the zone returned in + * getSeaportMetadata(). + * @param apiEndpoint The API endpoint where orders for this zone can be + * signed. + * Request and response payloads are defined in SIP-7. + */ + constructor( + string memory zoneName, + string memory apiEndpoint, + string memory documentationURI + ) { + // Set the zone name. + _ZONE_NAME = zoneName; + // set name hash + _NAME_HASH = keccak256(bytes(zoneName)); + + // Set the API endpoint. + _sip7APIEndpoint = apiEndpoint; + _documentationURI = documentationURI; + + // Derive and set the domain separator. + _DOMAIN_SEPARATOR = _deriveDomainSeparator(); + + // Emit an event to signal a SIP-5 contract has been deployed. + emit SeaportCompatibleContractDeployed(); + } + + /** + * @notice Add a new signer to the zone. + * + * @param signer The new signer address to add. + */ + function addSigner(address signer) external override onlyOwner { + // Do not allow the zero address to be added as a signer. + if (signer == address(0)) { + revert SignerCannotBeZeroAddress(); + } + + // Revert if the signer is already added. + if (_signers[signer].active) { + revert SignerAlreadyActive(signer); + } + + // Revert if the signer was previously authorized. + // Specified in SIP-7 to prevent compromised signer from being + // Cycled back into use. + if (_signers[signer].previouslyActive) { + revert SignerCannotBeReauthorized(signer); + } + + // Set the signer info. + _signers[signer] = SignerInfo(true, true); + + // Emit an event that the signer was added. + emit SignerAdded(signer); + } + + /** + * @notice Remove an active signer from the zone. + * + * @param signer The signer address to remove. + */ + function removeSigner(address signer) external override onlyOwner { + // Revert if the signer is not active. + if (!_signers[signer].active) { + revert SignerNotActive(signer); + } + + // Set the signer's active status to false. + _signers[signer].active = false; + + // Emit an event that the signer was removed. + emit SignerRemoved(signer); + } + + /** + * @notice Check if a given order including extraData is currently valid. + * + * @dev This function is called by Seaport whenever any extraData is + * provided by the caller. + * + * @return validOrderMagicValue A magic value indicating if the order is + * currently valid. + */ + function validateOrder( + ZoneParameters calldata zoneParameters + ) external view override returns (bytes4 validOrderMagicValue) { + // Put the extraData and orderHash on the stack for cheaper access. + bytes calldata extraData = zoneParameters.extraData; + bytes32 orderHash = zoneParameters.orderHash; + + // Revert with an error if the extraData is empty. + if (extraData.length == 0) { + revert InvalidExtraData("extraData is empty", orderHash); + } + + // We expect the extraData to conform with SIP-6 as well as SIP-7 + // Therefore all SIP-7 related data is offset by one byte + // SIP-7 specifically requires SIP-6 as a prerequisite. + + // Revert with an error if the extraData does not have valid length. + if (extraData.length < 93) { + revert InvalidExtraData( + "extraData length must be at least 93 bytes", + orderHash + ); + } + + // Revert if SIP6 version is not accepted (0) + if (uint8(extraData[0]) != _ACCEPTED_SIP6_VERSION) { + revert UnsupportedExtraDataVersion(uint8(extraData[0])); + } + + // extraData bytes 1-21: expected fulfiller + // (zero address means not restricted) + address expectedFulfiller = address(bytes20(extraData[1:21])); + + // extraData bytes 21-29: expiration timestamp (uint64) + uint64 expiration = uint64(bytes8(extraData[21:29])); + + // extraData bytes 29-93: signature + // (strictly requires 64 byte compact sig, ERC2098) + bytes calldata signature = extraData[29:93]; + + // extraData bytes 93-end: context (optional, variable length) + bytes calldata context = extraData[93:]; + + // Revert if expired. + if (block.timestamp > expiration) { + revert SignatureExpired(block.timestamp, expiration, orderHash); + } + + // Put fulfiller on the stack for more efficient access. + address actualFulfiller = zoneParameters.fulfiller; + + // Revert unless + // Expected fulfiller is 0 address (any fulfiller) or + // Expected fulfiller is the same as actual fulfiller + if ( + expectedFulfiller != address(0) && + expectedFulfiller != actualFulfiller + ) { + revert InvalidFulfiller( + expectedFulfiller, + actualFulfiller, + orderHash + ); + } + + // validate supported substandards (3,4) + _validateSubstandards( + context, + _deriveConsiderationHash(zoneParameters.consideration), + zoneParameters + ); + + // Derive the signedOrder hash + bytes32 signedOrderHash = _deriveSignedOrderHash( + expectedFulfiller, + expiration, + orderHash, + context + ); + + // Derive the EIP-712 digest using the domain separator and signedOrder + // hash through openzepplin helper + bytes32 digest = ECDSA.toTypedDataHash( + _domainSeparator(), + signedOrderHash + ); + + // Recover the signer address from the digest and signature. + // Pass in R and VS from compact signature (ERC2098) + address recoveredSigner = ECDSA.recover( + digest, + bytes32(signature[0:32]), + bytes32(signature[32:64]) + ); + + // Revert if the signer is not active + // !This also reverts if the digest constructed on serverside is incorrect + if (!_signers[recoveredSigner].active) { + revert SignerNotActive(recoveredSigner); + } + + // All validation completes and passes with no reverts, return valid + validOrderMagicValue = ZoneInterface.validateOrder.selector; + } + + /** + * @dev Internal view function to get the EIP-712 domain separator. If the + * chainId matches the chainId set on deployment, the cached domain + * separator will be returned; otherwise, it will be derived from + * scratch. + * + * @return The domain separator. + */ + function _domainSeparator() internal view returns (bytes32) { + return + block.chainid == _CHAIN_ID + ? _DOMAIN_SEPARATOR + : _deriveDomainSeparator(); + } + + /** + * @dev Returns Seaport metadata for this contract, returning the + * contract name and supported schemas. + * + * @return name The contract name + * @return schemas The supported SIPs + */ + function getSeaportMetadata() + external + view + override(SIP5Interface, ZoneInterface) + returns (string memory name, Schema[] memory schemas) + { + name = _ZONE_NAME; + + // supported SIP (7) + schemas = new Schema[](1); + schemas[0].id = 7; + + schemas[0].metadata = abi.encode( + keccak256( + abi.encode( + _domainSeparator(), + _sip7APIEndpoint, + _getSupportedSubstandards(), + _documentationURI + ) + ) + ); + } + + /** + * @dev Internal view function to derive the EIP-712 domain separator. + * + * @return domainSeparator The derived domain separator. + */ + function _deriveDomainSeparator() + internal + view + returns (bytes32 domainSeparator) + { + return + keccak256( + abi.encode( + _EIP_712_DOMAIN_TYPEHASH, + _NAME_HASH, + _VERSION_HASH, + block.chainid, + address(this) + ) + ); + } + + /** + * @notice Update the API endpoint returned by this zone. + * + * @param newApiEndpoint The new API endpoint. + */ + function updateAPIEndpoint( + string calldata newApiEndpoint + ) external override onlyOwner { + // Update to the new API endpoint. + _sip7APIEndpoint = newApiEndpoint; + } + + /** + * @notice Returns signing information about the zone. + * + * @return domainSeparator The domain separator used for signing. + */ + function sip7Information() + external + view + override + returns ( + bytes32 domainSeparator, + string memory apiEndpoint, + uint256[] memory substandards, + string memory documentationURI + ) + { + domainSeparator = _domainSeparator(); + apiEndpoint = _sip7APIEndpoint; + + substandards = _getSupportedSubstandards(); + + documentationURI = _documentationURI; + } + + /** + * @dev validate substandards 3 and 4 based on context + * + * @param context bytes payload of context + */ + function _validateSubstandards( + bytes calldata context, + bytes32 actualConsiderationHash, + ZoneParameters calldata zoneParameters + ) internal pure { + // substandard 3 - validate consideration hash actual match expected + + // first 32bytes of context must be exactly a keccak256 hash of consideration item array + if (context.length < 32) { + revert InvalidExtraData( + "invalid context, expecting consideration hash followed by order hashes", + zoneParameters.orderHash + ); + } + + // revert if order hash in context and payload do not match + bytes32 expectedConsiderationHash = bytes32(context[0:32]); + if (expectedConsiderationHash != actualConsiderationHash) { + revert SubstandardViolation( + 3, + "invalid consideration hash", + zoneParameters.orderHash + ); + } + + // substandard 4 - validate order hashes actual match expected + + // byte 33 to end are orderHashes array for substandard 4 + bytes calldata orderHashesBytes = context[32:]; + // context must be a multiple of 32 bytes + if (orderHashesBytes.length % 32 != 0) { + revert InvalidExtraData( + "invalid context, order hashes bytes not an array of bytes32 hashes", + zoneParameters.orderHash + ); + } + + // compute expected order hashes array based on context bytes + bytes32[] memory expectedOrderHashes = new bytes32[]( + orderHashesBytes.length / 32 + ); + for (uint256 i = 0; i < orderHashesBytes.length / 32; i++) { + expectedOrderHashes[i] = bytes32( + orderHashesBytes[i * 32:i * 32 + 32] + ); + } + + // revert if order hashes in context and payload do not match + // every expected order hash need to exist in fulfilling order hashes + if ( + !_everyElementExists( + expectedOrderHashes, + zoneParameters.orderHashes + ) + ) { + revert SubstandardViolation( + 4, + "invalid order hashes", + zoneParameters.orderHash + ); + } + } + + /** + * @dev get the supported substandards of the contract + * + * @return substandards array of substandards supported + * + */ + function _getSupportedSubstandards() + internal + pure + returns (uint256[] memory substandards) + { + // support substandards 3 and 4 + substandards = new uint256[](2); + substandards[0] = 3; + substandards[1] = 4; + } + + /** + * @dev Derive the signedOrder hash from the orderHash and expiration. + * + * @param fulfiller The expected fulfiller address. + * @param expiration The signature expiration timestamp. + * @param orderHash The order hash. + * @param context The optional variable-length context. + * + * @return signedOrderHash The signedOrder hash. + * + */ + function _deriveSignedOrderHash( + address fulfiller, + uint64 expiration, + bytes32 orderHash, + bytes calldata context + ) internal view returns (bytes32 signedOrderHash) { + // Derive the signed order hash. + signedOrderHash = keccak256( + abi.encode( + _SIGNED_ORDER_TYPEHASH, + fulfiller, + expiration, + orderHash, + keccak256(context) + ) + ); + } + + /** + * @dev Derive the EIP712 consideration hash based on received item array + * @param consideration expected consideration array + */ + function _deriveConsiderationHash( + ReceivedItem[] calldata consideration + ) internal pure returns (bytes32) { + uint256 numberOfItems = consideration.length; + bytes32[] memory considerationHashes = new bytes32[](numberOfItems); + for (uint256 i; i < numberOfItems; i++) { + considerationHashes[i] = keccak256( + abi.encode( + RECEIVED_ITEM_TYPEHASH, + consideration[i].itemType, + consideration[i].token, + consideration[i].identifier, + consideration[i].amount, + consideration[i].recipient + ) + ); + } + return + keccak256( + abi.encode( + CONSIDERATION_TYPEHASH, + keccak256(abi.encodePacked(considerationHashes)) + ) + ); + } + + /** + * @dev helper function to check if every element of array1 exists in array2 + * optimised for performance checking arrays sized 0-15 + * + * @param array1 subset array + * @param array2 superset array + */ + function _everyElementExists( + bytes32[] memory array1, + bytes32[] calldata array2 + ) internal pure returns (bool) { + // cache the length in memory for loop optimisation + uint256 array1Size = array1.length; + uint256 array2Size = array2.length; + + // we can assume all items (order hashes) are unique + // therefore if subset is bigger than superset, revert + if (array1Size > array2Size) { + return false; + } + + // Iterate through each element and compare them + for (uint256 i = 0; i < array1Size; ) { + bool found = false; + bytes32 item = array1[i]; + for (uint256 j = 0; j < array2Size; ) { + if (item == array2[j]) { + // if item from array1 is in array2, break + found = true; + break; + } + unchecked { + j++; + } + } + if (!found) { + // if any item from array1 is not found in array2, return false + return false; + } + unchecked { + i++; + } + } + + // All elements from array1 exist in array2 + return true; + } + + function supportsInterface( + bytes4 interfaceId + ) public view override(ERC165, ZoneInterface) returns (bool) { + return + interfaceId == type(ZoneInterface).interfaceId || + super.supportsInterface(interfaceId); + } +} diff --git a/contracts/trading/seaport/zones/README.md b/contracts/trading/seaport/zones/README.md new file mode 100644 index 00000000..990b6728 --- /dev/null +++ b/contracts/trading/seaport/zones/README.md @@ -0,0 +1,49 @@ +# Test plan for ImmutableSignedZone + +ImmutableSignedZone is a implementation of the SIP-7 specification with substandard 3. + +## E2E tests with signing server + +E2E tests will be handled in the server repository seperate to the contract. + +## Validate order unit tests + +The core function of the contract is `validateOrder` where signature verification and a variety of validations of the `extraData` payload is verified by the zone to determine whether an order is considered valid for fulfillment. This function will be called by the settlement contract upon order fulfillment. + +| Test name | Description | Happy Case | Implemented | +| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ---------- | ----------- | +| validateOrder reverts without extraData | base failure case | No | Yes | +| validateOrder reverts with invalid extraData | base failure case | No | Yes | +| validateOrder reverts with expired timestamp | asserts the expiration verification behaviour | No | Yes | +| validateOrder reverts with invalid fulfiller | asserts the fulfiller verification behaviour | No | Yes | +| validateOrder reverts with non 0 SIP6 version | asserts the SIP6 version verification behaviour | No | Yes | +| validateOrder reverts with wrong consideration | asserts the consideration verification behaviour | No | Yes | +| validates correct signature with context | Happy path of a valid order | Yes | Yes | +| validateOrder validates correct context with multiple order hashes - equal arrays | Happy path with bulk order hashes - expected == actual | Yes | Yes | +| validateOrder validates correct context with multiple order hashes - partial arrays | Happy path with bulk order hashes - expected is a subset of actual | Yes | Yes | +| validateOrder reverts when not all expected order hashes are in zone parameters | Error case with bulk order hashes - actual is a subset of expected | No | Yes | +| validateOrder reverts incorrectly signed signature with context | asserts active signer behaviour | No | Yes | +| validateOrder reverts a valid order after expiration time passes | asserts active signer behaviour | No | Yes | + +## Ownership unit tests + +Test the ownership behaviour of the contract + +| Test name | Description | Happy Case | Implemented | +| ------------------------------- | --------------------------- | ---------- | ----------- | +| deployer becomes owner | base case | Yes | Yes | +| transferOwnership works | base case | Yes | Yes | +| non owner cannot add signers | asserts ownership behaviour | No | Yes | +| non owner cannot remove signers | asserts ownership behaviour | No | Yes | +| non owner cannot update owner | asserts ownership behaviour | No | Yes | + +## Active signer unit tests + +Test the signer management behaviour of the contract + +| Test name | Description | Happy Case | Implemented | +| ---------------------------------- | --------------------------------------------------- | ---------- | ----------- | +| owner can add active signer | base case | Yes | Yes | +| owner can deactivate signer | base case | Yes | Yes | +| deactivate non active signer fails | asserts signers can only be deactivated when active | No | Yes | +| activate deactivated signer fails | asserts signer cannot be recycled behaviour | No | Yes | diff --git a/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol b/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol new file mode 100644 index 00000000..9da10294 --- /dev/null +++ b/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol @@ -0,0 +1,28 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache-2 +pragma solidity 0.8.17; + +import { Schema } from "seaport-types/src/lib/ConsiderationStructs.sol"; + +/** + * @dev SIP-5: Contract Metadata Interface for Seaport Contracts + * https://github.com/ProjectOpenSea/SIPs/blob/main/SIPS/sip-5.md + */ +interface SIP5Interface { + /** + * @dev An event that is emitted when a SIP-5 compatible contract is deployed. + */ + event SeaportCompatibleContractDeployed(); + + /** + * @dev Returns Seaport metadata for this contract, returning the + * contract name and supported schemas. + * + * @return name The contract name + * @return schemas The supported SIPs + */ + function getSeaportMetadata() + external + view + returns (string memory name, Schema[] memory schemas); +} diff --git a/contracts/trading/seaport/zones/interfaces/SIP6EventsAndErrors.sol b/contracts/trading/seaport/zones/interfaces/SIP6EventsAndErrors.sol new file mode 100644 index 00000000..338b3b27 --- /dev/null +++ b/contracts/trading/seaport/zones/interfaces/SIP6EventsAndErrors.sol @@ -0,0 +1,14 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache-2 +pragma solidity 0.8.17; + +/** + * @notice SIP6EventsAndErrors contains errors and events + * related to zone interaction as specified in the SIP6. + */ +interface SIP6EventsAndErrors { + /** + * @dev Revert with an error if SIP6 version is not supported + */ + error UnsupportedExtraDataVersion(uint8 version); +} diff --git a/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol b/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol new file mode 100644 index 00000000..75555db0 --- /dev/null +++ b/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol @@ -0,0 +1,75 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache-2 +pragma solidity 0.8.17; + +/** + * @notice SIP7EventsAndErrors contains errors and events + * related to zone interaction as specified in the SIP7. + */ +interface SIP7EventsAndErrors { + /** + * @dev Emit an event when a new signer is added. + */ + event SignerAdded(address signer); + + /** + * @dev Emit an event when a signer is removed. + */ + event SignerRemoved(address signer); + + /** + * @dev Revert with an error if trying to add a signer that is + * already active. + */ + error SignerAlreadyActive(address signer); + + /** + * @dev Revert with an error if trying to remove a signer that is + * not active + */ + error SignerNotActive(address signer); + + /** + * @dev Revert with an error if a new signer is the zero address. + */ + error SignerCannotBeZeroAddress(); + + /** + * @dev Revert with an error if a removed signer is trying to be + * reauthorized. + */ + error SignerCannotBeReauthorized(address signer); + + /** + * @dev Revert with an error when the signature has expired. + */ + error SignatureExpired( + uint256 currentTimestamp, + uint256 expiration, + bytes32 orderHash + ); + + /** + * @dev Revert with an error if the fulfiller does not match. + */ + error InvalidFulfiller( + address expectedFulfiller, + address actualFulfiller, + bytes32 orderHash + ); + + /** + * @dev Revert with an error if a substandard validation fails + */ + error SubstandardViolation( + uint256 substandardId, + string reason, + bytes32 orderHash + ); + + /** + * @dev Revert with an error if supplied order extraData is invalid + * or improperly formatted. + */ + error InvalidExtraData(string reason, bytes32 orderHash); +} diff --git a/contracts/trading/seaport/zones/interfaces/SIP7Interface.sol b/contracts/trading/seaport/zones/interfaces/SIP7Interface.sol new file mode 100644 index 00000000..47a16551 --- /dev/null +++ b/contracts/trading/seaport/zones/interfaces/SIP7Interface.sol @@ -0,0 +1,59 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache-2 +pragma solidity 0.8.17; + +/** + * @title SIP7Interface + * @author ryanio, Immutable + * @notice ImmutableSignedZone is an implementation of SIP-7 that requires orders + * to be signed by an approved signer. + * https://github.com/ProjectOpenSea/SIPs/blob/main/SIPS/sip-7.md + * + */ +interface SIP7Interface { + /** + * @dev The struct for storing signer info. + */ + struct SignerInfo { + bool active; /// If the signer is currently active. + bool previouslyActive; /// If the signer has been active before. + } + + /** + * @notice Add a new signer to the zone. + * + * @param signer The new signer address to add. + */ + function addSigner(address signer) external; + + /** + * @notice Remove an active signer from the zone. + * + * @param signer The signer address to remove. + */ + function removeSigner(address signer) external; + + /** + * @notice Update the API endpoint returned by this zone. + * + * @param newApiEndpoint The new API endpoint. + */ + function updateAPIEndpoint(string calldata newApiEndpoint) external; + + /** + * @notice Returns signing information about the zone. + * + * @return domainSeparator The domain separator used for signing. + * @return apiEndpoint The API endpoint to get signatures for orders + * using this zone. + */ + function sip7Information() + external + view + returns ( + bytes32 domainSeparator, + string memory apiEndpoint, + uint256[] memory substandards, + string memory documentationURI + ); +} diff --git a/lib/seaport b/lib/immutable-seaport-1.5.0+im1.3 similarity index 100% rename from lib/seaport rename to lib/immutable-seaport-1.5.0+im1.3 diff --git a/lib/immutable-seaport-core-1.5.0+im1 b/lib/immutable-seaport-core-1.5.0+im1 new file mode 160000 index 00000000..33e9030f --- /dev/null +++ b/lib/immutable-seaport-core-1.5.0+im1 @@ -0,0 +1 @@ +Subproject commit 33e9030f308500b422926a1be12d7a1e4d6adc06 diff --git a/lib/seaport-core b/lib/seaport-core deleted file mode 160000 index c17f6a8b..00000000 --- a/lib/seaport-core +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c17f6a8b238fa3b4d23e28a4a72efad4baeafb5d diff --git a/lib/seaport-types b/lib/seaport-types deleted file mode 160000 index 25bae8dd..00000000 --- a/lib/seaport-types +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 25bae8ddfa8709e5c51ab429fe06024e46a18f15 diff --git a/remappings.txt b/remappings.txt index 612a34ea..54c96f2d 100644 --- a/remappings.txt +++ b/remappings.txt @@ -5,6 +5,5 @@ openzeppelin-contracts-upgradeable-4.9.3/=lib/openzeppelin-contracts-upgradeable solidity-bits/=lib/solidity-bits/ solidity-bytes-utils/=lib/solidity-bytes-utils/ chainlink/contracts/=lib/chainlink/contracts/ -seaport-core/=lib/seaport-core/ -seaport-types/=lib/seaport-types/ -seaport/contracts/=lib/seaport/contracts/ +seaport/contracts/=lib/immutable-seaport-1.5.0+im1.3/contracts/ +seaport-core/=lib/immutable-seaport-core-1.5.0+im1/ From 3c29314ac2cdf3471c57d1c6cbbe261201238df3 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 11 Jan 2024 13:58:22 +1000 Subject: [PATCH 043/100] Fixed most of the build process for hardhat --- package-lock.json | 19203 ++++++++++++++++++++++++++++++++++++++++++++ package.json | 6 +- yarn.lock | 4725 ++++++----- 3 files changed, 21780 insertions(+), 2154 deletions(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..4fc81f61 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,19203 @@ +{ + "name": "@imtbl/contracts", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@imtbl/contracts", + "version": "0.0.0", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@chainlink/contracts": "^0.8.0", + "@openzeppelin/contracts": "^4.9.3", + "@rari-capital/solmate": "^6.4.0", + "openzeppelin-contracts-upgradeable-4.9.3": "npm:@openzeppelin/contracts-upgradeable@^4.9.3", + "seaport": "https://github.com/immutable/seaport.git#1.5.0+im.1.3", + "solidity-bits": "^0.4.0", + "solidity-bytes-utils": "^0.8.0" + }, + "devDependencies": { + "@nomiclabs/hardhat-ethers": "^2.2.2", + "@nomiclabs/hardhat-etherscan": "^3.1.6", + "@nomiclabs/hardhat-waffle": "^2.0.5", + "@nomiclabs/hardhat-web3": "^2.0.0", + "@openzeppelin/test-helpers": "^0.5.16", + "@typechain/ethers-v5": "^10.2.0", + "@typechain/hardhat": "^6.1.4", + "@types/chai": "^4.3.4", + "@types/mocha": "^9.1.1", + "@types/node": "^18.17.14", + "@typescript-eslint/eslint-plugin": "^5.60.0", + "@typescript-eslint/parser": "^5.60.0", + "chai": "^4.3.7", + "dotenv": "^16.0.3", + "eslint": "^8.43.0", + "eslint-config-prettier": "^8.8.0", + "eslint-config-standard": "^17.1.0", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-n": "^16.1.0", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-promise": "^6.1.1", + "ethereum-waffle": "^4.0.10", + "ethers": "^5.7.2", + "hardhat": "^2.17.3", + "hardhat-gas-reporter": "^1.0.9", + "prettier": "^2.8.8", + "prettier-plugin-solidity": "^1.1.3", + "solhint": "^3.3.8", + "solhint-plugin-prettier": "^0.0.5", + "solidity-coverage": "^0.8.4", + "ts-node": "^10.9.1", + "typechain": "^8.1.1", + "typescript": "^4.9.5" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", + "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.7", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "peer": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "peer": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "peer": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "peer": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "peer": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "peer": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", + "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", + "peer": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "peer": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz", + "integrity": "sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g==", + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.1.tgz", + "integrity": "sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", + "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@chainlink/contracts": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@chainlink/contracts/-/contracts-0.8.0.tgz", + "integrity": "sha512-nUv1Uxw5Mn92wgLs2bgPYmo8hpdQ3s9jB/lcbdU0LmNOVu0hbfmouVnqwRLa28Ll50q6GczUA+eO0ikNIKLZsA==", + "dependencies": { + "@eth-optimism/contracts": "^0.5.21", + "@openzeppelin/contracts": "~4.3.3", + "@openzeppelin/contracts-upgradeable-4.7.3": "npm:@openzeppelin/contracts-upgradeable@v4.7.3", + "@openzeppelin/contracts-v0.7": "npm:@openzeppelin/contracts@v3.4.2" + } + }, + "node_modules/@chainlink/contracts/node_modules/@openzeppelin/contracts": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.3.tgz", + "integrity": "sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g==" + }, + "node_modules/@chainsafe/as-sha256": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz", + "integrity": "sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==" + }, + "node_modules/@chainsafe/persistent-merkle-tree": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz", + "integrity": "sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==", + "dependencies": { + "@chainsafe/as-sha256": "^0.3.1" + } + }, + "node_modules/@chainsafe/ssz": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.9.4.tgz", + "integrity": "sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==", + "dependencies": { + "@chainsafe/as-sha256": "^0.3.1", + "@chainsafe/persistent-merkle-tree": "^0.4.2", + "case": "^1.6.3" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "devOptional": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ensdomains/address-encoder": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz", + "integrity": "sha512-E2d2gP4uxJQnDu2Kfg1tHNspefzbLT8Tyjrm5sEuim32UkU2sm5xL4VXtgc2X33fmPEw9+jUMpGs4veMbf+PYg==", + "dev": true, + "dependencies": { + "bech32": "^1.1.3", + "blakejs": "^1.1.0", + "bn.js": "^4.11.8", + "bs58": "^4.0.1", + "crypto-addr-codec": "^0.1.7", + "nano-base32": "^1.0.1", + "ripemd160": "^2.0.2" + } + }, + "node_modules/@ensdomains/address-encoder/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/@ensdomains/ens": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz", + "integrity": "sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw==", + "deprecated": "Please use @ensdomains/ens-contracts", + "dev": true, + "dependencies": { + "bluebird": "^3.5.2", + "eth-ens-namehash": "^2.0.8", + "solc": "^0.4.20", + "testrpc": "0.0.1", + "web3-utils": "^1.0.0-beta.31" + } + }, + "node_modules/@ensdomains/ensjs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@ensdomains/ensjs/-/ensjs-2.1.0.tgz", + "integrity": "sha512-GRbGPT8Z/OJMDuxs75U/jUNEC0tbL0aj7/L/QQznGYKm/tiasp+ndLOaoULy9kKJFC0TBByqfFliEHDgoLhyog==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.4.4", + "@ensdomains/address-encoder": "^0.1.7", + "@ensdomains/ens": "0.4.5", + "@ensdomains/resolver": "0.2.4", + "content-hash": "^2.5.2", + "eth-ens-namehash": "^2.0.8", + "ethers": "^5.0.13", + "js-sha3": "^0.8.0" + } + }, + "node_modules/@ensdomains/resolver": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz", + "integrity": "sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA==", + "deprecated": "Please use @ensdomains/ens-contracts", + "dev": true + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.2.tgz", + "integrity": "sha512-0MGxAVt1m/ZK+LTJp/j0qF7Hz97D9O/FH9Ms3ltnyIdDD57cbb1ACIQTkbHvNXtWDv5TPq7w5Kq56+cNukbo7g==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", + "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eth-optimism/contracts": { + "version": "0.5.40", + "resolved": "https://registry.npmjs.org/@eth-optimism/contracts/-/contracts-0.5.40.tgz", + "integrity": "sha512-MrzV0nvsymfO/fursTB7m/KunkPsCndltVgfdHaT1Aj5Vi6R/doKIGGkOofHX+8B6VMZpuZosKCMQ5lQuqjt8w==", + "dependencies": { + "@eth-optimism/core-utils": "0.12.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0" + }, + "peerDependencies": { + "ethers": "^5" + } + }, + "node_modules/@eth-optimism/core-utils": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eth-optimism/core-utils/-/core-utils-0.12.0.tgz", + "integrity": "sha512-qW+7LZYCz7i8dRa7SRlUKIo1VBU8lvN0HeXCxJR+z+xtMzMQpPds20XJNCMclszxYQHkXY00fOT6GvFw9ZL6nw==", + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/address": "^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/keccak256": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/providers": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bufio": "^1.0.7", + "chai": "^4.3.4" + } + }, + "node_modules/@ethereum-waffle/chai": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@ethereum-waffle/chai/-/chai-4.0.10.tgz", + "integrity": "sha512-X5RepE7Dn8KQLFO7HHAAe+KeGaX/by14hn90wePGBhzL54tq4Y8JscZFu+/LCwCl6TnkAAy5ebiMoqJ37sFtWw==", + "dev": true, + "dependencies": { + "@ethereum-waffle/provider": "4.0.5", + "debug": "^4.3.4", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=10.0" + }, + "peerDependencies": { + "ethers": "*" + } + }, + "node_modules/@ethereum-waffle/compiler": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@ethereum-waffle/compiler/-/compiler-4.0.3.tgz", + "integrity": "sha512-5x5U52tSvEVJS6dpCeXXKvRKyf8GICDwiTwUvGD3/WD+DpvgvaoHOL82XqpTSUHgV3bBq6ma5/8gKUJUIAnJCw==", + "dev": true, + "dependencies": { + "@resolver-engine/imports": "^0.3.3", + "@resolver-engine/imports-fs": "^0.3.3", + "@typechain/ethers-v5": "^10.0.0", + "@types/mkdirp": "^0.5.2", + "@types/node-fetch": "^2.6.1", + "mkdirp": "^0.5.1", + "node-fetch": "^2.6.7" + }, + "engines": { + "node": ">=10.0" + }, + "peerDependencies": { + "ethers": "*", + "solc": "*", + "typechain": "^8.0.0" + } + }, + "node_modules/@ethereum-waffle/ens": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@ethereum-waffle/ens/-/ens-4.0.3.tgz", + "integrity": "sha512-PVLcdnTbaTfCrfSOrvtlA9Fih73EeDvFS28JQnT5M5P4JMplqmchhcZB1yg/fCtx4cvgHlZXa0+rOCAk2Jk0Jw==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "peerDependencies": { + "@ensdomains/ens": "^0.4.4", + "@ensdomains/resolver": "^0.2.4", + "ethers": "*" + } + }, + "node_modules/@ethereum-waffle/mock-contract": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@ethereum-waffle/mock-contract/-/mock-contract-4.0.4.tgz", + "integrity": "sha512-LwEj5SIuEe9/gnrXgtqIkWbk2g15imM/qcJcxpLyAkOj981tQxXmtV4XmQMZsdedEsZ/D/rbUAOtZbgwqgUwQA==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "peerDependencies": { + "ethers": "*" + } + }, + "node_modules/@ethereum-waffle/provider": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@ethereum-waffle/provider/-/provider-4.0.5.tgz", + "integrity": "sha512-40uzfyzcrPh+Gbdzv89JJTMBlZwzya1YLDyim8mVbEqYLP5VRYWoGp0JMyaizgV3hMoUFRqJKVmIUw4v7r3hYw==", + "dev": true, + "dependencies": { + "@ethereum-waffle/ens": "4.0.3", + "@ganache/ethereum-options": "0.1.4", + "debug": "^4.3.4", + "ganache": "7.4.3" + }, + "engines": { + "node": ">=10.0" + }, + "peerDependencies": { + "ethers": "*" + } + }, + "node_modules/@ethereumjs/block": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.3.tgz", + "integrity": "sha512-CegDeryc2DVKnDkg5COQrE0bJfw/p0v3GBk2W5/Dj5dOVfEmb50Ux0GLnSPypooLnfqjwFaorGuT9FokWB3GRg==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "^2.6.5", + "@ethereumjs/tx": "^3.5.2", + "ethereumjs-util": "^7.1.5", + "merkle-patricia-tree": "^4.2.4" + } + }, + "node_modules/@ethereumjs/block/node_modules/@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", + "dev": true, + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" + } + }, + "node_modules/@ethereumjs/block/node_modules/@ethereumjs/tx": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", + "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" + } + }, + "node_modules/@ethereumjs/block/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@ethereumjs/blockchain": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz", + "integrity": "sha512-bi0wuNJ1gw4ByNCV56H0Z4Q7D+SxUbwyG12Wxzbvqc89PXLRNR20LBcSUZRKpN0+YCPo6m0XZL/JLio3B52LTw==", + "dev": true, + "dependencies": { + "@ethereumjs/block": "^3.6.2", + "@ethereumjs/common": "^2.6.4", + "@ethereumjs/ethash": "^1.1.0", + "debug": "^4.3.3", + "ethereumjs-util": "^7.1.5", + "level-mem": "^5.0.1", + "lru-cache": "^5.1.1", + "semaphore-async-await": "^1.5.1" + } + }, + "node_modules/@ethereumjs/blockchain/node_modules/@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", + "dev": true, + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" + } + }, + "node_modules/@ethereumjs/blockchain/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@ethereumjs/common": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.0.tgz", + "integrity": "sha512-Cq2qS0FTu6O2VU1sgg+WyU9Ps0M6j/BEMHN+hRaECXCV/r0aI78u4N6p52QW/BDVhwWZpCdrvG8X7NJdzlpNUA==", + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.3" + } + }, + "node_modules/@ethereumjs/ethash": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz", + "integrity": "sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA==", + "dev": true, + "dependencies": { + "@ethereumjs/block": "^3.5.0", + "@types/levelup": "^4.3.0", + "buffer-xor": "^2.0.1", + "ethereumjs-util": "^7.1.1", + "miller-rabin": "^4.0.0" + } + }, + "node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/tx": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.4.0.tgz", + "integrity": "sha512-WWUwg1PdjHKZZxPPo274ZuPsJCWV3SqATrEKQP1n2DrVYVP1aZIYpo/mFaA0BDoE0tIQmBeimRCEA0Lgil+yYw==", + "dependencies": { + "@ethereumjs/common": "^2.6.0", + "ethereumjs-util": "^7.1.3" + } + }, + "node_modules/@ethereumjs/util": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", + "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz", + "integrity": "sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug==", + "dependencies": { + "@noble/curves": "1.1.0", + "@noble/hashes": "1.3.1", + "@scure/bip32": "1.3.1", + "@scure/bip39": "1.2.1" + } + }, + "node_modules/@ethereumjs/vm": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.6.0.tgz", + "integrity": "sha512-J2m/OgjjiGdWF2P9bj/4LnZQ1zRoZhY8mRNVw/N3tXliGI8ai1sI1mlDPkLpeUUM4vq54gH6n0ZlSpz8U/qlYQ==", + "dev": true, + "dependencies": { + "@ethereumjs/block": "^3.6.0", + "@ethereumjs/blockchain": "^5.5.0", + "@ethereumjs/common": "^2.6.0", + "@ethereumjs/tx": "^3.4.0", + "async-eventemitter": "^0.2.4", + "core-js-pure": "^3.0.1", + "debug": "^2.2.0", + "ethereumjs-util": "^7.1.3", + "functional-red-black-tree": "^1.0.1", + "mcl-wasm": "^0.7.1", + "merkle-patricia-tree": "^4.2.2", + "rustbn.js": "~0.2.0" + } + }, + "node_modules/@ethereumjs/vm/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/@ethereumjs/vm/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/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "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/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "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/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "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/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "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/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "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/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "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/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "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/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "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/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "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/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "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/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "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/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "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/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "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/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "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/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ] + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "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/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "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/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "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/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "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/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/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "node_modules/@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "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/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "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/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "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/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "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/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "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/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "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/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "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/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "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/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "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/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^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/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "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/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "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/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ganache/ethereum-address": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@ganache/ethereum-address/-/ethereum-address-0.1.4.tgz", + "integrity": "sha512-sTkU0M9z2nZUzDeHRzzGlW724xhMLXo2LeX1hixbnjHWY1Zg1hkqORywVfl+g5uOO8ht8T0v+34IxNxAhmWlbw==", + "dev": true, + "dependencies": { + "@ganache/utils": "0.1.4" + } + }, + "node_modules/@ganache/ethereum-options": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@ganache/ethereum-options/-/ethereum-options-0.1.4.tgz", + "integrity": "sha512-i4l46taoK2yC41FPkcoDlEVoqHS52wcbHPqJtYETRWqpOaoj9hAg/EJIHLb1t6Nhva2CdTO84bG+qlzlTxjAHw==", + "dev": true, + "dependencies": { + "@ganache/ethereum-address": "0.1.4", + "@ganache/ethereum-utils": "0.1.4", + "@ganache/options": "0.1.4", + "@ganache/utils": "0.1.4", + "bip39": "3.0.4", + "seedrandom": "3.0.5" + } + }, + "node_modules/@ganache/ethereum-utils": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@ganache/ethereum-utils/-/ethereum-utils-0.1.4.tgz", + "integrity": "sha512-FKXF3zcdDrIoCqovJmHLKZLrJ43234Em2sde/3urUT/10gSgnwlpFmrv2LUMAmSbX3lgZhW/aSs8krGhDevDAg==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "2.6.0", + "@ethereumjs/tx": "3.4.0", + "@ethereumjs/vm": "5.6.0", + "@ganache/ethereum-address": "0.1.4", + "@ganache/rlp": "0.1.4", + "@ganache/utils": "0.1.4", + "emittery": "0.10.0", + "ethereumjs-abi": "0.6.8", + "ethereumjs-util": "7.1.3" + } + }, + "node_modules/@ganache/options": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@ganache/options/-/options-0.1.4.tgz", + "integrity": "sha512-zAe/craqNuPz512XQY33MOAG6Si1Xp0hCvfzkBfj2qkuPcbJCq6W/eQ5MB6SbXHrICsHrZOaelyqjuhSEmjXRw==", + "dev": true, + "dependencies": { + "@ganache/utils": "0.1.4", + "bip39": "3.0.4", + "seedrandom": "3.0.5" + } + }, + "node_modules/@ganache/rlp": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@ganache/rlp/-/rlp-0.1.4.tgz", + "integrity": "sha512-Do3D1H6JmhikB+6rHviGqkrNywou/liVeFiKIpOBLynIpvZhRCgn3SEDxyy/JovcaozTo/BynHumfs5R085MFQ==", + "dev": true, + "dependencies": { + "@ganache/utils": "0.1.4", + "rlp": "2.2.6" + } + }, + "node_modules/@ganache/utils": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@ganache/utils/-/utils-0.1.4.tgz", + "integrity": "sha512-oatUueU3XuXbUbUlkyxeLLH3LzFZ4y5aSkNbx6tjSIhVTPeh+AuBKYt4eQ73FFcTB3nj/gZoslgAh5CN7O369w==", + "dev": true, + "dependencies": { + "emittery": "0.10.0", + "keccak": "3.0.1", + "seedrandom": "3.0.5" + }, + "optionalDependencies": { + "@trufflesuite/bigint-buffer": "1.1.9" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "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==", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@metamask/eth-sig-util/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@metamask/eth-sig-util/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/@metamask/safe-event-emitter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz", + "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==" + }, + "node_modules/@noble/curves": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz", + "integrity": "sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==", + "dependencies": { + "@noble/hashes": "1.3.1" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz", + "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/secp256k1": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz", + "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nomicfoundation/ethereumjs-block": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.2.tgz", + "integrity": "sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q==", + "dependencies": { + "@nomicfoundation/ethereumjs-common": "4.0.2", + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "@nomicfoundation/ethereumjs-trie": "6.0.2", + "@nomicfoundation/ethereumjs-tx": "5.0.2", + "@nomicfoundation/ethereumjs-util": "9.0.2", + "ethereum-cryptography": "0.1.3", + "ethers": "^5.7.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-blockchain": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.2.tgz", + "integrity": "sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w==", + "dependencies": { + "@nomicfoundation/ethereumjs-block": "5.0.2", + "@nomicfoundation/ethereumjs-common": "4.0.2", + "@nomicfoundation/ethereumjs-ethash": "3.0.2", + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "@nomicfoundation/ethereumjs-trie": "6.0.2", + "@nomicfoundation/ethereumjs-tx": "5.0.2", + "@nomicfoundation/ethereumjs-util": "9.0.2", + "abstract-level": "^1.0.3", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "level": "^8.0.0", + "lru-cache": "^5.1.1", + "memory-level": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-common": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.2.tgz", + "integrity": "sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg==", + "dependencies": { + "@nomicfoundation/ethereumjs-util": "9.0.2", + "crc-32": "^1.2.0" + } + }, + "node_modules/@nomicfoundation/ethereumjs-ethash": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.2.tgz", + "integrity": "sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg==", + "dependencies": { + "@nomicfoundation/ethereumjs-block": "5.0.2", + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "@nomicfoundation/ethereumjs-util": "9.0.2", + "abstract-level": "^1.0.3", + "bigint-crypto-utils": "^3.0.23", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-evm": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.2.tgz", + "integrity": "sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ==", + "dependencies": { + "@ethersproject/providers": "^5.7.1", + "@nomicfoundation/ethereumjs-common": "4.0.2", + "@nomicfoundation/ethereumjs-tx": "5.0.2", + "@nomicfoundation/ethereumjs-util": "9.0.2", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-rlp": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.2.tgz", + "integrity": "sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA==", + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-statemanager": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.2.tgz", + "integrity": "sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA==", + "dependencies": { + "@nomicfoundation/ethereumjs-common": "4.0.2", + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "ethers": "^5.7.1", + "js-sdsl": "^4.1.4" + } + }, + "node_modules/@nomicfoundation/ethereumjs-trie": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.2.tgz", + "integrity": "sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ==", + "dependencies": { + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "@nomicfoundation/ethereumjs-util": "9.0.2", + "@types/readable-stream": "^2.3.13", + "ethereum-cryptography": "0.1.3", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-tx": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.2.tgz", + "integrity": "sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g==", + "dependencies": { + "@chainsafe/ssz": "^0.9.2", + "@ethersproject/providers": "^5.7.2", + "@nomicfoundation/ethereumjs-common": "4.0.2", + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "@nomicfoundation/ethereumjs-util": "9.0.2", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-util": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.2.tgz", + "integrity": "sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ==", + "dependencies": { + "@chainsafe/ssz": "^0.10.0", + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-util/node_modules/@chainsafe/persistent-merkle-tree": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz", + "integrity": "sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==", + "dependencies": { + "@chainsafe/as-sha256": "^0.3.1" + } + }, + "node_modules/@nomicfoundation/ethereumjs-util/node_modules/@chainsafe/ssz": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.10.2.tgz", + "integrity": "sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==", + "dependencies": { + "@chainsafe/as-sha256": "^0.3.1", + "@chainsafe/persistent-merkle-tree": "^0.5.0" + } + }, + "node_modules/@nomicfoundation/ethereumjs-vm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.2.tgz", + "integrity": "sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA==", + "dependencies": { + "@nomicfoundation/ethereumjs-block": "5.0.2", + "@nomicfoundation/ethereumjs-blockchain": "7.0.2", + "@nomicfoundation/ethereumjs-common": "4.0.2", + "@nomicfoundation/ethereumjs-evm": "2.0.2", + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "@nomicfoundation/ethereumjs-statemanager": "2.0.2", + "@nomicfoundation/ethereumjs-trie": "6.0.2", + "@nomicfoundation/ethereumjs-tx": "5.0.2", + "@nomicfoundation/ethereumjs-util": "9.0.2", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "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==", + "dependencies": { + "ethereumjs-util": "^7.1.4" + }, + "peerDependencies": { + "hardhat": "^2.9.5" + } + }, + "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", + "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", + "engines": { + "node": ">= 12" + }, + "optionalDependencies": { + "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", + "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", + "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", + "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-freebsd-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", + "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", + "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", + "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", + "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", + "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", + "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", + "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", + "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "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, + "peerDependencies": { + "ethers": "^5.0.0", + "hardhat": "^2.0.0" + } + }, + "node_modules/@nomiclabs/hardhat-etherscan": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.7.tgz", + "integrity": "sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ==", + "deprecated": "The @nomiclabs/hardhat-etherscan package is deprecated, please use @nomicfoundation/hardhat-verify instead", + "dev": 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-waffle": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.6.tgz", + "integrity": "sha512-+Wz0hwmJGSI17B+BhU/qFRZ1l6/xMW82QGXE/Gi+WTmwgJrQefuBs1lIf7hzQ1hLk6hpkvb/zwcNkpVKRYTQYg==", + "dev": true, + "peerDependencies": { + "@nomiclabs/hardhat-ethers": "^2.0.0", + "@types/sinon-chai": "^3.2.3", + "ethereum-waffle": "*", + "ethers": "^5.0.0", + "hardhat": "^2.0.0" + } + }, + "node_modules/@nomiclabs/hardhat-web3": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-web3/-/hardhat-web3-2.0.0.tgz", + "integrity": "sha512-zt4xN+D+fKl3wW2YlTX3k9APR3XZgPkxJYf36AcliJn3oujnKEVRZaHu0PhgLjO+gR+F/kiYayo9fgd2L8970Q==", + "dev": true, + "dependencies": { + "@types/bignumber.js": "^5.0.0" + }, + "peerDependencies": { + "hardhat": "^2.0.0", + "web3": "^1.0.0-beta.36" + } + }, + "node_modules/@openzeppelin/contract-loader": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz", + "integrity": "sha512-cOFIjBjwbGgZhDZsitNgJl0Ye1rd5yu/Yx5LMgeq3u0ZYzldm4uObzHDFq4gjDdoypvyORjjJa3BlFA7eAnVIg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "fs-extra": "^8.1.0" + } + }, + "node_modules/@openzeppelin/contract-loader/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, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@openzeppelin/contracts": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.3.tgz", + "integrity": "sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg==" + }, + "node_modules/@openzeppelin/contracts-upgradeable-4.7.3": { + "name": "@openzeppelin/contracts-upgradeable", + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.7.3.tgz", + "integrity": "sha512-+wuegAMaLcZnLCJIvrVUDzA9z/Wp93f0Dla/4jJvIhijRrPabjQbZe6fWiECLaJyfn5ci9fqf9vTw3xpQOad2A==" + }, + "node_modules/@openzeppelin/contracts-v0.7": { + "name": "@openzeppelin/contracts", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.2.tgz", + "integrity": "sha512-z0zMCjyhhp4y7XKAcDAi3Vgms4T2PstwBdahiO0+9NaGICQKjynK3wduSRplTgk4LXmoO1yfDGO5RbjKYxtuxA==" + }, + "node_modules/@openzeppelin/test-helpers": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/@openzeppelin/test-helpers/-/test-helpers-0.5.16.tgz", + "integrity": "sha512-T1EvspSfH1qQO/sgGlskLfYVBbqzJR23SZzYl/6B2JnT4EhThcI85UpvDk0BkLWKaDScQTabGHt4GzHW+3SfZg==", + "dev": true, + "dependencies": { + "@openzeppelin/contract-loader": "^0.6.2", + "@truffle/contract": "^4.0.35", + "ansi-colors": "^3.2.3", + "chai": "^4.2.0", + "chai-bn": "^0.2.1", + "ethjs-abi": "^0.2.1", + "lodash.flatten": "^4.4.0", + "semver": "^5.6.0", + "web3": "^1.2.5", + "web3-utils": "^1.2.5" + } + }, + "node_modules/@openzeppelin/test-helpers/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "peer": true + }, + "node_modules/@openzeppelin/test-helpers/node_modules/chai-bn": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/chai-bn/-/chai-bn-0.2.2.tgz", + "integrity": "sha512-MzjelH0p8vWn65QKmEq/DLBG1Hle4WeyqT79ANhXZhn/UxRWO0OogkAxi5oGGtfzwU9bZR8mvbvYdoqNVWQwFg==", + "dev": true, + "peerDependencies": { + "bn.js": "^4.11.0", + "chai": "^4.0.0" + } + }, + "node_modules/@openzeppelin/test-helpers/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@rari-capital/solmate": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@rari-capital/solmate/-/solmate-6.4.0.tgz", + "integrity": "sha512-BXWIHHbG5Zbgrxi0qVYe0Zs+bfx+XgOciVUACjuIApV0KzC0kY8XdO1higusIei/ZKCC+GUKdcdQZflxYPUTKQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, + "node_modules/@resolver-engine/core": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@resolver-engine/core/-/core-0.3.3.tgz", + "integrity": "sha512-eB8nEbKDJJBi5p5SrvrvILn4a0h42bKtbCTri3ZxCGt6UvoQyp7HnGOfki944bUjBSHKK3RvgfViHn+kqdXtnQ==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "is-url": "^1.2.4", + "request": "^2.85.0" + } + }, + "node_modules/@resolver-engine/core/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@resolver-engine/fs": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.3.3.tgz", + "integrity": "sha512-wQ9RhPUcny02Wm0IuJwYMyAG8fXVeKdmhm8xizNByD4ryZlx6PP6kRen+t/haF43cMfmaV7T3Cx6ChOdHEhFUQ==", + "dev": true, + "dependencies": { + "@resolver-engine/core": "^0.3.3", + "debug": "^3.1.0" + } + }, + "node_modules/@resolver-engine/fs/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@resolver-engine/imports": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.3.3.tgz", + "integrity": "sha512-anHpS4wN4sRMwsAbMXhMfOD/y4a4Oo0Cw/5+rue7hSwGWsDOQaAU1ClK1OxjUC35/peazxEl8JaSRRS+Xb8t3Q==", + "dev": true, + "dependencies": { + "@resolver-engine/core": "^0.3.3", + "debug": "^3.1.0", + "hosted-git-info": "^2.6.0", + "path-browserify": "^1.0.0", + "url": "^0.11.0" + } + }, + "node_modules/@resolver-engine/imports-fs": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.3.3.tgz", + "integrity": "sha512-7Pjg/ZAZtxpeyCFlZR5zqYkz+Wdo84ugB5LApwriT8XFeQoLwGUj4tZFFvvCuxaNCcqZzCYbonJgmGObYBzyCA==", + "dev": true, + "dependencies": { + "@resolver-engine/fs": "^0.3.3", + "@resolver-engine/imports": "^0.3.3", + "debug": "^3.1.0" + } + }, + "node_modules/@resolver-engine/imports-fs/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@resolver-engine/imports/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@scure/base": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.3.tgz", + "integrity": "sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.1.tgz", + "integrity": "sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A==", + "dependencies": { + "@noble/curves": "~1.1.0", + "@noble/hashes": "~1.3.1", + "@scure/base": "~1.1.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", + "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", + "dependencies": { + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "dependencies": { + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "dependencies": { + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "dependencies": { + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "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/@solidity-parser/parser": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", + "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", + "dev": true, + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + } + }, + "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/abi-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-1.0.3.tgz", + "integrity": "sha512-AWhs01HCShaVKjml7Z4AbVREr/u4oiWxCcoR7Cktm0mEvtT04pvnxW5xB/cI4znRkrbPdFQlFt67kgrAjesYkw==", + "dev": true, + "dependencies": { + "change-case": "3.0.2", + "fast-check": "3.1.1", + "web3-utils": "1.10.0" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/abi-utils/node_modules/web3-utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", + "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/blockchain-utils": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.9.tgz", + "integrity": "sha512-RHfumgbIVo68Rv9ofDYfynjnYZIfP/f1vZy4RoqkfYAO+fqfc58PDRzB1WAGq2U6GPuOnipOJxQhnqNnffORZg==", + "dev": true, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/codec": { + "version": "0.17.3", + "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.17.3.tgz", + "integrity": "sha512-Ko/+dsnntNyrJa57jUD9u4qx9nQby+H4GsUO6yjiCPSX0TQnEHK08XWqBSg0WdmCH2+h0y1nr2CXSx8gbZapxg==", + "dev": true, + "dependencies": { + "@truffle/abi-utils": "^1.0.3", + "@truffle/compile-common": "^0.9.8", + "big.js": "^6.0.3", + "bn.js": "^5.1.3", + "cbor": "^5.2.0", + "debug": "^4.3.1", + "lodash": "^4.17.21", + "semver": "^7.5.4", + "utf8": "^3.0.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/codec/node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/@truffle/codec/node_modules/cbor": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", + "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", + "dev": true, + "dependencies": { + "bignumber.js": "^9.0.1", + "nofilter": "^1.0.4" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@truffle/codec/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/@truffle/codec/node_modules/nofilter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", + "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@truffle/codec/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@truffle/codec/node_modules/web3-utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", + "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/codec/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/@truffle/compile-common": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.8.tgz", + "integrity": "sha512-DTpiyo32t/YhLI1spn84D3MHYHrnoVqO+Gp7ZHrYNwDs86mAxtNiH5lsVzSb8cPgiqlvNsRCU9nm9R0YmKMTBQ==", + "dev": true, + "dependencies": { + "@truffle/error": "^0.2.2", + "colors": "1.4.0" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/contract": { + "version": "4.6.31", + "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.6.31.tgz", + "integrity": "sha512-s+oHDpXASnZosiCdzu+X1Tx5mUJUs1L1CYXIcgRmzMghzqJkaUFmR6NpNo7nJYliYbO+O9/aW8oCKqQ7rCHfmQ==", + "dev": true, + "dependencies": { + "@ensdomains/ensjs": "^2.1.0", + "@truffle/blockchain-utils": "^0.1.9", + "@truffle/contract-schema": "^3.4.16", + "@truffle/debug-utils": "^6.0.57", + "@truffle/error": "^0.2.2", + "@truffle/interface-adapter": "^0.5.37", + "bignumber.js": "^7.2.1", + "debug": "^4.3.1", + "ethers": "^4.0.32", + "web3": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/contract-schema": { + "version": "3.4.16", + "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.16.tgz", + "integrity": "sha512-g0WNYR/J327DqtJPI70ubS19K1Fth/1wxt2jFqLsPmz5cGZVjCwuhiie+LfBde4/Mc9QR8G+L3wtmT5cyoBxAg==", + "dev": true, + "dependencies": { + "ajv": "^6.10.0", + "debug": "^4.3.1" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/contract/node_modules/@ethereumjs/common": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", + "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "dev": true, + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.1" + } + }, + "node_modules/@truffle/contract/node_modules/@ethereumjs/tx": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", + "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "^2.5.0", + "ethereumjs-util": "^7.1.2" + } + }, + "node_modules/@truffle/contract/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/@truffle/contract/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==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/@truffle/contract/node_modules/eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/@truffle/contract/node_modules/eth-lib/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dev": true, + "dependencies": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "node_modules/@truffle/contract/node_modules/ethers/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/@truffle/contract/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==", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/web3": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", + "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "web3-bzz": "1.10.0", + "web3-core": "1.10.0", + "web3-eth": "1.10.0", + "web3-eth-personal": "1.10.0", + "web3-net": "1.10.0", + "web3-shh": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-bzz": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", + "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/node": "^12.12.6", + "got": "12.1.0", + "swarm-js": "^0.1.40" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", + "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.1", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-requestmanager": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-core-method": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", + "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", + "dev": true, + "dependencies": { + "@ethersproject/transactions": "^5.6.2", + "web3-core-helpers": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-core-requestmanager": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", + "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", + "dev": true, + "dependencies": { + "util": "^0.12.5", + "web3-core-helpers": "1.10.0", + "web3-providers-http": "1.10.0", + "web3-providers-ipc": "1.10.0", + "web3-providers-ws": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-core-subscriptions": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", + "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", + "dev": true, + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-core/node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/@truffle/contract/node_modules/web3-eth": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", + "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", + "dev": true, + "dependencies": { + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-eth-accounts": "1.10.0", + "web3-eth-contract": "1.10.0", + "web3-eth-ens": "1.10.0", + "web3-eth-iban": "1.10.0", + "web3-eth-personal": "1.10.0", + "web3-net": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-eth-accounts": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", + "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "2.5.0", + "@ethereumjs/tx": "3.3.2", + "eth-lib": "0.2.8", + "ethereumjs-util": "^7.1.5", + "scrypt-js": "^3.0.1", + "uuid": "^9.0.0", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-eth-accounts/node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/web3-eth-accounts/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@truffle/contract/node_modules/web3-eth-contract": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", + "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.1", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-eth-ens": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", + "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", + "dev": true, + "dependencies": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-eth-contract": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-eth-personal": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", + "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", + "dev": true, + "dependencies": { + "@types/node": "^12.12.6", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-net": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-net": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", + "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", + "dev": true, + "dependencies": { + "web3-core": "1.10.0", + "web3-core-method": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-providers-http": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", + "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", + "dev": true, + "dependencies": { + "abortcontroller-polyfill": "^1.7.3", + "cross-fetch": "^3.1.4", + "es6-promise": "^4.2.8", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-providers-ipc": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", + "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", + "dev": true, + "dependencies": { + "oboe": "2.1.5", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-providers-ws": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", + "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", + "dev": true, + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.0", + "websocket": "^1.0.32" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-shh": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", + "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "web3-core": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-net": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", + "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/debug-utils": { + "version": "6.0.57", + "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.57.tgz", + "integrity": "sha512-Q6oI7zLaeNLB69ixjwZk2UZEWBY6b2OD1sjLMGDKBGR7GaHYiw96GLR2PFgPH1uwEeLmV4N78LYaQCrDsHbNeA==", + "dev": true, + "dependencies": { + "@truffle/codec": "^0.17.3", + "@trufflesuite/chromafi": "^3.0.0", + "bn.js": "^5.1.3", + "chalk": "^2.4.2", + "debug": "^4.3.1", + "highlightjs-solidity": "^2.0.6" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/error": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.2.tgz", + "integrity": "sha512-TqbzJ0O8DHh34cu8gDujnYl4dUl6o2DE4PR6iokbybvnIm/L2xl6+Gv1VC+YJS45xfH83Yo3/Zyg/9Oq8/xZWg==", + "dev": true, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/hdwallet": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@truffle/hdwallet/-/hdwallet-0.1.4.tgz", + "integrity": "sha512-D3SN0iw3sMWUXjWAedP6RJtopo9qQXYi80inzbtcsoso4VhxFxCwFvCErCl4b27AEJ9pkAtgnxEFRaSKdMmi1Q==", + "dependencies": { + "ethereum-cryptography": "1.1.2", + "keccak": "3.0.2", + "secp256k1": "4.0.3" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/hdwallet-provider": { + "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==", + "dependencies": { + "@ethereumjs/common": "^2.4.0", + "@ethereumjs/tx": "^3.3.0", + "@metamask/eth-sig-util": "4.0.1", + "@truffle/hdwallet": "^0.1.4", + "@types/ethereum-protocol": "^1.0.0", + "@types/web3": "1.0.20", + "@types/web3-provider-engine": "^14.0.0", + "ethereum-cryptography": "1.1.2", + "ethereum-protocol": "^1.0.1", + "ethereumjs-util": "^7.1.5", + "web3": "1.10.0", + "web3-provider-engine": "16.0.3" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/@ethereumjs/common": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", + "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.1" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/@ethereumjs/tx": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", + "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", + "dependencies": { + "@ethereumjs/common": "^2.5.0", + "ethereumjs-util": "^7.1.2" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/@noble/hashes": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", + "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@truffle/hdwallet-provider/node_modules/@scure/bip32": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz", + "integrity": "sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.1.1", + "@noble/secp256k1": "~1.6.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/@scure/bip39": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", + "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.1.1", + "@scure/base": "~1.1.0" + } + }, + "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/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "engines": { + "node": "*" + } + }, + "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/eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/eth-lib/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/@truffle/hdwallet-provider/node_modules/ethereum-cryptography": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz", + "integrity": "sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ==", + "dependencies": { + "@noble/hashes": "1.1.2", + "@noble/secp256k1": "1.6.3", + "@scure/bip32": "1.1.0", + "@scure/bip39": "1.1.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/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==", + "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/@truffle/hdwallet-provider/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", + "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", + "hasInstallScript": true, + "dependencies": { + "web3-bzz": "1.10.0", + "web3-core": "1.10.0", + "web3-eth": "1.10.0", + "web3-eth-personal": "1.10.0", + "web3-net": "1.10.0", + "web3-shh": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-bzz": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", + "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", + "hasInstallScript": true, + "dependencies": { + "@types/node": "^12.12.6", + "got": "12.1.0", + "swarm-js": "^0.1.40" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", + "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", + "dependencies": { + "@types/bn.js": "^5.1.1", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-requestmanager": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-core-method": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", + "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", + "dependencies": { + "@ethersproject/transactions": "^5.6.2", + "web3-core-helpers": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-core-requestmanager": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", + "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", + "dependencies": { + "util": "^0.12.5", + "web3-core-helpers": "1.10.0", + "web3-providers-http": "1.10.0", + "web3-providers-ipc": "1.10.0", + "web3-providers-ws": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-core-subscriptions": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", + "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", + "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", + "dependencies": { + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-eth-accounts": "1.10.0", + "web3-eth-contract": "1.10.0", + "web3-eth-ens": "1.10.0", + "web3-eth-iban": "1.10.0", + "web3-eth-personal": "1.10.0", + "web3-net": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth-accounts": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", + "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", + "dependencies": { + "@ethereumjs/common": "2.5.0", + "@ethereumjs/tx": "3.3.2", + "eth-lib": "0.2.8", + "ethereumjs-util": "^7.1.5", + "scrypt-js": "^3.0.1", + "uuid": "^9.0.0", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth-contract": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", + "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", + "dependencies": { + "@types/bn.js": "^5.1.1", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth-ens": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", + "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", + "dependencies": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-eth-contract": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth-personal": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", + "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", + "dependencies": { + "@types/node": "^12.12.6", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-net": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-net": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", + "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", + "dependencies": { + "web3-core": "1.10.0", + "web3-core-method": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-providers-http": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", + "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", + "dependencies": { + "abortcontroller-polyfill": "^1.7.3", + "cross-fetch": "^3.1.4", + "es6-promise": "^4.2.8", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-providers-ipc": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", + "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", + "dependencies": { + "oboe": "2.1.5", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-providers-ws": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", + "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.0", + "websocket": "^1.0.32" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-shh": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", + "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", + "hasInstallScript": true, + "dependencies": { + "web3-core": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-net": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", + "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet/node_modules/@noble/hashes": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", + "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@truffle/hdwallet/node_modules/@scure/bip32": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz", + "integrity": "sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.1.1", + "@noble/secp256k1": "~1.6.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@truffle/hdwallet/node_modules/@scure/bip39": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", + "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.1.1", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@truffle/hdwallet/node_modules/ethereum-cryptography": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz", + "integrity": "sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ==", + "dependencies": { + "@noble/hashes": "1.1.2", + "@noble/secp256k1": "1.6.3", + "@scure/bip32": "1.1.0", + "@scure/bip39": "1.1.0" + } + }, + "node_modules/@truffle/hdwallet/node_modules/keccak": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", + "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@truffle/interface-adapter": { + "version": "0.5.37", + "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.37.tgz", + "integrity": "sha512-lPH9MDgU+7sNDlJSClwyOwPCfuOimqsCx0HfGkznL3mcFRymc1pukAR1k17zn7ErHqBwJjiKAZ6Ri72KkS+IWw==", + "dev": true, + "dependencies": { + "bn.js": "^5.1.3", + "ethers": "^4.0.32", + "web3": "1.10.0" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/@ethereumjs/common": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", + "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "dev": true, + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.1" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/@ethereumjs/tx": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", + "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "^2.5.0", + "ethereumjs-util": "^7.1.2" + } + }, + "node_modules/@truffle/interface-adapter/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/@truffle/interface-adapter/node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/@truffle/interface-adapter/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==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/eth-lib/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dev": true, + "dependencies": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/ethers/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/@truffle/interface-adapter/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==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/web3": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", + "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "web3-bzz": "1.10.0", + "web3-core": "1.10.0", + "web3-eth": "1.10.0", + "web3-eth-personal": "1.10.0", + "web3-net": "1.10.0", + "web3-shh": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-bzz": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", + "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/node": "^12.12.6", + "got": "12.1.0", + "swarm-js": "^0.1.40" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", + "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.1", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-requestmanager": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-core-method": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", + "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", + "dev": true, + "dependencies": { + "@ethersproject/transactions": "^5.6.2", + "web3-core-helpers": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-core-requestmanager": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", + "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", + "dev": true, + "dependencies": { + "util": "^0.12.5", + "web3-core-helpers": "1.10.0", + "web3-providers-http": "1.10.0", + "web3-providers-ipc": "1.10.0", + "web3-providers-ws": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-core-subscriptions": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", + "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", + "dev": true, + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-eth": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", + "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", + "dev": true, + "dependencies": { + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-eth-accounts": "1.10.0", + "web3-eth-contract": "1.10.0", + "web3-eth-ens": "1.10.0", + "web3-eth-iban": "1.10.0", + "web3-eth-personal": "1.10.0", + "web3-net": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", + "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "2.5.0", + "@ethereumjs/tx": "3.3.2", + "eth-lib": "0.2.8", + "ethereumjs-util": "^7.1.5", + "scrypt-js": "^3.0.1", + "uuid": "^9.0.0", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts/node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-contract": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", + "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.1", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-ens": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", + "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", + "dev": true, + "dependencies": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-eth-contract": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-personal": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", + "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", + "dev": true, + "dependencies": { + "@types/node": "^12.12.6", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-net": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-net": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", + "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", + "dev": true, + "dependencies": { + "web3-core": "1.10.0", + "web3-core-method": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-providers-http": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", + "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", + "dev": true, + "dependencies": { + "abortcontroller-polyfill": "^1.7.3", + "cross-fetch": "^3.1.4", + "es6-promise": "^4.2.8", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-providers-ipc": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", + "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", + "dev": true, + "dependencies": { + "oboe": "2.1.5", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-providers-ws": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", + "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", + "dev": true, + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.0", + "websocket": "^1.0.32" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-shh": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", + "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "web3-core": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-net": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", + "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@trufflesuite/bigint-buffer": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.9.tgz", + "integrity": "sha512-bdM5cEGCOhDSwminryHJbRmXc1x7dPKg6Pqns3qyTwFlxsqUgxE29lsERS3PlIW1HTjoIGMUqsk1zQQwST1Yxw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "node-gyp-build": "4.3.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@trufflesuite/chromafi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-3.0.0.tgz", + "integrity": "sha512-oqWcOqn8nT1bwlPPfidfzS55vqcIDdpfzo3HbU9EnUmcSTX+I8z0UyUFI3tZQjByVJulbzxHxUGS3ZJPwK/GPQ==", + "dev": true, + "dependencies": { + "camelcase": "^4.1.0", + "chalk": "^2.3.2", + "cheerio": "^1.0.0-rc.2", + "detect-indent": "^5.0.0", + "highlight.js": "^10.4.1", + "lodash.merge": "^4.6.2", + "strip-ansi": "^4.0.0", + "strip-indent": "^2.0.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "devOptional": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "devOptional": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "devOptional": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "devOptional": true + }, + "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==", + "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" + } + }, + "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==", + "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", + "hardhat": "^2.9.9", + "typechain": "^8.1.1" + } + }, + "node_modules/@typechain/hardhat/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "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.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@types/abstract-leveldown": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.3.tgz", + "integrity": "sha512-YAdL8tIYbiKoFjAf/0Ir3mvRJ/iFvBP/FK0I8Xa5rGWgVcq0xWOEInzlJfs6TIPWFweEOTKgNSBdxneUcHRvaw==", + "dev": true + }, + "node_modules/@types/bignumber.js": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/bignumber.js/-/bignumber.js-5.0.0.tgz", + "integrity": "sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA==", + "deprecated": "This is a stub types definition for bignumber.js (https://github.com/MikeMcl/bignumber.js/). bignumber.js provides its own type definitions, so you don't need @types/bignumber.js installed!", + "dev": true, + "dependencies": { + "bignumber.js": "*" + } + }, + "node_modules/@types/bn.js": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.2.tgz", + "integrity": "sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/chai": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==", + "dev": true + }, + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ethereum-protocol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/ethereum-protocol/-/ethereum-protocol-1.0.3.tgz", + "integrity": "sha512-peaCYb+wAT3Gnttt8Ep6+b3ciVK+mWX5wyVnJiDtmWXU1c9RXi5qDxEjGyZrjU/9EYdXPd3hMiXXBjDDPu96yQ==", + "dependencies": { + "bignumber.js": "7.2.1" + } + }, + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz", + "integrity": "sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", + "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/level-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/level-errors/-/level-errors-3.0.0.tgz", + "integrity": "sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ==", + "dev": true + }, + "node_modules/@types/levelup": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@types/levelup/-/levelup-4.3.3.tgz", + "integrity": "sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA==", + "dev": true, + "dependencies": { + "@types/abstract-leveldown": "*", + "@types/level-errors": "*", + "@types/node": "*" + } + }, + "node_modules/@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==" + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true + }, + "node_modules/@types/mkdirp": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", + "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/mocha": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", + "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.18.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.0.tgz", + "integrity": "sha512-3xA4X31gHT1F1l38ATDIL9GpRLdwVhnEFC8Uikv5ZLlXATwrCYyPq7ZWHxzxc3J/30SUiwiYT+bQe0/XvKlWbw==" + }, + "node_modules/@types/node-fetch": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.6.tgz", + "integrity": "sha512-95X8guJYhfqiuVVhRFxVQcf4hW/2bCuoPwDasMf/531STFoNoWTT7YDnWdXHEZKqAGUigmpG31r2FE70LwnzJw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/prettier": { + "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 + }, + "node_modules/@types/qs": { + "version": "6.9.8", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", + "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==", + "dev": true + }, + "node_modules/@types/readable-stream": { + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz", + "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==", + "dependencies": { + "@types/node": "*", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/@types/readable-stream/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/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/secp256k1": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.4.tgz", + "integrity": "sha512-oN0PFsYxDZnX/qSJ5S5OwaEDTYfekhvaM5vqui2bu1AA39pKofmgL104Q29KiOXizXS2yLjSzc5YdTyMKdcy4A==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", + "dev": true + }, + "node_modules/@types/sinon": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.3.tgz", + "integrity": "sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==", + "dev": true, + "peer": true, + "dependencies": { + "@types/sinonjs__fake-timers": "*" + } + }, + "node_modules/@types/sinon-chai": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.12.tgz", + "integrity": "sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ==", + "dev": true, + "peer": true, + "dependencies": { + "@types/chai": "*", + "@types/sinon": "*" + } + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz", + "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==", + "dev": true, + "peer": true + }, + "node_modules/@types/underscore": { + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/@types/underscore/-/underscore-1.11.9.tgz", + "integrity": "sha512-M63wKUdsjDFUfyFt1TCUZHGFk9KDAa5JP0adNUErbm0U45Lr06HtANdYRP+GyleEopEoZ4UyBcdAC5TnW4Uz2w==" + }, + "node_modules/@types/web3": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/@types/web3/-/web3-1.0.20.tgz", + "integrity": "sha512-KTDlFuYjzCUlBDGt35Ir5QRtyV9klF84MMKUsEJK10sTWga/71V+8VYLT7yysjuBjaOx2uFYtIWNGoz3yrNDlg==", + "dependencies": { + "@types/bn.js": "*", + "@types/underscore": "*" + } + }, + "node_modules/@types/web3-provider-engine": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@types/web3-provider-engine/-/web3-provider-engine-14.0.2.tgz", + "integrity": "sha512-i+vgIh873kDu6MnYZkIqrho4JCan1c8TcPnYY6te2lq1ODD4SPA8JxFCyQjK+vwbLMr5F3N/I37AfK/wxiyuEA==", + "dependencies": { + "@types/ethereum-protocol": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "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==", + "dev": true + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", + "dev": true + }, + "node_modules/abortcontroller-polyfill": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", + "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==" + }, + "node_modules/abstract-level": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", + "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", + "dependencies": { + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/abstract-level/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "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.2.1" + } + }, + "node_modules/abstract-leveldown": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", + "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "immediate": "^3.2.3", + "level-concat-iterator": "~2.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/abstract-leveldown/node_modules/level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "dev": true, + "dependencies": { + "xtend": "^4.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "devOptional": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "devOptional": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "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, + "optional": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/antlr4": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.13.1.tgz", + "integrity": "sha512-kiXTspaRYvnIArgE97z5YVVf/cDVQABr3abFRR6mE7yesLMkgu4ujuyV/sgxafQ8wgve0DJQUJ38Z8tkgA2izA==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/antlr4ts": { + "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 + }, + "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==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "devOptional": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", + "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "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==", + "engines": { + "node": "*" + } + }, + "node_modules/ast-parents": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz", + "integrity": "sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==", + "dev": true + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-eventemitter": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", + "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", + "dependencies": { + "async": "^2.4.0" + } + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "node_modules/async-mutex": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz", + "integrity": "sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/async-mutex/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "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, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz", + "integrity": "sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.2", + "core-js-compat": "^3.32.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/backoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", + "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", + "dependencies": { + "precond": "0.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "node_modules/big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/big.js": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", + "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bigjs" + } + }, + "node_modules/bigint-crypto-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz", + "integrity": "sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/bignumber.js": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", + "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", + "engines": { + "node": "*" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bip39": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz", + "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==", + "dev": true, + "dependencies": { + "@types/node": "11.11.6", + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1" + } + }, + "node_modules/bip39/node_modules/@types/node": { + "version": "11.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", + "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==", + "dev": true + }, + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "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/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browser-level": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", + "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", + "dependencies": { + "abstract-level": "^1.0.2", + "catering": "^2.1.1", + "module-error": "^1.0.2", + "run-parallel-limit": "^1.1.0" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-aes/node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "node_modules/browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "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/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-reverse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz", + "integrity": "sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==" + }, + "node_modules/buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==" + }, + "node_modules/buffer-xor": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", + "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.1" + } + }, + "node_modules/bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/bufio": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bufio/-/bufio-1.2.1.tgz", + "integrity": "sha512-9oR3zNdupcg/Ge2sSHQF3GX+kmvL/fTPvD0nd5AGLq8SjUYnTz+SlFjK/GXidndbZtIj+pVKXiWeR9w6e9wKCA==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "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": ">=10" + } + }, + "node_modules/builtins/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "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/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "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": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", + "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", + "engines": { + "node": ">=10.6.0" + } + }, + "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/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/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/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001576", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", + "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/case": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz", + "integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/catering": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", + "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cbor": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", + "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", + "dev": true, + "dependencies": { + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=12.19" + } + }, + "node_modules/chai": { + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.8.tgz", + "integrity": "sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/change-case": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz", + "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==", + "dev": true, + "dependencies": { + "camel-case": "^3.0.0", + "constant-case": "^2.0.0", + "dot-case": "^2.1.0", + "header-case": "^1.0.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "no-case": "^2.3.2", + "param-case": "^2.1.0", + "pascal-case": "^2.0.0", + "path-case": "^2.1.0", + "sentence-case": "^2.1.0", + "snake-case": "^2.1.0", + "swap-case": "^1.1.0", + "title-case": "^2.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.0" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "engines": { + "node": "*" + } + }, + "node_modules/checkpoint-store": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", + "integrity": "sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg==", + "dependencies": { + "functional-red-black-tree": "^1.0.1" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dev": true, + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "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" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/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/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "node_modules/cids": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", + "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", + "deprecated": "This module has been superseded by the multiformats module", + "dependencies": { + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "^1.0.0", + "multihashes": "~0.4.15" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/cids/node_modules/multicodec": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", + "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", + "deprecated": "This module has been superseded by the multiformats module", + "dependencies": { + "buffer": "^5.6.0", + "varint": "^5.0.0" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/class-is": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", + "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" + }, + "node_modules/classic-level": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz", + "integrity": "sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==", + "hasInstallScript": true, + "dependencies": { + "abstract-level": "^1.0.2", + "catering": "^2.1.0", + "module-error": "^1.0.1", + "napi-macros": "^2.2.2", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true, + "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", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dev": true, + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "dev": true, + "dependencies": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/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/concat-stream/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" + } + }, + "node_modules/concat-stream/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/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, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/constant-case": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", + "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==", + "dev": true, + "dependencies": { + "snake-case": "^2.1.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-hash": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", + "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", + "dependencies": { + "cids": "^0.7.1", + "multicodec": "^0.5.5", + "multihashes": "^0.4.15" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "peer": true + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-js-compat": { + "version": "3.32.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz", + "integrity": "sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==", + "dependencies": { + "browserslist": "^4.21.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.32.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.32.2.tgz", + "integrity": "sha512-Y2rxThOuNywTjnX/PgA5vWM6CZ9QB9sz9oGeCixV8MqXZO70z/5SHzf9EeBrEBK0PN36DnEBBu9O/aGWzKuMZQ==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "devOptional": true + }, + "node_modules/cross-fetch": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", + "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==", + "dependencies": { + "node-fetch": "^2.6.7", + "whatwg-fetch": "^2.0.4" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/crypto-addr-codec": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.8.tgz", + "integrity": "sha512-GqAK90iLLgP3FvhNmHbpT3wR6dEdaM8hZyZtLX29SPardh3OA13RFLHDR6sntGCgRWOfiHqW6sIyohpNqOtV/g==", + "dev": true, + "dependencies": { + "base-x": "^3.0.8", + "big-integer": "1.6.36", + "blakejs": "^1.1.0", + "bs58": "^4.0.1", + "ripemd160-min": "0.0.6", + "safe-buffer": "^5.2.0", + "sha3": "^2.1.1" + } + }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/death": { + "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 + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "engines": { + "node": ">=0.10" + } + }, + "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/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": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "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 + }, + "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_modules/deferred-leveldown": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", + "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", + "dev": true, + "dependencies": { + "abstract-leveldown": "~6.2.1", + "inherits": "^2.0.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deferred-leveldown/node_modules/abstract-leveldown": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", + "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "immediate": "^3.2.3", + "level-concat-iterator": "~2.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deferred-leveldown/node_modules/level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "dev": true, + "dependencies": { + "xtend": "^4.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/define-data-property": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", + "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-indent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/detect-port": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", + "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "dev": true, + "dependencies": { + "address": "^1.0.1", + "debug": "4" + }, + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" + } + }, + "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==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/difflib": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", + "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", + "dev": true, + "dependencies": { + "heap": ">= 0.2.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.628", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.628.tgz", + "integrity": "sha512-2k7t5PHvLsufpP6Zwk0nof62yLOsCf032wZx7/q0mv8gwlXjhcxI3lz6f0jBr0GrnWKcm3burXzI3t5IrcdUxw==" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/emittery": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz", + "integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding-down": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", + "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", + "dev": true, + "dependencies": { + "abstract-leveldown": "^6.2.1", + "inherits": "^2.0.3", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/enquirer/node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/enquirer/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/enquirer/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", + "dev": true, + "dependencies": { + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.12.0" + }, + "optionalDependencies": { + "source-map": "~0.2.0" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", + "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.50.0", + "@humanwhocodes/config-array": "^0.11.11", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "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" + } + ], + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-es-x": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.2.0.tgz", + "integrity": "sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.6.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.8.0", + "has": "^1.0.3", + "is-core-module": "^2.13.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", + "object.values": "^1.1.6", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-n": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.1.0.tgz", + "integrity": "sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "builtins": "^5.0.1", + "eslint-plugin-es-x": "^7.1.0", + "get-tsconfig": "^4.7.0", + "ignore": "^5.2.4", + "is-core-module": "^2.12.1", + "minimatch": "^3.1.2", + "resolve": "^1.22.2", + "semver": "^7.5.3" + }, + "engines": { + "node": ">=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-n/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/eslint-plugin-n/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-n/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/eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "dev": true, + "dependencies": { + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/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==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "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, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eth-block-tracker": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", + "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", + "dependencies": { + "@babel/plugin-transform-runtime": "^7.5.5", + "@babel/runtime": "^7.5.5", + "eth-query": "^2.1.0", + "json-rpc-random-id": "^1.0.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/eth-block-tracker/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "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==" + }, + "node_modules/eth-gas-reporter": { + "version": "0.2.25", + "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.25.tgz", + "integrity": "sha512-1fRgyE4xUB8SoqLgN3eDfpDfwEfRxh2Sz1b7wzFbyQA+9TekMmvSjjoRu9SKcSVyK+vLkLIsVbJDsTWjw195OQ==", + "dev": true, + "dependencies": { + "@ethersproject/abi": "^5.0.0-beta.146", + "@solidity-parser/parser": "^0.14.0", + "cli-table3": "^0.5.0", + "colors": "1.4.0", + "ethereum-cryptography": "^1.0.3", + "ethers": "^4.0.40", + "fs-readdir-recursive": "^1.1.0", + "lodash": "^4.17.14", + "markdown-table": "^1.1.3", + "mocha": "^7.1.1", + "req-cwd": "^2.0.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.5", + "sha1": "^1.1.1", + "sync-request": "^6.0.0" + }, + "peerDependencies": { + "@codechecks/client": "^0.1.0" + }, + "peerDependenciesMeta": { + "@codechecks/client": { + "optional": true + } + } + }, + "node_modules/eth-gas-reporter/node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/eth-gas-reporter/node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/eth-gas-reporter/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/eth-gas-reporter/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/eth-gas-reporter/node_modules/ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/eth-gas-reporter/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/eth-gas-reporter/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.1" + } + }, + "node_modules/eth-gas-reporter/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eth-gas-reporter/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/eth-gas-reporter/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/eth-gas-reporter/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eth-gas-reporter/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/eth-gas-reporter/node_modules/ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dev": true, + "dependencies": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/flat": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", + "dev": true, + "dependencies": { + "is-buffer": "~2.0.3" + }, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/eth-gas-reporter/node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "deprecated": "\"Please update to latest v2.3 or v2.2\"", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eth-gas-reporter/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/eth-gas-reporter/node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/eth-gas-reporter/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==", + "dev": true + }, + "node_modules/eth-gas-reporter/node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eth-gas-reporter/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eth-gas-reporter/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eth-gas-reporter/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/eth-gas-reporter/node_modules/mocha": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", + "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", + "dev": true, + "dependencies": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.5", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/eth-gas-reporter/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/eth-gas-reporter/node_modules/object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eth-gas-reporter/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eth-gas-reporter/node_modules/readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eth-gas-reporter/node_modules/scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", + "dev": true + }, + "node_modules/eth-gas-reporter/node_modules/setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", + "dev": true + }, + "node_modules/eth-gas-reporter/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true + }, + "node_modules/eth-gas-reporter/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/eth-gas-reporter/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/eth-gas-reporter/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/eth-gas-reporter/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "dependencies": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-json-rpc-filters": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz", + "integrity": "sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw==", + "dependencies": { + "@metamask/safe-event-emitter": "^2.0.0", + "async-mutex": "^0.2.6", + "eth-json-rpc-middleware": "^6.0.0", + "eth-query": "^2.1.2", + "json-rpc-engine": "^6.1.0", + "pify": "^5.0.0" + } + }, + "node_modules/eth-json-rpc-filters/node_modules/pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eth-json-rpc-infura": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-5.1.0.tgz", + "integrity": "sha512-THzLye3PHUSGn1EXMhg6WTLW9uim7LQZKeKaeYsS9+wOBcamRiCQVGHa6D2/4P0oS0vSaxsBnU/J6qvn0MPdow==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "eth-json-rpc-middleware": "^6.0.0", + "eth-rpc-errors": "^3.0.0", + "json-rpc-engine": "^5.3.0", + "node-fetch": "^2.6.0" + } + }, + "node_modules/eth-json-rpc-infura/node_modules/json-rpc-engine": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", + "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", + "dependencies": { + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/eth-json-rpc-middleware": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz", + "integrity": "sha512-qqBfLU2Uq1Ou15Wox1s+NX05S9OcAEL4JZ04VZox2NS0U+RtCMjSxzXhLFWekdShUPZ+P8ax3zCO2xcPrp6XJQ==", + "dependencies": { + "btoa": "^1.2.1", + "clone": "^2.1.1", + "eth-query": "^2.1.2", + "eth-rpc-errors": "^3.0.0", + "eth-sig-util": "^1.4.2", + "ethereumjs-util": "^5.1.2", + "json-rpc-engine": "^5.3.0", + "json-stable-stringify": "^1.0.1", + "node-fetch": "^2.6.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/eth-json-rpc-middleware/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/eth-json-rpc-middleware/node_modules/json-rpc-engine": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", + "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", + "dependencies": { + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/eth-json-rpc-middleware/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/eth-lib": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", + "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/eth-lib/node_modules/bn.js": { + "version": "4.12.0", + "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", + "integrity": "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==", + "dependencies": { + "json-rpc-random-id": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "node_modules/eth-rpc-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", + "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", + "dependencies": { + "fast-safe-stringify": "^2.0.6" + } + }, + "node_modules/eth-sig-util": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", + "integrity": "sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw==", + "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", + "dependencies": { + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-util": "^5.1.1" + } + }, + "node_modules/eth-sig-util/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/eth-sig-util/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereum-bloom-filters": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", + "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "dependencies": { + "js-sha3": "^0.8.0" + } + }, + "node_modules/ethereum-common": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" + }, + "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==", + "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/ethereum-protocol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz", + "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg==" + }, + "node_modules/ethereum-waffle": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/ethereum-waffle/-/ethereum-waffle-4.0.10.tgz", + "integrity": "sha512-iw9z1otq7qNkGDNcMoeNeLIATF9yKl1M8AIeu42ElfNBplq0e+5PeasQmm8ybY/elkZ1XyRO0JBQxQdVRb8bqQ==", + "dev": true, + "dependencies": { + "@ethereum-waffle/chai": "4.0.10", + "@ethereum-waffle/compiler": "4.0.3", + "@ethereum-waffle/mock-contract": "4.0.4", + "@ethereum-waffle/provider": "4.0.5", + "solc": "0.8.15", + "typechain": "^8.0.0" + }, + "bin": { + "waffle": "bin/waffle" + }, + "engines": { + "node": ">=10.0" + }, + "peerDependencies": { + "ethers": "*" + } + }, + "node_modules/ethereum-waffle/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ethereum-waffle/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ethereum-waffle/node_modules/solc": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.15.tgz", + "integrity": "sha512-Riv0GNHNk/SddN/JyEuFKwbcWcEeho15iyupTSHw5Np6WuXA5D8kEHbyzDHi6sqmvLzu2l+8b1YmL8Ytple+8w==", + "dev": true, + "dependencies": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solc.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git", + "integrity": "sha512-qs8G5KwnIO/thOQjv1RvR/4oiTsy6IaCsN+ory5dbiqFXz8sd239aWJH0wmsVNPimL5X1KzQheUpi6xAo6FU4w==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ethereumjs-abi/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ethereumjs-abi/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ethereumjs-account": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", + "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", + "dependencies": { + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-account/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-account/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-block": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", + "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", + "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", + "dependencies": { + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + } + }, + "node_modules/ethereumjs-block/node_modules/abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ethereumjs-block/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-block/node_modules/deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "dependencies": { + "abstract-leveldown": "~2.6.0" + } + }, + "node_modules/ethereumjs-block/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-block/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/ethereumjs-block/node_modules/level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" + }, + "node_modules/ethereumjs-block/node_modules/level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "dependencies": { + "errno": "~0.1.1" + } + }, + "node_modules/ethereumjs-block/node_modules/level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", + "dependencies": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + } + }, + "node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/ethereumjs-block/node_modules/level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", + "dependencies": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + } + }, + "node_modules/ethereumjs-block/node_modules/level-ws/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/ethereumjs-block/node_modules/level-ws/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ethereumjs-block/node_modules/level-ws/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/ethereumjs-block/node_modules/level-ws/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/ethereumjs-block/node_modules/levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "dependencies": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + } + }, + "node_modules/ethereumjs-block/node_modules/memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", + "dependencies": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/ethereumjs-block/node_modules/memdown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ethereumjs-block/node_modules/merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "dependencies": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + } + }, + "node_modules/ethereumjs-block/node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" + }, + "node_modules/ethereumjs-block/node_modules/object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==" + }, + "node_modules/ethereumjs-block/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==", + "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" + } + }, + "node_modules/ethereumjs-block/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/ethereumjs-block/node_modules/semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ethereumjs-block/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==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/ethereumjs-common": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", + "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==", + "deprecated": "New package name format for new versions: @ethereumjs/common. Please update." + }, + "node_modules/ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", + "dependencies": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "node_modules/ethereumjs-tx/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-tx/node_modules/ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ==" + }, + "node_modules/ethereumjs-tx/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-util": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz", + "integrity": "sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ethereumjs-vm": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", + "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", + "deprecated": "New package name format for new versions: @ethereumjs/vm. Please update.", + "dependencies": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-vm/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ethereumjs-vm/node_modules/abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ethereumjs-vm/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-vm/node_modules/deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "dependencies": { + "abstract-leveldown": "~2.6.0" + } + }, + "node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", + "dependencies": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + } + }, + "node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", + "dependencies": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ethereumjs-vm/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ethereumjs-vm/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/ethereumjs-vm/node_modules/level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" + }, + "node_modules/ethereumjs-vm/node_modules/level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "dependencies": { + "errno": "~0.1.1" + } + }, + "node_modules/ethereumjs-vm/node_modules/level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", + "dependencies": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + } + }, + "node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/ethereumjs-vm/node_modules/level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", + "dependencies": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + } + }, + "node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/ethereumjs-vm/node_modules/levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "dependencies": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + } + }, + "node_modules/ethereumjs-vm/node_modules/memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", + "dependencies": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/ethereumjs-vm/node_modules/memdown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "dependencies": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + } + }, + "node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" + }, + "node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-vm/node_modules/object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==" + }, + "node_modules/ethereumjs-vm/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==", + "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" + } + }, + "node_modules/ethereumjs-vm/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/ethereumjs-vm/node_modules/semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ethereumjs-vm/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==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "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/ethers-eip712": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ethers-eip712/-/ethers-eip712-0.2.0.tgz", + "integrity": "sha512-fgS196gCIXeiLwhsWycJJuxI9nL/AoUPGSQ+yvd+8wdWR+43G+J1n69LmWVWvAON0M6qNaf2BF4/M159U8fujQ==", + "peerDependencies": { + "ethers": "^4.0.47 || ^5.0.8" + } + }, + "node_modules/ethjs-abi": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz", + "integrity": "sha512-g2AULSDYI6nEJyJaEVEXtTimRY2aPC2fi7ddSy0W+LXvEVL8Fe1y76o43ecbgdUKwZD+xsmEgX1yJr1Ia3r1IA==", + "dev": true, + "dependencies": { + "bn.js": "4.11.6", + "js-sha3": "0.5.5", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ethjs-abi/node_modules/bn.js": { + "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 + }, + "node_modules/ethjs-abi/node_modules/js-sha3": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz", + "integrity": "sha512-yLLwn44IVeunwjpDVTDZmQeVbB0h+dZpY2eO68B/Zik8hu6dH+rKeLxwua79GGIvW6xr8NBAcrtiUbYrTjEFTA==", + "dev": true + }, + "node_modules/ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", + "dependencies": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "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.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fake-merkle-patricia-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", + "integrity": "sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==", + "dependencies": { + "checkpoint-store": "^1.1.0" + } + }, + "node_modules/fast-check": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz", + "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==", + "dev": true, + "dependencies": { + "pure-rand": "^5.0.1" + }, + "engines": { + "node": ">=8.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + }, + "node_modules/fast-deep-equal": { + "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==" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "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/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", + "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "dev": true, + "dependencies": { + "flatted": "^3.2.7", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data-encoder": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", + "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==" + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/fs-readdir-recursive": { + "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 + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/ganache/-/ganache-7.4.3.tgz", + "integrity": "sha512-RpEDUiCkqbouyE7+NMXG26ynZ+7sGiODU84Kz+FVoXUnQ4qQM4M8wif3Y4qUCt+D/eM1RVeGq0my62FPD6Y1KA==", + "bundleDependencies": [ + "@trufflesuite/bigint-buffer", + "emittery", + "keccak", + "leveldown", + "secp256k1", + "@types/bn.js", + "@types/lru-cache", + "@types/seedrandom" + ], + "dev": true, + "hasShrinkwrap": true, + "dependencies": { + "@trufflesuite/bigint-buffer": "1.1.10", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "5.1.1", + "@types/seedrandom": "3.0.1", + "emittery": "0.10.0", + "keccak": "3.0.2", + "leveldown": "6.1.0", + "secp256k1": "4.0.3" + }, + "bin": { + "ganache": "dist/node/cli.js", + "ganache-cli": "dist/node/cli.js" + }, + "optionalDependencies": { + "bufferutil": "4.0.5", + "utf-8-validate": "5.0.7" + } + }, + "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz", + "integrity": "sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw==", + "dev": true, + "hasInstallScript": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "node-gyp-build": "4.4.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer/node_modules/node-gyp-build": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", + "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/ganache/node_modules/@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ganache/node_modules/@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/@types/node": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz", + "integrity": "sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/@types/seedrandom": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.1.tgz", + "integrity": "sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw==", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "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" + } + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/ganache/node_modules/bufferutil": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", + "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", + "dev": true, + "optional": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + } + }, + "node_modules/ganache/node_modules/catering": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.0.tgz", + "integrity": "sha512-M5imwzQn6y+ODBfgi+cfgZv2hIUI6oYU/0f35Mdb1ujGeqeoI5tOnl9Q13DTH7LW+7er+NYq8stNOKZD/Z3U/A==", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "queue-tick": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache/node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/ganache/node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/emittery": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz", + "integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/ganache/node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/ganache/node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/ganache/node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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" + } + ], + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/ganache/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/ganache/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "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" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache/node_modules/keccak": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", + "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "dev": true, + "hasInstallScript": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ganache/node_modules/leveldown": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz", + "integrity": "sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==", + "dev": true, + "hasInstallScript": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "abstract-leveldown": "^7.2.0", + "napi-macros": "~2.0.0", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/ganache/node_modules/leveldown/node_modules/abstract-leveldown": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", + "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3", + "catering": "^2.0.0", + "is-buffer": "^2.0.5", + "level-concat-iterator": "^3.0.0", + "level-supports": "^2.0.1", + "queue-microtask": "^1.2.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ganache/node_modules/leveldown/node_modules/level-concat-iterator": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", + "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "catering": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ganache/node_modules/leveldown/node_modules/level-supports": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", + "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ganache/node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/ganache/node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/napi-macros": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", + "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/node-gyp-build": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", + "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/ganache/node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "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" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/queue-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.0.tgz", + "integrity": "sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ==", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ganache/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache/node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "dev": true, + "hasInstallScript": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ganache/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/ganache/node_modules/utf-8-validate": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", + "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", + "dev": true, + "optional": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + } + }, + "node_modules/ganache/node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/ghost-testrpc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", + "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "node-emoji": "^1.10.0" + }, + "bin": { + "testrpc-sc": "index.js" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.22.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", + "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/hardhat": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.17.3.tgz", + "integrity": "sha512-SFZoYVXW1bWJZrIIKXOA+IgcctfuKXDwENywiYNT2dM3YQc4fXNaTbuk/vpPzHIF50upByx4zW5EqczKYQubsA==", + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@metamask/eth-sig-util": "^4.0.0", + "@nomicfoundation/ethereumjs-block": "5.0.2", + "@nomicfoundation/ethereumjs-blockchain": "7.0.2", + "@nomicfoundation/ethereumjs-common": "4.0.2", + "@nomicfoundation/ethereumjs-evm": "2.0.2", + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "@nomicfoundation/ethereumjs-statemanager": "2.0.2", + "@nomicfoundation/ethereumjs-trie": "6.0.2", + "@nomicfoundation/ethereumjs-tx": "5.0.2", + "@nomicfoundation/ethereumjs-util": "9.0.2", + "@nomicfoundation/ethereumjs-vm": "7.0.2", + "@nomicfoundation/solidity-analyzer": "^0.1.0", + "@sentry/node": "^5.18.1", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "^5.1.0", + "adm-zip": "^0.4.16", + "aggregate-error": "^3.0.0", + "ansi-escapes": "^4.3.0", + "chalk": "^2.4.2", + "chokidar": "^3.4.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "ethereum-cryptography": "^1.0.3", + "ethereumjs-abi": "^0.6.8", + "find-up": "^2.1.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "glob": "7.2.0", + "immutable": "^4.0.0-rc.12", + "io-ts": "1.10.4", + "keccak": "^3.0.2", + "lodash": "^4.17.11", + "mnemonist": "^0.38.0", + "mocha": "^10.0.0", + "p-map": "^4.0.0", + "raw-body": "^2.4.1", + "resolve": "1.17.0", + "semver": "^6.3.0", + "solc": "0.7.3", + "source-map-support": "^0.5.13", + "stacktrace-parser": "^0.1.10", + "tsort": "0.0.1", + "undici": "^5.14.0", + "uuid": "^8.3.2", + "ws": "^7.4.6" + }, + "bin": { + "hardhat": "internal/cli/bootstrap.js" + }, + "peerDependencies": { + "ts-node": "*", + "typescript": "*" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/hardhat-gas-reporter": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz", + "integrity": "sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==", + "dev": true, + "dependencies": { + "array-uniq": "1.0.3", + "eth-gas-reporter": "^0.2.25", + "sha1": "^1.1.1" + }, + "peerDependencies": { + "hardhat": "^2.0.2" + } + }, + "node_modules/hardhat/node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/hardhat/node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "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==", + "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==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/hardhat/node_modules/commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==" + }, + "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==", + "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/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/hardhat/node_modules/keccak": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", + "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/hardhat/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/require-from-string": { + "version": "2.0.2", + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hardhat/node_modules/resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dependencies": { + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hardhat/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/hardhat/node_modules/solc": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", + "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", + "dependencies": { + "command-exists": "^1.2.8", + "commander": "3.0.2", + "follow-redirects": "^1.12.1", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solcjs" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/hardhat/node_modules/solc/node_modules/fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "node_modules/hardhat/node_modules/solc/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/header-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.3" + } + }, + "node_modules/heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", + "dev": true + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/highlightjs-solidity": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz", + "integrity": "sha512-DySXWfQghjm2l6a/flF+cteroJqD4gI8GSdL4PtvxZSsAHie8m3yVe2JFoRg03ROKT6hp2Lc/BxXkqerNmtQYg==", + "dev": true + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "dev": true, + "dependencies": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==" + }, + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dev": true, + "dependencies": { + "@types/node": "^10.0.3" + } + }, + "node_modules/http-response-object/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "dev": true + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "dependencies": { + "punycode": "2.1.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" + }, + "node_modules/immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/io-ts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", + "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "dependencies": { + "fp-ts": "^1.0.0" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "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", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", + "integrity": "sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg==", + "engines": { + "node": ">=0.10.0" + } + }, + "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", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/is-lower-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==", + "dev": true, + "dependencies": { + "lower-case": "^1.1.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-upper-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==", + "dev": true, + "dependencies": { + "upper-case": "^1.1.0" + } + }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "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 + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "node_modules/js-sdsl": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz", + "integrity": "sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "peer": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "dev": true, + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, + "node_modules/json-bigint/node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-rpc-engine": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz", + "integrity": "sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==", + "dependencies": { + "@metamask/safe-event-emitter": "^2.0.0", + "eth-rpc-errors": "^4.0.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/json-rpc-engine/node_modules/eth-rpc-errors": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz", + "integrity": "sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==", + "dependencies": { + "fast-safe-stringify": "^2.0.6" + } + }, + "node_modules/json-rpc-random-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", + "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", + "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", + "dependencies": { + "jsonify": "^0.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.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/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/keccak": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", + "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/keyv": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "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/klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", + "optionalDependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dev": true, + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/level": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", + "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==", + "dependencies": { + "browser-level": "^1.0.1", + "classic-level": "^1.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/level" + } + }, + "node_modules/level-codec": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", + "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", + "dev": true, + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/level-concat-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", + "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/level-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", + "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", + "dev": true, + "dependencies": { + "errno": "~0.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/level-iterator-stream": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", + "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.4.0", + "xtend": "^4.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/level-mem": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-5.0.1.tgz", + "integrity": "sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg==", + "dev": true, + "dependencies": { + "level-packager": "^5.0.3", + "memdown": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/level-packager": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", + "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", + "dev": true, + "dependencies": { + "encoding-down": "^6.3.0", + "levelup": "^4.3.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/level-supports": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", + "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/level-transcoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", + "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", + "dependencies": { + "buffer": "^6.0.3", + "module-error": "^1.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/level-transcoder/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "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.2.1" + } + }, + "node_modules/level-ws": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz", + "integrity": "sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^3.1.0", + "xtend": "^4.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/levelup": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", + "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", + "dev": true, + "dependencies": { + "deferred-leveldown": "~5.3.0", + "level-errors": "~2.0.0", + "level-iterator-stream": "~4.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/levelup/node_modules/level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "dev": true, + "dependencies": { + "xtend": "^4.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==", + "dev": true + }, + "node_modules/lodash.camelcase": { + "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 + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "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 + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "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/log-symbols/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/log-symbols/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "deprecated": "Please upgrade to 2.3.7 which fixes GHSA-4q6p-r6v2-jvc5", + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", + "dev": true + }, + "node_modules/lower-case-first": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==", + "dev": true, + "dependencies": { + "lower-case": "^1.1.2" + } + }, + "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/lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==" + }, + "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/ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==" + }, + "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==", + "devOptional": true + }, + "node_modules/markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "dev": true + }, + "node_modules/mcl-wasm": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", + "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==", + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memdown": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-5.1.0.tgz", + "integrity": "sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw==", + "dev": true, + "dependencies": { + "abstract-leveldown": "~6.2.1", + "functional-red-black-tree": "~1.0.1", + "immediate": "~3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/memdown/node_modules/abstract-leveldown": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", + "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "immediate": "^3.2.3", + "level-concat-iterator": "~2.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/memdown/node_modules/immediate": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", + "integrity": "sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg==", + "dev": true + }, + "node_modules/memdown/node_modules/level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "dev": true, + "dependencies": { + "xtend": "^4.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/memory-level": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz", + "integrity": "sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==", + "dependencies": { + "abstract-level": "^1.0.0", + "functional-red-black-tree": "^1.0.1", + "module-error": "^1.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/merkle-patricia-tree": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz", + "integrity": "sha512-eHbf/BG6eGNsqqfbLED9rIqbsF4+sykEaBn6OLNs71tjclbMcMOk1tEPmJKcNcNCLkvbpY/lwyOlizWsqPNo8w==", + "dev": true, + "dependencies": { + "@types/levelup": "^4.3.0", + "ethereumjs-util": "^7.1.4", + "level-mem": "^5.0.1", + "level-ws": "^2.0.0", + "readable-stream": "^3.6.0", + "semaphore-async-await": "^1.5.1" + } + }, + "node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/merkletreejs": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/merkletreejs/-/merkletreejs-0.3.11.tgz", + "integrity": "sha512-LJKTl4iVNTndhL+3Uz/tfkjD0klIWsHlUzgtuNnNrsf7bAlXR30m+xYB7lHr5Z/l6e/yAIsr26Dabx6Buo4VGQ==", + "dependencies": { + "bignumber.js": "^9.0.1", + "buffer-reverse": "^1.0.1", + "crypto-js": "^4.2.0", + "treeify": "^1.1.0", + "web3-utils": "^1.3.4" + }, + "engines": { + "node": ">= 7.6.0" + } + }, + "node_modules/merkletreejs/node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "engines": { + "node": "*" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micro-ftch": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", + "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==" + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", + "deprecated": "This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.", + "dependencies": { + "mkdirp": "*" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mnemonist": { + "version": "0.38.5", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", + "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "dependencies": { + "obliterator": "^2.0.0" + } + }, + "node_modules/mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "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", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mock-fs": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", + "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" + }, + "node_modules/module-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", + "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multibase": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", + "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", + "deprecated": "This module has been superseded by the multiformats module", + "dependencies": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + }, + "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/multibase": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", + "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", + "deprecated": "This module has been superseded by the multiformats module", + "dependencies": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + }, + "node_modules/nano-base32": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nano-base32/-/nano-base32-1.0.1.tgz", + "integrity": "sha512-sxEtoTqAPdjWVGv71Q17koMFGsOMSiHsIFEvzOM7cNp8BXB4AnEwmDabm5dorusJf/v1z7QxaZYxUorU9RKaAw==", + "dev": 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", + "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==" + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-macros": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz", + "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "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 + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "node_modules/no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "dependencies": { + "lower-case": "^1.1.1" + } + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node_modules/node-environment-flags/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp-build": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", + "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "dev": true, + "engines": { + "node": ">=12.19" + } + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "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/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", + "dependencies": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/number-to-bn/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz", + "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==", + "dev": true, + "dependencies": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "safe-array-concat": "^1.0.0" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obliterator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", + "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==" + }, + "node_modules/oboe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", + "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", + "dependencies": { + "http-https": "^1.0.0" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/openzeppelin-contracts-upgradeable-4.9.3": { + "name": "@openzeppelin/contracts-upgradeable", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.3.tgz", + "integrity": "sha512-jjaHAVRMrE4UuZNfDwjlLGDxTHWIOwTJS2ldnc278a0gevfXfPr8hxKEVBGFBE96kl2G3VHDZhUimw/+G3TG2A==" + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dev": true, + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } + }, + "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/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-cache-control": { + "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 + }, + "node_modules/parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dev": true, + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==", + "dev": true, + "dependencies": { + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/precond": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", + "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/prettier-plugin-solidity": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.3.tgz", + "integrity": "sha512-fQ9yucPi2sBbA2U2Xjh6m4isUTJ7S7QLc/XDDsktqqxYfTwdYKJ0EnnywXHwCGAaYbQNK+HIYPL1OemxuMsgeg==", + "dev": true, + "dependencies": { + "@solidity-parser/parser": "^0.16.0", + "semver": "^7.3.8", + "solidity-comments-extractor": "^0.0.7" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "prettier": ">=2.3.0 || >=3.0.0-alpha.0" + } + }, + "node_modules/prettier-plugin-solidity/node_modules/@solidity-parser/parser": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.1.tgz", + "integrity": "sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==", + "dev": true, + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + } + }, + "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.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "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/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "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==" + }, + "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, + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/promise-to-callback": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", + "integrity": "sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA==", + "dependencies": { + "is-fn": "^1.0.0", + "set-immediate-shim": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz", + "integrity": "sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "dependencies": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "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/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/req-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", + "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==", + "dev": true, + "dependencies": { + "req-from": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/req-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", + "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/req-from/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dev": true, + "dependencies": { + "lodash": "^4.17.19" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "engines": { + "node": ">=0.12.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "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/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/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/ripemd160-min": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", + "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/rlp": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "dependencies": { + "bn.js": "^4.11.1" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/rlp/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "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": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/run-parallel-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", + "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", + "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": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rustbn.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==" + }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/safe-event-emitter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", + "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", + "deprecated": "Renamed to @metamask/safe-event-emitter", + "dependencies": { + "events": "^3.0.0" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sc-istanbul": { + "version": "0.4.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, + "dependencies": { + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "istanbul": "lib/cli.js" + } + }, + "node_modules/sc-istanbul/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/sc-istanbul/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true + }, + "node_modules/sc-istanbul/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "dev": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sc-istanbul/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sc-istanbul/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/sc-istanbul/node_modules/js-yaml/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sc-istanbul/node_modules/resolve": { + "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 + }, + "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, + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/sc-istanbul/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "node_modules/seaport": { + "version": "1.5.0+im.1", + "resolved": "git+ssh://git@github.com/immutable/seaport.git", + "integrity": "sha512-7rZ+DcqFaql9O/f0SVMwM86w+Q4uFDD380x46iqwSamSfsBPm73msDPJC6gXP9o/v1OMkGmci3lR9b8BdjEVLA==", + "license": "MIT", + "dependencies": { + "@nomicfoundation/hardhat-network-helpers": "^1.0.7", + "@openzeppelin/contracts": "^4.9.2", + "ethers": "^5.5.3", + "ethers-eip712": "^0.2.0", + "hardhat": "^2.17.3", + "merkletreejs": "^0.3.11", + "seaport-core": "immutable/seaport-core#1.5.0+im.1", + "seaport-sol": "^1.5.0", + "seaport-types": "^0.0.1", + "solady": "^0.0.84" + }, + "engines": { + "node": ">=16.15.1" + } + }, + "node_modules/seaport-core": { + "version": "1.5.0+im.1", + "resolved": "git+ssh://git@github.com/immutable/seaport-core.git#33e9030f308500b422926a1be12d7a1e4d6adc06", + "license": "MIT", + "dependencies": { + "seaport-types": "^0.0.1" + } + }, + "node_modules/seaport-sol": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/seaport-sol/-/seaport-sol-1.5.3.tgz", + "integrity": "sha512-6g91hs15v4zBx/ZN9YD0evhQSDhdMKu83c2CgBgtc517D8ipaYaFO71ZD6V0Z6/I0cwNfuN/ZljcA1J+xXr65A==", + "dependencies": { + "seaport-core": "^0.0.1", + "seaport-types": "^0.0.1" + } + }, + "node_modules/seaport-sol/node_modules/seaport-core": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/seaport-core/-/seaport-core-0.0.1.tgz", + "integrity": "sha512-fgdSIC0ru8xK+fdDfF4bgTFH8ssr6EwbPejC2g/JsWzxy+FvG7JfaX57yn/eIv6hoscgZL87Rm+kANncgwLH3A==", + "dependencies": { + "seaport-types": "^0.0.1" + } + }, + "node_modules/seaport-types": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/seaport-types/-/seaport-types-0.0.1.tgz", + "integrity": "sha512-m7MLa7sq3YPwojxXiVvoX1PM9iNVtQIn7AdEtBnKTwgxPfGRWUlbs/oMgetpjT/ZYTmv3X5/BghOcstWYvKqRA==" + }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==", + "dev": true + }, + "node_modules/semaphore": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/semaphore-async-await": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz", + "integrity": "sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg==", + "dev": true, + "engines": { + "node": ">=4.1" + } + }, + "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/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/sentence-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0", + "upper-case-first": "^1.1.2" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "dependencies": { + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/sha1": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", + "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==", + "dev": true, + "dependencies": { + "charenc": ">= 0.0.1", + "crypt": ">= 0.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sha3": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", + "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", + "dev": true, + "dependencies": { + "buffer": "6.0.3" + } + }, + "node_modules/sha3/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "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.2.1" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "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/simple-get": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", + "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", + "dependencies": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "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", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/solady": { + "version": "0.0.84", + "resolved": "https://registry.npmjs.org/solady/-/solady-0.0.84.tgz", + "integrity": "sha512-1ccuZWcMR+g8Ont5LUTqMSFqrmEC+rYAbo6DjZFzdL7AJAtLiaOzO25BKZR10h6YBZNaqO5zUOFy09R6/AzAKQ==" + }, + "node_modules/solc": { + "version": "0.4.26", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz", + "integrity": "sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA==", + "dev": true, + "dependencies": { + "fs-extra": "^0.30.0", + "memorystream": "^0.3.1", + "require-from-string": "^1.1.0", + "semver": "^5.3.0", + "yargs": "^4.7.1" + }, + "bin": { + "solcjs": "solcjs" + } + }, + "node_modules/solc/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/solc/node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/solc/node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/solc/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/solc/node_modules/fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "node_modules/solc/node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "node_modules/solc/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/solc/node_modules/jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/solc/node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true + }, + "node_modules/solc/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/solc/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/solc/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/solc/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/solc/node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "dev": true + }, + "node_modules/solc/node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/solc/node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "node_modules/solc/node_modules/yargs": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", + "integrity": "sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA==", + "dev": true, + "dependencies": { + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "lodash.assign": "^4.0.3", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.1", + "which-module": "^1.0.0", + "window-size": "^0.2.0", + "y18n": "^3.2.1", + "yargs-parser": "^2.4.1" + } + }, + "node_modules/solc/node_modules/yargs-parser": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz", + "integrity": "sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "lodash.assign": "^4.0.6" + } + }, + "node_modules/solhint": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/solhint/-/solhint-3.6.2.tgz", + "integrity": "sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ==", + "dev": true, + "dependencies": { + "@solidity-parser/parser": "^0.16.0", + "ajv": "^6.12.6", + "antlr4": "^4.11.0", + "ast-parents": "^0.0.1", + "chalk": "^4.1.2", + "commander": "^10.0.0", + "cosmiconfig": "^8.0.0", + "fast-diff": "^1.2.0", + "glob": "^8.0.3", + "ignore": "^5.2.4", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "semver": "^7.5.2", + "strip-ansi": "^6.0.1", + "table": "^6.8.1", + "text-table": "^0.2.0" + }, + "bin": { + "solhint": "solhint.js" + }, + "optionalDependencies": { + "prettier": "^2.8.3" + } + }, + "node_modules/solhint-plugin-prettier": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz", + "integrity": "sha512-7jmWcnVshIrO2FFinIvDQmhQpfpS2rRRn3RejiYgnjIE68xO2bvrYvjqVNfrio4xH9ghOqn83tKuTzLjEbmGIA==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "peerDependencies": { + "prettier": "^1.15.0 || ^2.0.0", + "prettier-plugin-solidity": "^1.0.0-alpha.14" + } + }, + "node_modules/solhint/node_modules/@solidity-parser/parser": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.1.tgz", + "integrity": "sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==", + "dev": true, + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + } + }, + "node_modules/solhint/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/solhint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/solhint/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/solhint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/solhint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/solhint/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==", + "dev": true + }, + "node_modules/solhint/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/solhint/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, + "engines": { + "node": ">=8" + } + }, + "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", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/solhint/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/solhint/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/solhint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "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-bits": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/solidity-bits/-/solidity-bits-0.4.0.tgz", + "integrity": "sha512-bAU3OwfZ3DrZz0LqxyCjaxXQL5fcbUXygaz7Wjd+4Th5zUbkw6h1SWBdi2E4yGOv1VSGyvcmHI8gAdgLDCXaDQ==" + }, + "node_modules/solidity-bytes-utils": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/solidity-bytes-utils/-/solidity-bytes-utils-0.8.0.tgz", + "integrity": "sha512-r109ZHEf7zTMm1ENW6/IJFDWilFR/v0BZnGuFgDHJUV80ByobnV2k3txvwQaJ9ApL+6XAfwqsw5VFzjALbQPCw==", + "dependencies": { + "@truffle/hdwallet-provider": "latest" + } + }, + "node_modules/solidity-comments-extractor": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz", + "integrity": "sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==", + "dev": true + }, + "node_modules/solidity-coverage": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.5.tgz", + "integrity": "sha512-6C6N6OV2O8FQA0FWA95FdzVH+L16HU94iFgg5wAFZ29UpLFkgNI/DRR2HotG1bC0F4gAc/OMs2BJI44Q/DYlKQ==", + "dev": true, + "dependencies": { + "@ethersproject/abi": "^5.0.9", + "@solidity-parser/parser": "^0.16.0", + "chalk": "^2.4.2", + "death": "^1.1.0", + "detect-port": "^1.3.0", + "difflib": "^0.2.4", + "fs-extra": "^8.1.0", + "ghost-testrpc": "^0.0.2", + "global-modules": "^2.0.0", + "globby": "^10.0.1", + "jsonschema": "^1.2.4", + "lodash": "^4.17.15", + "mocha": "10.2.0", + "node-emoji": "^1.10.0", + "pify": "^4.0.1", + "recursive-readdir": "^2.2.2", + "sc-istanbul": "^0.4.5", + "semver": "^7.3.4", + "shelljs": "^0.8.3", + "web3-utils": "^1.3.6" + }, + "bin": { + "solidity-coverage": "plugins/bin.js" + }, + "peerDependencies": { + "hardhat": "^2.11.0" + } + }, + "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.1.tgz", + "integrity": "sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==", + "dev": true, + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + } + }, + "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, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/solidity-coverage/node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/solidity-coverage/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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 + }, + "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/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz", + "integrity": "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sshpk/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", + "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", + "dev": true + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/swap-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==", + "dev": true, + "dependencies": { + "lower-case": "^1.1.1", + "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/@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/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/fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/swarm-js/node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/swarm-js/node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "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", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "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", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "dev": true, + "dependencies": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "dev": true, + "dependencies": { + "get-port": "^3.1.0" + } + }, + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "dev": true, + "dependencies": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "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 + }, + "node_modules/table/node_modules/require-from-string": { + "version": "2.0.2", + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/table/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "dependencies": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/testrpc": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/testrpc/-/testrpc-0.0.1.tgz", + "integrity": "sha512-afH1hO+SQ/VPlmaLUFj2636QMeDvPCeQMc/9RBMW0IfjNe9gFD9Ra3ShqYkB7py0do1ZcCna/9acHyzTJ+GcNA==", + "deprecated": "testrpc has been renamed to ganache-cli, please use this package from now on.", + "dev": true + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "dev": true, + "dependencies": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/then-request/node_modules/@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", + "dev": true + }, + "node_modules/then-request/node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/title-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.0.3" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "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/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tough-cookie/node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/treeify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", + "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ts-command-line-args": { + "version": "2.5.1", + "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, + "dependencies": { + "chalk": "^4.1.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "string-format": "^2.0.0" + }, + "bin": { + "write-markdown": "dist/write-markdown.js" + } + }, + "node_modules/ts-command-line-args/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ts-command-line-args/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ts-command-line-args/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ts-command-line-args/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==", + "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, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-command-line-args/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "dev": true, + "peerDependencies": { + "typescript": ">=3.7.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "devOptional": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "devOptional": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typechain": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.1.tgz", + "integrity": "sha512-fA7clol2IP/56yq6vkMTR+4URF1nGjV82Wx6Rf09EsqD4tkzMAvEaqYxVFCavJm/1xaRga/oD55K+4FtuXwQOQ==", + "dev": true, + "dependencies": { + "@types/prettier": "^2.1.1", + "debug": "^4.3.1", + "fs-extra": "^7.0.0", + "glob": "7.1.7", + "js-sha3": "^0.8.0", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "prettier": "^2.3.1", + "ts-command-line-args": "^2.2.0", + "ts-essentials": "^7.0.1" + }, + "bin": { + "typechain": "dist/cli/cli.js" + }, + "peerDependencies": { + "typescript": ">=4.3.0" + } + }, + "node_modules/typechain/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typechain/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici": { + "version": "5.25.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.25.2.tgz", + "integrity": "sha512-tch8RbCfn1UUH1PeVCXva4V8gDpGAud/w0WubD6sHC46vYQ3KDxL+xv1A2UxK0N6jrVedutuPHxe1XIoqerwMw==", + "dependencies": { + "busboy": "^1.6.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "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/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", + "dev": true + }, + "node_modules/upper-case-first": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==", + "dev": true, + "dependencies": { + "upper-case": "^1.1.1" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", + "dev": true, + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.11.2" + } + }, + "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/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/url/node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "devOptional": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/web3": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.3.tgz", + "integrity": "sha512-DgUdOOqC/gTqW+VQl1EdPxrVRPB66xVNtuZ5KD4adVBtko87hkgM8BTZ0lZ8IbUfnQk6DyjcDujMiH3oszllAw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "web3-bzz": "1.10.3", + "web3-core": "1.10.3", + "web3-eth": "1.10.3", + "web3-eth-personal": "1.10.3", + "web3-net": "1.10.3", + "web3-shh": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-bzz": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.3.tgz", + "integrity": "sha512-XDIRsTwekdBXtFytMpHBuun4cK4x0ZMIDXSoo1UVYp+oMyZj07c7gf7tNQY5qZ/sN+CJIas4ilhN25VJcjSijQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/node": "^12.12.6", + "got": "12.1.0", + "swarm-js": "^0.1.40" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "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-core": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.3.tgz", + "integrity": "sha512-Vbk0/vUNZxJlz3RFjAhNNt7qTpX8yE3dn3uFxfX5OHbuon5u65YEOd3civ/aQNW745N0vGUlHFNxxmn+sG9DIw==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.1", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.10.3", + "web3-core-method": "1.10.3", + "web3-core-requestmanager": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-helpers": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz", + "integrity": "sha512-pIxAzFDS5vnbXvfvLSpaA1tfRykAe9adw43YCKsEYQwH0gCLL0kMLkaCX3q+Q8EVmAh+e1jWL/nl9U0de1+++g==", + "dependencies": { + "web3-eth-iban": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-helpers/node_modules/web3-utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", + "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-method": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.3.tgz", + "integrity": "sha512-VZ/Dmml4NBmb0ep5PTSg9oqKoBtG0/YoMPei/bq/tUdlhB2dMB79sbeJPwx592uaV0Vpk7VltrrrBv5hTM1y4Q==", + "dev": true, + "dependencies": { + "@ethersproject/transactions": "^5.6.2", + "web3-core-helpers": "1.10.3", + "web3-core-promievent": "1.10.3", + "web3-core-subscriptions": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-method/node_modules/web3-core-helpers": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", + "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", + "dev": true, + "dependencies": { + "web3-eth-iban": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-method/node_modules/web3-core-promievent": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.3.tgz", + "integrity": "sha512-HgjY+TkuLm5uTwUtaAfkTgRx/NzMxvVradCi02gy17NxDVdg/p6svBHcp037vcNpkuGeFznFJgULP+s2hdVgUQ==", + "dev": true, + "dependencies": { + "eventemitter3": "4.0.4" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-method/node_modules/web3-eth-iban": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", + "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-promievent": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.0.tgz", + "integrity": "sha512-68N7k5LWL5R38xRaKFrTFT2pm2jBNFaM4GioS00YjAKXRQ3KjmhijOMG3TICz6Aa5+6GDWYelDNx21YAeZ4YTg==", + "dependencies": { + "eventemitter3": "4.0.4" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-requestmanager": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.3.tgz", + "integrity": "sha512-VT9sKJfgM2yBOIxOXeXiDuFMP4pxzF6FT+y8KTLqhDFHkbG3XRe42Vm97mB/IvLQCJOmokEjl3ps8yP1kbggyw==", + "dev": true, + "dependencies": { + "util": "^0.12.5", + "web3-core-helpers": "1.10.3", + "web3-providers-http": "1.10.3", + "web3-providers-ipc": "1.10.3", + "web3-providers-ws": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-requestmanager/node_modules/web3-core-helpers": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", + "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", + "dev": true, + "dependencies": { + "web3-eth-iban": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-requestmanager/node_modules/web3-eth-iban": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", + "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-subscriptions": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.3.tgz", + "integrity": "sha512-KW0Mc8sgn70WadZu7RjQ4H5sNDJ5Lx8JMI3BWos+f2rW0foegOCyWhRu33W1s6ntXnqeBUw5rRCXZRlA3z+HNA==", + "dev": true, + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-subscriptions/node_modules/web3-core-helpers": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", + "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", + "dev": true, + "dependencies": { + "web3-eth-iban": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-subscriptions/node_modules/web3-eth-iban": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", + "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core/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-core/node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/web3-core/node_modules/web3-core-helpers": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", + "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", + "dev": true, + "dependencies": { + "web3-eth-iban": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core/node_modules/web3-eth-iban": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", + "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.3.tgz", + "integrity": "sha512-Uk1U2qGiif2mIG8iKu23/EQJ2ksB1BQXy3wF3RvFuyxt8Ft9OEpmGlO7wOtAyJdoKzD5vcul19bJpPcWSAYZhA==", + "dev": true, + "dependencies": { + "web3-core": "1.10.3", + "web3-core-helpers": "1.10.3", + "web3-core-method": "1.10.3", + "web3-core-subscriptions": "1.10.3", + "web3-eth-abi": "1.10.3", + "web3-eth-accounts": "1.10.3", + "web3-eth-contract": "1.10.3", + "web3-eth-ens": "1.10.3", + "web3-eth-iban": "1.10.3", + "web3-eth-personal": "1.10.3", + "web3-net": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-abi": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz", + "integrity": "sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg==", + "dependencies": { + "@ethersproject/abi": "^5.6.3", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-abi/node_modules/web3-utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", + "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-accounts": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.3.tgz", + "integrity": "sha512-8MipGgwusDVgn7NwKOmpeo3gxzzd+SmwcWeBdpXknuyDiZSQy9tXe+E9LeFGrmys/8mLLYP79n3jSbiTyv+6pQ==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "2.6.5", + "@ethereumjs/tx": "3.5.2", + "@ethereumjs/util": "^8.1.0", + "eth-lib": "0.2.8", + "scrypt-js": "^3.0.1", + "uuid": "^9.0.0", + "web3-core": "1.10.3", + "web3-core-helpers": "1.10.3", + "web3-core-method": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-accounts/node_modules/@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", + "dev": true, + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" + } + }, + "node_modules/web3-eth-accounts/node_modules/@ethereumjs/tx": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", + "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" + } + }, + "node_modules/web3-eth-accounts/node_modules/eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/web3-eth-accounts/node_modules/eth-lib/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/web3-eth-accounts/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/web3-eth-accounts/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/web3-eth-accounts/node_modules/web3-core-helpers": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", + "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", + "dev": true, + "dependencies": { + "web3-eth-iban": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-accounts/node_modules/web3-eth-iban": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", + "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-contract": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.3.tgz", + "integrity": "sha512-Y2CW61dCCyY4IoUMD4JsEQWrILX4FJWDWC/Txx/pr3K/+fGsBGvS9kWQN5EsVXOp4g7HoFOfVh9Lf7BmVVSRmg==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.1", + "web3-core": "1.10.3", + "web3-core-helpers": "1.10.3", + "web3-core-method": "1.10.3", + "web3-core-promievent": "1.10.3", + "web3-core-subscriptions": "1.10.3", + "web3-eth-abi": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-contract/node_modules/web3-core-helpers": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", + "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", + "dev": true, + "dependencies": { + "web3-eth-iban": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-contract/node_modules/web3-core-promievent": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.3.tgz", + "integrity": "sha512-HgjY+TkuLm5uTwUtaAfkTgRx/NzMxvVradCi02gy17NxDVdg/p6svBHcp037vcNpkuGeFznFJgULP+s2hdVgUQ==", + "dev": true, + "dependencies": { + "eventemitter3": "4.0.4" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-contract/node_modules/web3-eth-abi": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.3.tgz", + "integrity": "sha512-O8EvV67uhq0OiCMekqYsDtb6FzfYzMXT7VMHowF8HV6qLZXCGTdB/NH4nJrEh2mFtEwVdS6AmLFJAQd2kVyoMQ==", + "dev": true, + "dependencies": { + "@ethersproject/abi": "^5.6.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-contract/node_modules/web3-eth-iban": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", + "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-ens": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.3.tgz", + "integrity": "sha512-hR+odRDXGqKemw1GFniKBEXpjYwLgttTES+bc7BfTeoUyUZXbyDHe5ifC+h+vpzxh4oS0TnfcIoarK0Z9tFSiQ==", + "dev": true, + "dependencies": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.10.3", + "web3-core-helpers": "1.10.3", + "web3-core-promievent": "1.10.3", + "web3-eth-abi": "1.10.3", + "web3-eth-contract": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-ens/node_modules/web3-core-helpers": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", + "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", + "dev": true, + "dependencies": { + "web3-eth-iban": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-ens/node_modules/web3-core-promievent": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.3.tgz", + "integrity": "sha512-HgjY+TkuLm5uTwUtaAfkTgRx/NzMxvVradCi02gy17NxDVdg/p6svBHcp037vcNpkuGeFznFJgULP+s2hdVgUQ==", + "dev": true, + "dependencies": { + "eventemitter3": "4.0.4" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-ens/node_modules/web3-eth-abi": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.3.tgz", + "integrity": "sha512-O8EvV67uhq0OiCMekqYsDtb6FzfYzMXT7VMHowF8HV6qLZXCGTdB/NH4nJrEh2mFtEwVdS6AmLFJAQd2kVyoMQ==", + "dev": true, + "dependencies": { + "@ethersproject/abi": "^5.6.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-ens/node_modules/web3-eth-iban": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", + "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-iban": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.0.tgz", + "integrity": "sha512-0l+SP3IGhInw7Q20LY3IVafYEuufo4Dn75jAHT7c2aDJsIolvf2Lc6ugHkBajlwUneGfbRQs/ccYPQ9JeMUbrg==", + "dependencies": { + "bn.js": "^5.2.1", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-iban/node_modules/web3-utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", + "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-personal": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.3.tgz", + "integrity": "sha512-avrQ6yWdADIvuNQcFZXmGLCEzulQa76hUOuVywN7O3cklB4nFc/Gp3yTvD3bOAaE7DhjLQfhUTCzXL7WMxVTsw==", + "dev": true, + "dependencies": { + "@types/node": "^12.12.6", + "web3-core": "1.10.3", + "web3-core-helpers": "1.10.3", + "web3-core-method": "1.10.3", + "web3-net": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-personal/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-eth-personal/node_modules/web3-core-helpers": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", + "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", + "dev": true, + "dependencies": { + "web3-eth-iban": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-personal/node_modules/web3-eth-iban": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", + "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth/node_modules/web3-core-helpers": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", + "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", + "dev": true, + "dependencies": { + "web3-eth-iban": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth/node_modules/web3-eth-abi": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.3.tgz", + "integrity": "sha512-O8EvV67uhq0OiCMekqYsDtb6FzfYzMXT7VMHowF8HV6qLZXCGTdB/NH4nJrEh2mFtEwVdS6AmLFJAQd2kVyoMQ==", + "dev": true, + "dependencies": { + "@ethersproject/abi": "^5.6.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth/node_modules/web3-eth-iban": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", + "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-net": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.3.tgz", + "integrity": "sha512-IoSr33235qVoI1vtKssPUigJU9Fc/Ph0T9CgRi15sx+itysmvtlmXMNoyd6Xrgm9LuM4CIhxz7yDzH93B79IFg==", + "dev": true, + "dependencies": { + "web3-core": "1.10.3", + "web3-core-method": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-provider-engine": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.3.tgz", + "integrity": "sha512-Q3bKhGqLfMTdLvkd4TtkGYJHcoVQ82D1l8jTIwwuJp/sAp7VHnRYb9YJ14SW/69VMWoOhSpPLZV2tWb9V0WJoA==", + "dependencies": { + "@ethereumjs/tx": "^3.3.0", + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "cross-fetch": "^2.1.0", + "eth-block-tracker": "^4.4.2", + "eth-json-rpc-filters": "^4.2.1", + "eth-json-rpc-infura": "^5.1.0", + "eth-json-rpc-middleware": "^6.0.0", + "eth-rpc-errors": "^3.0.0", + "eth-sig-util": "^1.4.2", + "ethereumjs-block": "^1.2.2", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/web3-provider-engine/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/web3-provider-engine/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/web3-provider-engine/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/web3-provider-engine/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==", + "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" + } + }, + "node_modules/web3-provider-engine/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/web3-provider-engine/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==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/web3-provider-engine/node_modules/ws": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", + "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/web3-providers-http": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.3.tgz", + "integrity": "sha512-6dAgsHR3MxJ0Qyu3QLFlQEelTapVfWNTu5F45FYh8t7Y03T1/o+YAkVxsbY5AdmD+y5bXG/XPJ4q8tjL6MgZHw==", + "dev": true, + "dependencies": { + "abortcontroller-polyfill": "^1.7.5", + "cross-fetch": "^4.0.0", + "es6-promise": "^4.2.8", + "web3-core-helpers": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-providers-http/node_modules/cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/web3-providers-http/node_modules/web3-core-helpers": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", + "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", + "dev": true, + "dependencies": { + "web3-eth-iban": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-providers-http/node_modules/web3-eth-iban": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", + "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-providers-ipc": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.3.tgz", + "integrity": "sha512-vP5WIGT8FLnGRfswTxNs9rMfS1vCbMezj/zHbBe/zB9GauBRTYVrUo2H/hVrhLg8Ut7AbsKZ+tCJ4mAwpKi2hA==", + "dev": true, + "dependencies": { + "oboe": "2.1.5", + "web3-core-helpers": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-providers-ipc/node_modules/web3-core-helpers": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", + "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", + "dev": true, + "dependencies": { + "web3-eth-iban": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-providers-ipc/node_modules/web3-eth-iban": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", + "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-providers-ws": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.3.tgz", + "integrity": "sha512-/filBXRl48INxsh6AuCcsy4v5ndnTZ/p6bl67kmO9aK1wffv7CT++DrtclDtVMeDGCgB3van+hEf9xTAVXur7Q==", + "dev": true, + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.3", + "websocket": "^1.0.32" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-providers-ws/node_modules/web3-core-helpers": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", + "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", + "dev": true, + "dependencies": { + "web3-eth-iban": "1.10.3", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-providers-ws/node_modules/web3-eth-iban": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", + "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "web3-utils": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-shh": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.3.tgz", + "integrity": "sha512-cAZ60CPvs9azdwMSQ/PSUdyV4PEtaW5edAZhu3rCXf6XxQRliBboic+AvwUvB6j3eswY50VGa5FygfVmJ1JVng==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "web3-core": "1.10.3", + "web3-core-method": "1.10.3", + "web3-core-subscriptions": "1.10.3", + "web3-net": "1.10.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-utils": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.3.tgz", + "integrity": "sha512-OqcUrEE16fDBbGoQtZXWdavsPzbGIDc5v3VrRTZ0XrIpefC/viZ1ZU9bGEemazyS0catk/3rkOOxpzTfY+XsyQ==", + "dependencies": { + "@ethereumjs/util": "^8.1.0", + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereum-cryptography": "^2.1.2", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-utils/node_modules/ethereum-cryptography": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz", + "integrity": "sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug==", + "dependencies": { + "@noble/curves": "1.1.0", + "@noble/hashes": "1.3.1", + "@scure/bip32": "1.3.1", + "@scure/bip39": "1.2.1" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/websocket": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "dependencies": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/websocket/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/websocket/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/window-size": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", + "integrity": "sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==", + "dev": true, + "bin": { + "window-size": "cli.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "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, + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "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/wrap-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/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "dependencies": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + } + }, + "node_modules/xhr-request-promise": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", + "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", + "dependencies": { + "xhr-request": "^1.1.0" + } + }, + "node_modules/xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", + "engines": { + "node": ">=0.10.32" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "devOptional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json index 1e47f3a8..5fa24066 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "eslint-plugin-promise": "^6.1.1", "ethereum-waffle": "^4.0.10", "ethers": "^5.7.2", - "hardhat": "^2.12.7", + "hardhat": "^2.17.3", "hardhat-gas-reporter": "^1.0.9", "prettier": "^2.8.8", "prettier-plugin-solidity": "^1.1.3", @@ -63,8 +63,10 @@ "typescript": "^4.9.5" }, "dependencies": { - "@rari-capital/solmate": "^6.4.0", + "@chainlink/contracts": "^0.8.0", "@openzeppelin/contracts": "^4.9.3", + "@rari-capital/solmate": "^6.4.0", + "openzeppelin-contracts-upgradeable-4.9.3": "npm:@openzeppelin/contracts-upgradeable@^4.9.3", "seaport": "https://github.com/immutable/seaport.git#1.5.0+im.1.3", "solidity-bits": "^0.4.0", "solidity-bytes-utils": "^0.8.0" diff --git a/yarn.lock b/yarn.lock index 59100abd..5c1b3d08 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,36 +4,75 @@ "@aashutoshrathi/word-wrap@^1.2.3": version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== -"@babel/code-frame@^7.0.0": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== dependencies: - "@babel/highlight" "^7.22.13" + "@babel/highlight" "^7.23.4" chalk "^2.4.2" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.20.tgz#8df6e96661209623f1975d66c35ffca66f3306d0" - integrity sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== + +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0": + version "7.23.7" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz" + integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.7" + "@babel/parser" "^7.23.6" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" -"@babel/helper-compilation-targets@^7.22.6": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" - integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== +"@babel/generator@^7.23.6": + version "7.23.6" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== + dependencies: + "@babel/types" "^7.23.6" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.15" - browserslist "^4.21.9" + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" lru-cache "^5.1.1" semver "^6.3.1" "@babel/helper-define-polyfill-provider@^0.4.2": version "0.4.2" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz" integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw== dependencies: "@babel/helper-compilation-targets" "^7.22.6" @@ -42,45 +81,104 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-module-imports@^7.22.15": version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz" integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: "@babel/types" "^7.22.15" +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-plugin-utils@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-string-parser@^7.22.5": +"@babel/helper-simple-access@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" - integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== +"@babel/helpers@^7.23.7": + version "7.23.8" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz" + integrity sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" + +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== dependencies: "@babel/helper-validator-identifier" "^7.22.20" chalk "^2.4.2" js-tokens "^4.0.0" +"@babel/parser@^7.22.15", "@babel/parser@^7.23.6": + version "7.23.6" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz" + integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== + "@babel/plugin-transform-runtime@^7.5.5": version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz#3a625c4c05a39e932d7d34f5d4895cdd0172fdc9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz" integrity sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g== dependencies: "@babel/helper-module-imports" "^7.22.15" @@ -92,42 +190,77 @@ "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5": version "7.23.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.1.tgz#72741dc4d413338a91dcb044a86f3c0bc402646d" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.1.tgz" integrity sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g== dependencies: regenerator-runtime "^0.14.0" -"@babel/types@^7.22.15": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" - integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== +"@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.23.7": + version "7.23.7" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz" + integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.6" + "@babel/types" "^7.23.6" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6": + version "7.23.6" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz" + integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== dependencies: - "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" +"@chainlink/contracts@^0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@chainlink/contracts/-/contracts-0.8.0.tgz" + integrity sha512-nUv1Uxw5Mn92wgLs2bgPYmo8hpdQ3s9jB/lcbdU0LmNOVu0hbfmouVnqwRLa28Ll50q6GczUA+eO0ikNIKLZsA== + dependencies: + "@eth-optimism/contracts" "^0.5.21" + "@openzeppelin/contracts" "~4.3.3" + "@openzeppelin/contracts-upgradeable-4.7.3" "npm:@openzeppelin/contracts-upgradeable@v4.7.3" + "@openzeppelin/contracts-v0.7" "npm:@openzeppelin/contracts@v3.4.2" + "@chainsafe/as-sha256@^0.3.1": version "0.3.1" - resolved "https://registry.yarnpkg.com/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz#3639df0e1435cab03f4d9870cc3ac079e57a6fc9" + resolved "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz" integrity sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg== "@chainsafe/persistent-merkle-tree@^0.4.2": version "0.4.2" - resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz#4c9ee80cc57cd3be7208d98c40014ad38f36f7ff" + resolved "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz" integrity sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ== dependencies: "@chainsafe/as-sha256" "^0.3.1" "@chainsafe/persistent-merkle-tree@^0.5.0": version "0.5.0" - resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz#2b4a62c9489a5739dedd197250d8d2f5427e9f63" + resolved "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz" integrity sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw== dependencies: "@chainsafe/as-sha256" "^0.3.1" "@chainsafe/ssz@^0.10.0": version "0.10.2" - resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-0.10.2.tgz#c782929e1bb25fec66ba72e75934b31fd087579e" + resolved "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.10.2.tgz" integrity sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg== dependencies: "@chainsafe/as-sha256" "^0.3.1" @@ -135,7 +268,7 @@ "@chainsafe/ssz@^0.9.2": version "0.9.4" - resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-0.9.4.tgz#696a8db46d6975b600f8309ad3a12f7c0e310497" + resolved "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.9.4.tgz" integrity sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ== dependencies: "@chainsafe/as-sha256" "^0.3.1" @@ -144,14 +277,14 @@ "@cspotcode/source-map-support@^0.8.0": version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== dependencies: "@jridgewell/trace-mapping" "0.3.9" "@ensdomains/address-encoder@^0.1.7": version "0.1.9" - resolved "https://registry.yarnpkg.com/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz#f948c485443d9ef7ed2c0c4790e931c33334d02d" + resolved "https://registry.npmjs.org/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz" integrity sha512-E2d2gP4uxJQnDu2Kfg1tHNspefzbLT8Tyjrm5sEuim32UkU2sm5xL4VXtgc2X33fmPEw9+jUMpGs4veMbf+PYg== dependencies: bech32 "^1.1.3" @@ -162,9 +295,9 @@ nano-base32 "^1.0.1" ripemd160 "^2.0.2" -"@ensdomains/ens@0.4.5": +"@ensdomains/ens@^0.4.4", "@ensdomains/ens@0.4.5": version "0.4.5" - resolved "https://registry.yarnpkg.com/@ensdomains/ens/-/ens-0.4.5.tgz#e0aebc005afdc066447c6e22feb4eda89a5edbfc" + resolved "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz" integrity sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw== dependencies: bluebird "^3.5.2" @@ -175,7 +308,7 @@ "@ensdomains/ensjs@^2.1.0": version "2.1.0" - resolved "https://registry.yarnpkg.com/@ensdomains/ensjs/-/ensjs-2.1.0.tgz#0a7296c1f3d735ef019320d863a7846a0760c460" + resolved "https://registry.npmjs.org/@ensdomains/ensjs/-/ensjs-2.1.0.tgz" integrity sha512-GRbGPT8Z/OJMDuxs75U/jUNEC0tbL0aj7/L/QQznGYKm/tiasp+ndLOaoULy9kKJFC0TBByqfFliEHDgoLhyog== dependencies: "@babel/runtime" "^7.4.4" @@ -187,26 +320,26 @@ ethers "^5.0.13" js-sha3 "^0.8.0" -"@ensdomains/resolver@0.2.4": +"@ensdomains/resolver@^0.2.4", "@ensdomains/resolver@0.2.4": version "0.2.4" - resolved "https://registry.yarnpkg.com/@ensdomains/resolver/-/resolver-0.2.4.tgz#c10fe28bf5efbf49bff4666d909aed0265efbc89" + resolved "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz" integrity sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA== "@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.0", "@eslint-community/regexpp@^4.6.1": version "4.8.2" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.8.2.tgz#26585b7c0ba36362893d3a3c206ee0c57c389616" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.2.tgz" integrity sha512-0MGxAVt1m/ZK+LTJp/j0qF7Hz97D9O/FH9Ms3ltnyIdDD57cbb1ACIQTkbHvNXtWDv5TPq7w5Kq56+cNukbo7g== "@eslint/eslintrc@^2.1.2": version "2.1.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz" integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== dependencies: ajv "^6.12.4" @@ -221,12 +354,43 @@ "@eslint/js@8.50.0": version "8.50.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.50.0.tgz#9e93b850f0f3fa35f5fa59adfd03adae8488e484" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz" integrity sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ== +"@eth-optimism/contracts@^0.5.21": + version "0.5.40" + resolved "https://registry.npmjs.org/@eth-optimism/contracts/-/contracts-0.5.40.tgz" + integrity sha512-MrzV0nvsymfO/fursTB7m/KunkPsCndltVgfdHaT1Aj5Vi6R/doKIGGkOofHX+8B6VMZpuZosKCMQ5lQuqjt8w== + dependencies: + "@eth-optimism/core-utils" "0.12.0" + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + +"@eth-optimism/core-utils@0.12.0": + version "0.12.0" + resolved "https://registry.npmjs.org/@eth-optimism/core-utils/-/core-utils-0.12.0.tgz" + integrity sha512-qW+7LZYCz7i8dRa7SRlUKIo1VBU8lvN0HeXCxJR+z+xtMzMQpPds20XJNCMclszxYQHkXY00fOT6GvFw9ZL6nw== + dependencies: + "@ethersproject/abi" "^5.7.0" + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/address" "^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/keccak256" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/providers" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + bufio "^1.0.7" + chai "^4.3.4" + "@ethereum-waffle/chai@4.0.10": version "4.0.10" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/chai/-/chai-4.0.10.tgz#6f600a40b6fdaed331eba42b8625ff23f3a0e59a" + resolved "https://registry.npmjs.org/@ethereum-waffle/chai/-/chai-4.0.10.tgz" integrity sha512-X5RepE7Dn8KQLFO7HHAAe+KeGaX/by14hn90wePGBhzL54tq4Y8JscZFu+/LCwCl6TnkAAy5ebiMoqJ37sFtWw== dependencies: "@ethereum-waffle/provider" "4.0.5" @@ -235,7 +399,7 @@ "@ethereum-waffle/compiler@4.0.3": version "4.0.3" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/compiler/-/compiler-4.0.3.tgz#069e2df24b879b8a7b78857bad6f8bf6ebc8a5b1" + resolved "https://registry.npmjs.org/@ethereum-waffle/compiler/-/compiler-4.0.3.tgz" integrity sha512-5x5U52tSvEVJS6dpCeXXKvRKyf8GICDwiTwUvGD3/WD+DpvgvaoHOL82XqpTSUHgV3bBq6ma5/8gKUJUIAnJCw== dependencies: "@resolver-engine/imports" "^0.3.3" @@ -248,17 +412,17 @@ "@ethereum-waffle/ens@4.0.3": version "4.0.3" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/ens/-/ens-4.0.3.tgz#4a46ac926414f3c83b4e8cc2562c8e2aee06377a" + resolved "https://registry.npmjs.org/@ethereum-waffle/ens/-/ens-4.0.3.tgz" integrity sha512-PVLcdnTbaTfCrfSOrvtlA9Fih73EeDvFS28JQnT5M5P4JMplqmchhcZB1yg/fCtx4cvgHlZXa0+rOCAk2Jk0Jw== "@ethereum-waffle/mock-contract@4.0.4": version "4.0.4" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/mock-contract/-/mock-contract-4.0.4.tgz#f13fea29922d87a4d2e7c4fc8fe72ea04d2c13de" + resolved "https://registry.npmjs.org/@ethereum-waffle/mock-contract/-/mock-contract-4.0.4.tgz" integrity sha512-LwEj5SIuEe9/gnrXgtqIkWbk2g15imM/qcJcxpLyAkOj981tQxXmtV4XmQMZsdedEsZ/D/rbUAOtZbgwqgUwQA== "@ethereum-waffle/provider@4.0.5": version "4.0.5" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/provider/-/provider-4.0.5.tgz#8a65dbf0263f4162c9209608205dee1c960e716b" + resolved "https://registry.npmjs.org/@ethereum-waffle/provider/-/provider-4.0.5.tgz" integrity sha512-40uzfyzcrPh+Gbdzv89JJTMBlZwzya1YLDyim8mVbEqYLP5VRYWoGp0JMyaizgV3hMoUFRqJKVmIUw4v7r3hYw== dependencies: "@ethereum-waffle/ens" "4.0.3" @@ -268,7 +432,7 @@ "@ethereumjs/block@^3.5.0", "@ethereumjs/block@^3.6.0", "@ethereumjs/block@^3.6.2": version "3.6.3" - resolved "https://registry.yarnpkg.com/@ethereumjs/block/-/block-3.6.3.tgz#d96cbd7af38b92ebb3424223dbf773f5ccd27f84" + resolved "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.3.tgz" integrity sha512-CegDeryc2DVKnDkg5COQrE0bJfw/p0v3GBk2W5/Dj5dOVfEmb50Ux0GLnSPypooLnfqjwFaorGuT9FokWB3GRg== dependencies: "@ethereumjs/common" "^2.6.5" @@ -278,7 +442,7 @@ "@ethereumjs/blockchain@^5.5.0": version "5.5.3" - resolved "https://registry.yarnpkg.com/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz#aa49a6a04789da6b66b5bcbb0d0b98efc369f640" + resolved "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz" integrity sha512-bi0wuNJ1gw4ByNCV56H0Z4Q7D+SxUbwyG12Wxzbvqc89PXLRNR20LBcSUZRKpN0+YCPo6m0XZL/JLio3B52LTw== dependencies: "@ethereumjs/block" "^3.6.2" @@ -290,25 +454,25 @@ lru-cache "^5.1.1" semaphore-async-await "^1.5.1" -"@ethereumjs/common@2.5.0": +"@ethereumjs/common@^2.4.0", "@ethereumjs/common@^2.5.0", "@ethereumjs/common@2.5.0": version "2.5.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.5.0.tgz#ec61551b31bef7a69d1dc634d8932468866a4268" + resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz" integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg== dependencies: crc-32 "^1.2.0" ethereumjs-util "^7.1.1" -"@ethereumjs/common@2.6.0": +"@ethereumjs/common@^2.6.0", "@ethereumjs/common@2.6.0": version "2.6.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.0.tgz#feb96fb154da41ee2cc2c5df667621a440f36348" + resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.0.tgz" integrity sha512-Cq2qS0FTu6O2VU1sgg+WyU9Ps0M6j/BEMHN+hRaECXCV/r0aI78u4N6p52QW/BDVhwWZpCdrvG8X7NJdzlpNUA== dependencies: crc-32 "^1.2.0" ethereumjs-util "^7.1.3" -"@ethereumjs/common@^2.4.0", "@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.0", "@ethereumjs/common@^2.6.4", "@ethereumjs/common@^2.6.5": +"@ethereumjs/common@^2.6.4", "@ethereumjs/common@^2.6.5", "@ethereumjs/common@2.6.5": version "2.6.5" - resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30" + resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz" integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== dependencies: crc-32 "^1.2.0" @@ -316,7 +480,7 @@ "@ethereumjs/ethash@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/ethash/-/ethash-1.1.0.tgz#7c5918ffcaa9cb9c1dc7d12f77ef038c11fb83fb" + resolved "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz" integrity sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA== dependencies: "@ethereumjs/block" "^3.5.0" @@ -327,28 +491,36 @@ "@ethereumjs/rlp@^4.0.1": version "4.0.1" - resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" + resolved "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz" integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== +"@ethereumjs/tx@^3.3.0", "@ethereumjs/tx@^3.4.0", "@ethereumjs/tx@3.4.0": + version "3.4.0" + resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.4.0.tgz" + integrity sha512-WWUwg1PdjHKZZxPPo274ZuPsJCWV3SqATrEKQP1n2DrVYVP1aZIYpo/mFaA0BDoE0tIQmBeimRCEA0Lgil+yYw== + dependencies: + "@ethereumjs/common" "^2.6.0" + ethereumjs-util "^7.1.3" + +"@ethereumjs/tx@^3.5.2": + version "3.5.2" + resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz" + integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== + dependencies: + "@ethereumjs/common" "^2.6.4" + ethereumjs-util "^7.1.5" + "@ethereumjs/tx@3.3.2": version "3.3.2" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.2.tgz#348d4624bf248aaab6c44fec2ae67265efe3db00" + resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz" integrity sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog== dependencies: "@ethereumjs/common" "^2.5.0" ethereumjs-util "^7.1.2" -"@ethereumjs/tx@3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.4.0.tgz#7eb1947eefa55eb9cf05b3ca116fb7a3dbd0bce7" - integrity sha512-WWUwg1PdjHKZZxPPo274ZuPsJCWV3SqATrEKQP1n2DrVYVP1aZIYpo/mFaA0BDoE0tIQmBeimRCEA0Lgil+yYw== - dependencies: - "@ethereumjs/common" "^2.6.0" - ethereumjs-util "^7.1.3" - -"@ethereumjs/tx@^3.3.0", "@ethereumjs/tx@^3.4.0", "@ethereumjs/tx@^3.5.2": +"@ethereumjs/tx@3.5.2": version "3.5.2" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.2.tgz#197b9b6299582ad84f9527ca961466fce2296c1c" + resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz" integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== dependencies: "@ethereumjs/common" "^2.6.4" @@ -356,7 +528,7 @@ "@ethereumjs/util@^8.1.0": version "8.1.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" + resolved "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz" integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== dependencies: "@ethereumjs/rlp" "^4.0.1" @@ -365,7 +537,7 @@ "@ethereumjs/vm@5.6.0": version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/vm/-/vm-5.6.0.tgz#e0ca62af07de820143674c30b776b86c1983a464" + resolved "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.6.0.tgz" integrity sha512-J2m/OgjjiGdWF2P9bj/4LnZQ1zRoZhY8mRNVw/N3tXliGI8ai1sI1mlDPkLpeUUM4vq54gH6n0ZlSpz8U/qlYQ== dependencies: "@ethereumjs/block" "^3.6.0" @@ -381,9 +553,9 @@ merkle-patricia-tree "^4.2.2" rustbn.js "~0.2.0" -"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.0.0-beta.146", "@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.6.3", "@ethersproject/abi@^5.7.0": +"@ethersproject/abi@^5.0.0", "@ethersproject/abi@^5.0.0-beta.146", "@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.4.7", "@ethersproject/abi@^5.6.3", "@ethersproject/abi@^5.7.0", "@ethersproject/abi@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz" integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== dependencies: "@ethersproject/address" "^5.7.0" @@ -396,9 +568,9 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": +"@ethersproject/abstract-provider@^5.7.0", "@ethersproject/abstract-provider@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz" integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -409,9 +581,9 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": +"@ethersproject/abstract-signer@^5.7.0", "@ethersproject/abstract-signer@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== dependencies: "@ethersproject/abstract-provider" "^5.7.0" @@ -420,9 +592,9 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.7.0": +"@ethersproject/address@^5.0.2", "@ethersproject/address@^5.7.0", "@ethersproject/address@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -431,47 +603,47 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/rlp" "^5.7.0" -"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": +"@ethersproject/base64@^5.7.0", "@ethersproject/base64@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz" integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== dependencies: "@ethersproject/bytes" "^5.7.0" -"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": +"@ethersproject/basex@^5.7.0", "@ethersproject/basex@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" + resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz" integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@^5.7.0", "@ethersproject/bignumber@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" bn.js "^5.2.1" -"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0": +"@ethersproject/bytes@^5.7.0", "@ethersproject/bytes@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": +"@ethersproject/constants@^5.7.0", "@ethersproject/constants@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== dependencies: "@ethersproject/bignumber" "^5.7.0" -"@ethersproject/contracts@5.7.0": +"@ethersproject/contracts@^5.7.0", "@ethersproject/contracts@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" + resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz" integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== dependencies: "@ethersproject/abi" "^5.7.0" @@ -485,9 +657,9 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/transactions" "^5.7.0" -"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": +"@ethersproject/hash@^5.7.0", "@ethersproject/hash@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== dependencies: "@ethersproject/abstract-signer" "^5.7.0" @@ -500,9 +672,9 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": +"@ethersproject/hdnode@^5.7.0", "@ethersproject/hdnode@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" + resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz" integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== dependencies: "@ethersproject/abstract-signer" "^5.7.0" @@ -518,9 +690,9 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": +"@ethersproject/json-wallets@^5.7.0", "@ethersproject/json-wallets@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" + resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz" integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== dependencies: "@ethersproject/abstract-signer" "^5.7.0" @@ -537,44 +709,44 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": +"@ethersproject/keccak256@^5.7.0", "@ethersproject/keccak256@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== dependencies: "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": +"@ethersproject/logger@^5.7.0", "@ethersproject/logger@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== -"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": +"@ethersproject/networks@^5.7.0", "@ethersproject/networks@5.7.1": version "5.7.1" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz" integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": +"@ethersproject/pbkdf2@^5.7.0", "@ethersproject/pbkdf2@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" + resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz" integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/sha2" "^5.7.0" -"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": +"@ethersproject/properties@^5.7.0", "@ethersproject/properties@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.7.1", "@ethersproject/providers@^5.7.2": +"@ethersproject/providers@^5.0.0", "@ethersproject/providers@^5.4.7", "@ethersproject/providers@^5.7.0", "@ethersproject/providers@^5.7.1", "@ethersproject/providers@^5.7.2", "@ethersproject/providers@5.7.2": version "5.7.2" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" + resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz" integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== dependencies: "@ethersproject/abstract-provider" "^5.7.0" @@ -598,34 +770,34 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": +"@ethersproject/random@^5.7.0", "@ethersproject/random@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" + resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz" integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": +"@ethersproject/rlp@^5.7.0", "@ethersproject/rlp@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz" integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": +"@ethersproject/sha2@^5.7.0", "@ethersproject/sha2@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" + resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz" integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" -"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": +"@ethersproject/signing-key@^5.7.0", "@ethersproject/signing-key@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz" integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -637,7 +809,7 @@ "@ethersproject/solidity@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" + resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz" integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -647,18 +819,18 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": +"@ethersproject/strings@^5.7.0", "@ethersproject/strings@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": +"@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0", "@ethersproject/transactions@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== dependencies: "@ethersproject/address" "^5.7.0" @@ -673,7 +845,7 @@ "@ethersproject/units@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" + resolved "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz" integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -682,7 +854,7 @@ "@ethersproject/wallet@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" + resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz" integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== dependencies: "@ethersproject/abstract-provider" "^5.7.0" @@ -701,9 +873,9 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": +"@ethersproject/web@^5.7.0", "@ethersproject/web@5.7.1": version "5.7.1" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz" integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== dependencies: "@ethersproject/base64" "^5.7.0" @@ -712,9 +884,9 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": +"@ethersproject/wordlists@^5.7.0", "@ethersproject/wordlists@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" + resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz" integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -725,14 +897,14 @@ "@ganache/ethereum-address@0.1.4": version "0.1.4" - resolved "https://registry.yarnpkg.com/@ganache/ethereum-address/-/ethereum-address-0.1.4.tgz#0e6d66f4a24f64bf687cb3ff7358fb85b9d9005e" + resolved "https://registry.npmjs.org/@ganache/ethereum-address/-/ethereum-address-0.1.4.tgz" integrity sha512-sTkU0M9z2nZUzDeHRzzGlW724xhMLXo2LeX1hixbnjHWY1Zg1hkqORywVfl+g5uOO8ht8T0v+34IxNxAhmWlbw== dependencies: "@ganache/utils" "0.1.4" "@ganache/ethereum-options@0.1.4": version "0.1.4" - resolved "https://registry.yarnpkg.com/@ganache/ethereum-options/-/ethereum-options-0.1.4.tgz#6a559abb44225e2b8741a8f78a19a46714a71cd6" + resolved "https://registry.npmjs.org/@ganache/ethereum-options/-/ethereum-options-0.1.4.tgz" integrity sha512-i4l46taoK2yC41FPkcoDlEVoqHS52wcbHPqJtYETRWqpOaoj9hAg/EJIHLb1t6Nhva2CdTO84bG+qlzlTxjAHw== dependencies: "@ganache/ethereum-address" "0.1.4" @@ -744,7 +916,7 @@ "@ganache/ethereum-utils@0.1.4": version "0.1.4" - resolved "https://registry.yarnpkg.com/@ganache/ethereum-utils/-/ethereum-utils-0.1.4.tgz#fae4b5b9e642e751ff1fa0cd7316c92996317257" + resolved "https://registry.npmjs.org/@ganache/ethereum-utils/-/ethereum-utils-0.1.4.tgz" integrity sha512-FKXF3zcdDrIoCqovJmHLKZLrJ43234Em2sde/3urUT/10gSgnwlpFmrv2LUMAmSbX3lgZhW/aSs8krGhDevDAg== dependencies: "@ethereumjs/common" "2.6.0" @@ -759,7 +931,7 @@ "@ganache/options@0.1.4": version "0.1.4" - resolved "https://registry.yarnpkg.com/@ganache/options/-/options-0.1.4.tgz#325b07e6de85094667aaaaf3d653e32404a04b78" + resolved "https://registry.npmjs.org/@ganache/options/-/options-0.1.4.tgz" integrity sha512-zAe/craqNuPz512XQY33MOAG6Si1Xp0hCvfzkBfj2qkuPcbJCq6W/eQ5MB6SbXHrICsHrZOaelyqjuhSEmjXRw== dependencies: "@ganache/utils" "0.1.4" @@ -768,7 +940,7 @@ "@ganache/rlp@0.1.4": version "0.1.4" - resolved "https://registry.yarnpkg.com/@ganache/rlp/-/rlp-0.1.4.tgz#f4043afda83e1a14a4f80607b103daf166a9b374" + resolved "https://registry.npmjs.org/@ganache/rlp/-/rlp-0.1.4.tgz" integrity sha512-Do3D1H6JmhikB+6rHviGqkrNywou/liVeFiKIpOBLynIpvZhRCgn3SEDxyy/JovcaozTo/BynHumfs5R085MFQ== dependencies: "@ganache/utils" "0.1.4" @@ -776,7 +948,7 @@ "@ganache/utils@0.1.4": version "0.1.4" - resolved "https://registry.yarnpkg.com/@ganache/utils/-/utils-0.1.4.tgz#25d60d7689e3dda6a8a7ad70e3646f07c2c39a1f" + resolved "https://registry.npmjs.org/@ganache/utils/-/utils-0.1.4.tgz" integrity sha512-oatUueU3XuXbUbUlkyxeLLH3LzFZ4y5aSkNbx6tjSIhVTPeh+AuBKYt4eQ73FFcTB3nj/gZoslgAh5CN7O369w== dependencies: emittery "0.10.0" @@ -787,7 +959,7 @@ "@humanwhocodes/config-array@^0.11.11": version "0.11.11" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz" integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== dependencies: "@humanwhocodes/object-schema" "^1.2.1" @@ -796,35 +968,57 @@ "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@jridgewell/resolve-uri@^3.0.3": +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== -"@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@0.3.9": +"@jridgewell/trace-mapping@^0.3.17": + version "0.3.20" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@jridgewell/trace-mapping@^0.3.9", "@jridgewell/trace-mapping@0.3.9": version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@metamask/eth-sig-util@4.0.1", "@metamask/eth-sig-util@^4.0.0": +"@metamask/eth-sig-util@^4.0.0", "@metamask/eth-sig-util@4.0.1": version "4.0.1" - resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" + resolved "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz" integrity sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ== dependencies: ethereumjs-abi "^0.6.8" @@ -835,67 +1029,57 @@ "@metamask/safe-event-emitter@^2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" + resolved "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz" integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== -"@noble/curves@1.1.0", "@noble/curves@~1.1.0": +"@noble/curves@~1.1.0", "@noble/curves@1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.1.0.tgz#f13fc667c89184bc04cccb9b11e8e7bae27d8c3d" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz" integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA== dependencies: "@noble/hashes" "1.3.1" -"@noble/hashes@1.1.2": +"@noble/hashes@~1.1.1", "@noble/hashes@1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.2.tgz#e9e035b9b166ca0af657a7848eb2718f0f22f183" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz" integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== -"@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": +"@noble/hashes@~1.2.0", "@noble/hashes@1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz" integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== -"@noble/hashes@1.3.1": +"@noble/hashes@~1.3.0", "@noble/hashes@~1.3.1", "@noble/hashes@1.3.1": version "1.3.1" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz" integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== -"@noble/hashes@~1.1.1": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.5.tgz#1a0377f3b9020efe2fae03290bd2a12140c95c11" - integrity sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ== - -"@noble/hashes@~1.3.0", "@noble/hashes@~1.3.1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" - integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== - -"@noble/secp256k1@1.6.3", "@noble/secp256k1@~1.6.0": +"@noble/secp256k1@~1.6.0", "@noble/secp256k1@1.6.3": version "1.6.3" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.6.3.tgz#7eed12d9f4404b416999d0c87686836c4c5c9b94" + resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz" integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== -"@noble/secp256k1@1.7.1", "@noble/secp256k1@~1.7.0": +"@noble/secp256k1@~1.7.0", "@noble/secp256k1@1.7.1": version "1.7.1" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" + resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz" integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -903,7 +1087,7 @@ "@nomicfoundation/ethereumjs-block@5.0.2": version "5.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.2.tgz#13a7968f5964f1697da941281b7f7943b0465d04" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.2.tgz" integrity sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q== dependencies: "@nomicfoundation/ethereumjs-common" "4.0.2" @@ -916,7 +1100,7 @@ "@nomicfoundation/ethereumjs-blockchain@7.0.2": version "7.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.2.tgz#45323b673b3d2fab6b5008535340d1b8fea7d446" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.2.tgz" integrity sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w== dependencies: "@nomicfoundation/ethereumjs-block" "5.0.2" @@ -935,7 +1119,7 @@ "@nomicfoundation/ethereumjs-common@4.0.2": version "4.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.2.tgz#a15d1651ca36757588fdaf2a7d381a150662a3c3" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.2.tgz" integrity sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg== dependencies: "@nomicfoundation/ethereumjs-util" "9.0.2" @@ -943,7 +1127,7 @@ "@nomicfoundation/ethereumjs-ethash@3.0.2": version "3.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.2.tgz#da77147f806401ee996bfddfa6487500118addca" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.2.tgz" integrity sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg== dependencies: "@nomicfoundation/ethereumjs-block" "5.0.2" @@ -955,7 +1139,7 @@ "@nomicfoundation/ethereumjs-evm@2.0.2": version "2.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.2.tgz#4c2f4b84c056047102a4fa41c127454e3f0cfcf6" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.2.tgz" integrity sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ== dependencies: "@ethersproject/providers" "^5.7.1" @@ -969,12 +1153,12 @@ "@nomicfoundation/ethereumjs-rlp@5.0.2": version "5.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.2.tgz#4fee8dc58a53ac6ae87fb1fca7c15dc06c6b5dea" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.2.tgz" integrity sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA== "@nomicfoundation/ethereumjs-statemanager@2.0.2": version "2.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.2.tgz#3ba4253b29b1211cafe4f9265fee5a0d780976e0" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.2.tgz" integrity sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA== dependencies: "@nomicfoundation/ethereumjs-common" "4.0.2" @@ -986,7 +1170,7 @@ "@nomicfoundation/ethereumjs-trie@6.0.2": version "6.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.2.tgz#9a6dbd28482dca1bc162d12b3733acab8cd12835" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.2.tgz" integrity sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ== dependencies: "@nomicfoundation/ethereumjs-rlp" "5.0.2" @@ -997,7 +1181,7 @@ "@nomicfoundation/ethereumjs-tx@5.0.2": version "5.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.2.tgz#117813b69c0fdc14dd0446698a64be6df71d7e56" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.2.tgz" integrity sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g== dependencies: "@chainsafe/ssz" "^0.9.2" @@ -1009,7 +1193,7 @@ "@nomicfoundation/ethereumjs-util@9.0.2": version "9.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.2.tgz#16bdc1bb36f333b8a3559bbb4b17dac805ce904d" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.2.tgz" integrity sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ== dependencies: "@chainsafe/ssz" "^0.10.0" @@ -1018,7 +1202,7 @@ "@nomicfoundation/ethereumjs-vm@7.0.2": version "7.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.2.tgz#3b0852cb3584df0e18c182d0672a3596c9ca95e6" + resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.2.tgz" integrity sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA== dependencies: "@nomicfoundation/ethereumjs-block" "5.0.2" @@ -1037,64 +1221,19 @@ "@nomicfoundation/hardhat-network-helpers@^1.0.7": version "1.0.10" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz#c61042ceb104fdd6c10017859fdef6529c1d6585" + resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz" integrity sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ== dependencies: ethereumjs-util "^7.1.4" "@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1": version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz#4c858096b1c17fe58a474fe81b46815f93645c15" + resolved "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz" integrity sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w== -"@nomicfoundation/solidity-analyzer-darwin-x64@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz#6e25ccdf6e2d22389c35553b64fe6f3fdaec432c" - integrity sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA== - -"@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz#0a224ea50317139caeebcdedd435c28a039d169c" - integrity sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA== - -"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz#dfa085d9ffab9efb2e7b383aed3f557f7687ac2b" - integrity sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg== - -"@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz#c9e06b5d513dd3ab02a7ac069c160051675889a4" - integrity sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w== - -"@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz#8d328d16839e52571f72f2998c81e46bf320f893" - integrity sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA== - -"@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz#9b49d0634b5976bb5ed1604a1e1b736f390959bb" - integrity sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w== - -"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz#e2867af7264ebbcc3131ef837878955dd6a3676f" - integrity sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg== - -"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz#0685f78608dd516c8cdfb4896ed451317e559585" - integrity sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ== - -"@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz#c9a44f7108646f083b82e851486e0f6aeb785836" - integrity sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw== - "@nomicfoundation/solidity-analyzer@^0.1.0": version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz#f5f4d36d3f66752f59a57e7208cd856f3ddf6f2d" + resolved "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz" integrity sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg== optionalDependencies: "@nomicfoundation/solidity-analyzer-darwin-arm64" "0.1.1" @@ -1108,14 +1247,14 @@ "@nomicfoundation/solidity-analyzer-win32-ia32-msvc" "0.1.1" "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.1" -"@nomiclabs/hardhat-ethers@^2.2.2": +"@nomiclabs/hardhat-ethers@^2.0.0", "@nomiclabs/hardhat-ethers@^2.2.2": version "2.2.3" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz#b41053e360c31a32c2640c9a45ee981a7e603fe0" + resolved "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz" integrity sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg== "@nomiclabs/hardhat-etherscan@^3.1.6": version "3.1.7" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.7.tgz#72e3d5bd5d0ceb695e097a7f6f5ff6fcbf062b9a" + resolved "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.7.tgz" integrity sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ== dependencies: "@ethersproject/abi" "^5.1.2" @@ -1131,37 +1270,47 @@ "@nomiclabs/hardhat-waffle@^2.0.5": version "2.0.6" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.6.tgz#d11cb063a5f61a77806053e54009c40ddee49a54" + resolved "https://registry.npmjs.org/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.6.tgz" integrity sha512-+Wz0hwmJGSI17B+BhU/qFRZ1l6/xMW82QGXE/Gi+WTmwgJrQefuBs1lIf7hzQ1hLk6hpkvb/zwcNkpVKRYTQYg== "@nomiclabs/hardhat-web3@^2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-web3/-/hardhat-web3-2.0.0.tgz#2d9850cb285a2cebe1bd718ef26a9523542e52a9" + resolved "https://registry.npmjs.org/@nomiclabs/hardhat-web3/-/hardhat-web3-2.0.0.tgz" integrity sha512-zt4xN+D+fKl3wW2YlTX3k9APR3XZgPkxJYf36AcliJn3oujnKEVRZaHu0PhgLjO+gR+F/kiYayo9fgd2L8970Q== dependencies: "@types/bignumber.js" "^5.0.0" "@openzeppelin/contract-loader@^0.6.2": version "0.6.3" - resolved "https://registry.yarnpkg.com/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz#61a7b44de327e40b7d53f39e0fb59bbf847335c3" + resolved "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz" integrity sha512-cOFIjBjwbGgZhDZsitNgJl0Ye1rd5yu/Yx5LMgeq3u0ZYzldm4uObzHDFq4gjDdoypvyORjjJa3BlFA7eAnVIg== dependencies: find-up "^4.1.0" fs-extra "^8.1.0" -"@openzeppelin/contracts@^4.9.2": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.5.tgz#1eed23d4844c861a1835b5d33507c1017fa98de8" - integrity sha512-ZK+W5mVhRppff9BE6YdR8CC52C8zAvsVAiWhEtQ5+oNxFE6h1WdeWo+FJSF8KKvtxxVYZ7MTP/5KoVpAU3aSWg== +"@openzeppelin/contracts-upgradeable-4.7.3@npm:@openzeppelin/contracts-upgradeable@v4.7.3": + version "4.7.3" + resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.7.3.tgz" + integrity sha512-+wuegAMaLcZnLCJIvrVUDzA9z/Wp93f0Dla/4jJvIhijRrPabjQbZe6fWiECLaJyfn5ci9fqf9vTw3xpQOad2A== + +"@openzeppelin/contracts-v0.7@npm:@openzeppelin/contracts@v3.4.2": + version "3.4.2" + resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.2.tgz" + integrity sha512-z0zMCjyhhp4y7XKAcDAi3Vgms4T2PstwBdahiO0+9NaGICQKjynK3wduSRplTgk4LXmoO1yfDGO5RbjKYxtuxA== -"@openzeppelin/contracts@^4.9.3": +"@openzeppelin/contracts@^4.9.2", "@openzeppelin/contracts@^4.9.3": version "4.9.3" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.3.tgz#00d7a8cf35a475b160b3f0293a6403c511099364" + resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.3.tgz" integrity sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg== +"@openzeppelin/contracts@~4.3.3": + version "4.3.3" + resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.3.tgz" + integrity sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g== + "@openzeppelin/test-helpers@^0.5.16": version "0.5.16" - resolved "https://registry.yarnpkg.com/@openzeppelin/test-helpers/-/test-helpers-0.5.16.tgz#2c9054f85069dfbfb5e8cef3ed781e8caf241fb3" + resolved "https://registry.npmjs.org/@openzeppelin/test-helpers/-/test-helpers-0.5.16.tgz" integrity sha512-T1EvspSfH1qQO/sgGlskLfYVBbqzJR23SZzYl/6B2JnT4EhThcI85UpvDk0BkLWKaDScQTabGHt4GzHW+3SfZg== dependencies: "@openzeppelin/contract-loader" "^0.6.2" @@ -1177,12 +1326,12 @@ "@rari-capital/solmate@^6.4.0": version "6.4.0" - resolved "https://registry.yarnpkg.com/@rari-capital/solmate/-/solmate-6.4.0.tgz#c6ee4110c8075f14b415e420b13bd8bdbbc93d9e" + resolved "https://registry.npmjs.org/@rari-capital/solmate/-/solmate-6.4.0.tgz" integrity sha512-BXWIHHbG5Zbgrxi0qVYe0Zs+bfx+XgOciVUACjuIApV0KzC0kY8XdO1higusIei/ZKCC+GUKdcdQZflxYPUTKQ== "@resolver-engine/core@^0.3.3": version "0.3.3" - resolved "https://registry.yarnpkg.com/@resolver-engine/core/-/core-0.3.3.tgz#590f77d85d45bc7ecc4e06c654f41345db6ca967" + resolved "https://registry.npmjs.org/@resolver-engine/core/-/core-0.3.3.tgz" integrity sha512-eB8nEbKDJJBi5p5SrvrvILn4a0h42bKtbCTri3ZxCGt6UvoQyp7HnGOfki944bUjBSHKK3RvgfViHn+kqdXtnQ== dependencies: debug "^3.1.0" @@ -1191,7 +1340,7 @@ "@resolver-engine/fs@^0.3.3": version "0.3.3" - resolved "https://registry.yarnpkg.com/@resolver-engine/fs/-/fs-0.3.3.tgz#fbf83fa0c4f60154a82c817d2fe3f3b0c049a973" + resolved "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.3.3.tgz" integrity sha512-wQ9RhPUcny02Wm0IuJwYMyAG8fXVeKdmhm8xizNByD4ryZlx6PP6kRen+t/haF43cMfmaV7T3Cx6ChOdHEhFUQ== dependencies: "@resolver-engine/core" "^0.3.3" @@ -1199,7 +1348,7 @@ "@resolver-engine/imports-fs@^0.3.3": version "0.3.3" - resolved "https://registry.yarnpkg.com/@resolver-engine/imports-fs/-/imports-fs-0.3.3.tgz#4085db4b8d3c03feb7a425fbfcf5325c0d1e6c1b" + resolved "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.3.3.tgz" integrity sha512-7Pjg/ZAZtxpeyCFlZR5zqYkz+Wdo84ugB5LApwriT8XFeQoLwGUj4tZFFvvCuxaNCcqZzCYbonJgmGObYBzyCA== dependencies: "@resolver-engine/fs" "^0.3.3" @@ -1208,7 +1357,7 @@ "@resolver-engine/imports@^0.3.3": version "0.3.3" - resolved "https://registry.yarnpkg.com/@resolver-engine/imports/-/imports-0.3.3.tgz#badfb513bb3ff3c1ee9fd56073e3144245588bcc" + resolved "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.3.3.tgz" integrity sha512-anHpS4wN4sRMwsAbMXhMfOD/y4a4Oo0Cw/5+rue7hSwGWsDOQaAU1ClK1OxjUC35/peazxEl8JaSRRS+Xb8t3Q== dependencies: "@resolver-engine/core" "^0.3.3" @@ -1219,12 +1368,12 @@ "@scure/base@~1.1.0": version "1.1.3" - resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f" + resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.3.tgz" integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q== "@scure/bip32@1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.1.0.tgz#dea45875e7fbc720c2b4560325f1cf5d2246d95b" + resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz" integrity sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q== dependencies: "@noble/hashes" "~1.1.1" @@ -1233,7 +1382,7 @@ "@scure/bip32@1.1.5": version "1.1.5" - resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.1.5.tgz#d2ccae16dcc2e75bc1d75f5ef3c66a338d1ba300" + resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz" integrity sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw== dependencies: "@noble/hashes" "~1.2.0" @@ -1242,7 +1391,7 @@ "@scure/bip32@1.3.1": version "1.3.1" - resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.1.tgz#7248aea723667f98160f593d621c47e208ccbb10" + resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.1.tgz" integrity sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A== dependencies: "@noble/curves" "~1.1.0" @@ -1251,7 +1400,7 @@ "@scure/bip39@1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.0.tgz#92f11d095bae025f166bef3defcc5bf4945d419a" + resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz" integrity sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w== dependencies: "@noble/hashes" "~1.1.1" @@ -1259,7 +1408,7 @@ "@scure/bip39@1.1.1": version "1.1.1" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.1.tgz#b54557b2e86214319405db819c4b6a370cf340c5" + resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz" integrity sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg== dependencies: "@noble/hashes" "~1.2.0" @@ -1267,7 +1416,7 @@ "@scure/bip39@1.2.1": version "1.2.1" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a" + resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz" integrity sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg== dependencies: "@noble/hashes" "~1.3.0" @@ -1275,7 +1424,7 @@ "@sentry/core@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3" + resolved "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz" integrity sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg== dependencies: "@sentry/hub" "5.30.0" @@ -1286,7 +1435,7 @@ "@sentry/hub@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.30.0.tgz#2453be9b9cb903404366e198bd30c7ca74cdc100" + resolved "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz" integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ== dependencies: "@sentry/types" "5.30.0" @@ -1295,7 +1444,7 @@ "@sentry/minimal@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.30.0.tgz#ce3d3a6a273428e0084adcb800bc12e72d34637b" + resolved "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz" integrity sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw== dependencies: "@sentry/hub" "5.30.0" @@ -1304,7 +1453,7 @@ "@sentry/node@^5.18.1": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.30.0.tgz#4ca479e799b1021285d7fe12ac0858951c11cd48" + resolved "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz" integrity sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg== dependencies: "@sentry/core" "5.30.0" @@ -1319,7 +1468,7 @@ "@sentry/tracing@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-5.30.0.tgz#501d21f00c3f3be7f7635d8710da70d9419d4e1f" + resolved "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz" integrity sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw== dependencies: "@sentry/hub" "5.30.0" @@ -1330,12 +1479,12 @@ "@sentry/types@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.30.0.tgz#19709bbe12a1a0115bc790b8942917da5636f402" + resolved "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz" integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw== "@sentry/utils@5.30.0": version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.30.0.tgz#9a5bd7ccff85ccfe7856d493bffa64cabc41e980" + resolved "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz" integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww== dependencies: "@sentry/types" "5.30.0" @@ -1343,40 +1492,40 @@ "@sindresorhus/is@^4.0.0", "@sindresorhus/is@^4.6.0": version "4.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== "@solidity-parser/parser@^0.14.0": version "0.14.5" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.5.tgz#87bc3cc7b068e08195c219c91cd8ddff5ef1a804" + resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz" integrity sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg== dependencies: antlr4ts "^0.5.0-alpha.4" "@solidity-parser/parser@^0.16.0": version "0.16.1" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.16.1.tgz#f7c8a686974e1536da0105466c4db6727311253c" + resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.1.tgz" integrity sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw== dependencies: antlr4ts "^0.5.0-alpha.4" "@szmarczak/http-timer@^4.0.5": version "4.0.6" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + 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" "@szmarczak/http-timer@^5.0.1": version "5.0.1" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" + 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" "@truffle/abi-utils@^1.0.3": version "1.0.3" - resolved "https://registry.yarnpkg.com/@truffle/abi-utils/-/abi-utils-1.0.3.tgz#9f0df7a8aaf5e815bee47e0ad26bd4c91e4045f2" + resolved "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-1.0.3.tgz" integrity sha512-AWhs01HCShaVKjml7Z4AbVREr/u4oiWxCcoR7Cktm0mEvtT04pvnxW5xB/cI4znRkrbPdFQlFt67kgrAjesYkw== dependencies: change-case "3.0.2" @@ -1385,12 +1534,12 @@ "@truffle/blockchain-utils@^0.1.9": version "0.1.9" - resolved "https://registry.yarnpkg.com/@truffle/blockchain-utils/-/blockchain-utils-0.1.9.tgz#d9b55bd23a134578e4217bae55a6dfbbb038d6dc" + resolved "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.9.tgz" integrity sha512-RHfumgbIVo68Rv9ofDYfynjnYZIfP/f1vZy4RoqkfYAO+fqfc58PDRzB1WAGq2U6GPuOnipOJxQhnqNnffORZg== "@truffle/codec@^0.17.3": version "0.17.3" - resolved "https://registry.yarnpkg.com/@truffle/codec/-/codec-0.17.3.tgz#94057e56e1a947594b35eba498d96915df3861d2" + resolved "https://registry.npmjs.org/@truffle/codec/-/codec-0.17.3.tgz" integrity sha512-Ko/+dsnntNyrJa57jUD9u4qx9nQby+H4GsUO6yjiCPSX0TQnEHK08XWqBSg0WdmCH2+h0y1nr2CXSx8gbZapxg== dependencies: "@truffle/abi-utils" "^1.0.3" @@ -1406,7 +1555,7 @@ "@truffle/compile-common@^0.9.8": version "0.9.8" - resolved "https://registry.yarnpkg.com/@truffle/compile-common/-/compile-common-0.9.8.tgz#f91507c895852289a17bf401eefebc293c4c69f0" + resolved "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.8.tgz" integrity sha512-DTpiyo32t/YhLI1spn84D3MHYHrnoVqO+Gp7ZHrYNwDs86mAxtNiH5lsVzSb8cPgiqlvNsRCU9nm9R0YmKMTBQ== dependencies: "@truffle/error" "^0.2.2" @@ -1414,7 +1563,7 @@ "@truffle/contract-schema@^3.4.16": version "3.4.16" - resolved "https://registry.yarnpkg.com/@truffle/contract-schema/-/contract-schema-3.4.16.tgz#c529c3f230db407b2f03290373b20b7366f2d37e" + resolved "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.16.tgz" integrity sha512-g0WNYR/J327DqtJPI70ubS19K1Fth/1wxt2jFqLsPmz5cGZVjCwuhiie+LfBde4/Mc9QR8G+L3wtmT5cyoBxAg== dependencies: ajv "^6.10.0" @@ -1422,7 +1571,7 @@ "@truffle/contract@^4.0.35": version "4.6.31" - resolved "https://registry.yarnpkg.com/@truffle/contract/-/contract-4.6.31.tgz#75cb059689ce73b365675d9650718908c01b6b58" + resolved "https://registry.npmjs.org/@truffle/contract/-/contract-4.6.31.tgz" integrity sha512-s+oHDpXASnZosiCdzu+X1Tx5mUJUs1L1CYXIcgRmzMghzqJkaUFmR6NpNo7nJYliYbO+O9/aW8oCKqQ7rCHfmQ== dependencies: "@ensdomains/ensjs" "^2.1.0" @@ -1442,7 +1591,7 @@ "@truffle/debug-utils@^6.0.57": version "6.0.57" - resolved "https://registry.yarnpkg.com/@truffle/debug-utils/-/debug-utils-6.0.57.tgz#4e9a1051221c5f467daa398b0ca638d8b6408a82" + resolved "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.57.tgz" integrity sha512-Q6oI7zLaeNLB69ixjwZk2UZEWBY6b2OD1sjLMGDKBGR7GaHYiw96GLR2PFgPH1uwEeLmV4N78LYaQCrDsHbNeA== dependencies: "@truffle/codec" "^0.17.3" @@ -1454,12 +1603,12 @@ "@truffle/error@^0.2.2": version "0.2.2" - resolved "https://registry.yarnpkg.com/@truffle/error/-/error-0.2.2.tgz#1b4c4237c14dda792f20bd4f19ff4e4585b47796" + resolved "https://registry.npmjs.org/@truffle/error/-/error-0.2.2.tgz" integrity sha512-TqbzJ0O8DHh34cu8gDujnYl4dUl6o2DE4PR6iokbybvnIm/L2xl6+Gv1VC+YJS45xfH83Yo3/Zyg/9Oq8/xZWg== "@truffle/hdwallet-provider@latest": version "2.1.15" - resolved "https://registry.yarnpkg.com/@truffle/hdwallet-provider/-/hdwallet-provider-2.1.15.tgz#fbf8e19d112db81b109ebc06ac6d9d42124b512c" + resolved "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-2.1.15.tgz" integrity sha512-I5cSS+5LygA3WFzru9aC5+yDXVowEEbLCx0ckl/RqJ2/SCiYXkzYlR5/DjjDJuCtYhivhrn2RP9AheeFlRF+qw== dependencies: "@ethereumjs/common" "^2.4.0" @@ -1477,7 +1626,7 @@ "@truffle/hdwallet@^0.1.4": version "0.1.4" - resolved "https://registry.yarnpkg.com/@truffle/hdwallet/-/hdwallet-0.1.4.tgz#eeb21163d9e295692a0ba2fa848cc7b5a29b0ded" + resolved "https://registry.npmjs.org/@truffle/hdwallet/-/hdwallet-0.1.4.tgz" integrity sha512-D3SN0iw3sMWUXjWAedP6RJtopo9qQXYi80inzbtcsoso4VhxFxCwFvCErCl4b27AEJ9pkAtgnxEFRaSKdMmi1Q== dependencies: ethereum-cryptography "1.1.2" @@ -1486,7 +1635,7 @@ "@truffle/interface-adapter@^0.5.37": version "0.5.37" - resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.5.37.tgz#95d249c1912d2baaa63c54e8a138d3f476a1181a" + resolved "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.37.tgz" integrity sha512-lPH9MDgU+7sNDlJSClwyOwPCfuOimqsCx0HfGkznL3mcFRymc1pukAR1k17zn7ErHqBwJjiKAZ6Ri72KkS+IWw== dependencies: bn.js "^5.1.3" @@ -1495,21 +1644,21 @@ "@trufflesuite/bigint-buffer@1.1.10": version "1.1.10" - resolved "https://registry.yarnpkg.com/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz#a1d9ca22d3cad1a138b78baaf15543637a3e1692" + resolved "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz" integrity sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw== dependencies: node-gyp-build "4.4.0" "@trufflesuite/bigint-buffer@1.1.9": version "1.1.9" - resolved "https://registry.yarnpkg.com/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.9.tgz#e2604d76e1e4747b74376d68f1312f9944d0d75d" + resolved "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.9.tgz" integrity sha512-bdM5cEGCOhDSwminryHJbRmXc1x7dPKg6Pqns3qyTwFlxsqUgxE29lsERS3PlIW1HTjoIGMUqsk1zQQwST1Yxw== dependencies: node-gyp-build "4.3.0" "@trufflesuite/chromafi@^3.0.0": version "3.0.0" - resolved "https://registry.yarnpkg.com/@trufflesuite/chromafi/-/chromafi-3.0.0.tgz#f6956408c1af6a38a6ed1657783ce59504a1eb8b" + resolved "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-3.0.0.tgz" integrity sha512-oqWcOqn8nT1bwlPPfidfzS55vqcIDdpfzo3HbU9EnUmcSTX+I8z0UyUFI3tZQjByVJulbzxHxUGS3ZJPwK/GPQ== dependencies: camelcase "^4.1.0" @@ -1523,27 +1672,27 @@ "@tsconfig/node10@^1.0.7": version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== "@tsconfig/node12@^1.0.7": version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== "@tsconfig/node14@^1.0.0": version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== -"@typechain/ethers-v5@^10.0.0", "@typechain/ethers-v5@^10.2.0": +"@typechain/ethers-v5@^10.0.0", "@typechain/ethers-v5@^10.2.0", "@typechain/ethers-v5@^10.2.1": version "10.2.1" - resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz#50241e6957683281ecfa03fb5a6724d8a3ce2391" + resolved "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz" integrity sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A== dependencies: lodash "^4.17.15" @@ -1551,40 +1700,40 @@ "@typechain/hardhat@^6.1.4": version "6.1.6" - resolved "https://registry.yarnpkg.com/@typechain/hardhat/-/hardhat-6.1.6.tgz#1a749eb35e5054c80df531cf440819cb347c62ea" + resolved "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-6.1.6.tgz" integrity sha512-BiVnegSs+ZHVymyidtK472syodx1sXYlYJJixZfRstHVGYTi8V1O7QG4nsjyb0PC/LORcq7sfBUcHto1y6UgJA== dependencies: fs-extra "^9.1.0" "@types/abstract-leveldown@*": version "7.2.3" - resolved "https://registry.yarnpkg.com/@types/abstract-leveldown/-/abstract-leveldown-7.2.3.tgz#c5c57b76c16d10ddf1a693bbadb62d0f8cdff8ad" + resolved "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.3.tgz" integrity sha512-YAdL8tIYbiKoFjAf/0Ir3mvRJ/iFvBP/FK0I8Xa5rGWgVcq0xWOEInzlJfs6TIPWFweEOTKgNSBdxneUcHRvaw== "@types/bignumber.js@^5.0.0": version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/bignumber.js/-/bignumber.js-5.0.0.tgz#d9f1a378509f3010a3255e9cc822ad0eeb4ab969" + resolved "https://registry.npmjs.org/@types/bignumber.js/-/bignumber.js-5.0.0.tgz" integrity sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA== dependencies: bignumber.js "*" "@types/bn.js@*", "@types/bn.js@^5.1.0", "@types/bn.js@^5.1.1": version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.2.tgz#162f5238c46f4bcbac07a98561724eca1fcf0c5e" + resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.2.tgz" integrity sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg== dependencies: "@types/node" "*" "@types/bn.js@^4.11.3": version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" + resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz" integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== dependencies: "@types/node" "*" "@types/cacheable-request@^6.0.1", "@types/cacheable-request@^6.0.2": version "6.0.3" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" + resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz" integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== dependencies: "@types/http-cache-semantics" "*" @@ -1592,35 +1741,35 @@ "@types/node" "*" "@types/responselike" "^1.0.0" -"@types/chai@^4.3.4": +"@types/chai@*", "@types/chai@^4.3.4": version "4.3.6" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.6.tgz#7b489e8baf393d5dd1266fb203ddd4ea941259e6" + resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.6.tgz" integrity sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw== "@types/concat-stream@^1.6.0": version "1.6.1" - resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" + resolved "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz" integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== dependencies: "@types/node" "*" "@types/ethereum-protocol@*", "@types/ethereum-protocol@^1.0.0": version "1.0.3" - resolved "https://registry.yarnpkg.com/@types/ethereum-protocol/-/ethereum-protocol-1.0.3.tgz#64a4001b8ef7d3f09e89123feb8c35d04efd00a7" + resolved "https://registry.npmjs.org/@types/ethereum-protocol/-/ethereum-protocol-1.0.3.tgz" integrity sha512-peaCYb+wAT3Gnttt8Ep6+b3ciVK+mWX5wyVnJiDtmWXU1c9RXi5qDxEjGyZrjU/9EYdXPd3hMiXXBjDDPu96yQ== dependencies: bignumber.js "7.2.1" "@types/form-data@0.0.33": version "0.0.33" - resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-0.0.33.tgz#c9ac85b2a5fd18435b8c85d9ecb50e6d6c893ff8" + resolved "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz" integrity sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw== dependencies: "@types/node" "*" "@types/glob@^7.1.1": version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== dependencies: "@types/minimatch" "*" @@ -1628,120 +1777,120 @@ "@types/http-cache-semantics@*": version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz#abe102d06ccda1efdf0ed98c10ccf7f36a785a41" + resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz" integrity sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw== "@types/json-schema@^7.0.9": version "7.0.13" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz" integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ== "@types/json5@^0.0.29": version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/keyv@^3.1.4": version "3.1.4" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz" integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== dependencies: "@types/node" "*" "@types/level-errors@*": version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/level-errors/-/level-errors-3.0.0.tgz#15c1f4915a5ef763b51651b15e90f6dc081b96a8" + resolved "https://registry.npmjs.org/@types/level-errors/-/level-errors-3.0.0.tgz" integrity sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ== "@types/levelup@^4.3.0": version "4.3.3" - resolved "https://registry.yarnpkg.com/@types/levelup/-/levelup-4.3.3.tgz#4dc2b77db079b1cf855562ad52321aa4241b8ef4" + resolved "https://registry.npmjs.org/@types/levelup/-/levelup-4.3.3.tgz" integrity sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA== dependencies: "@types/abstract-leveldown" "*" "@types/level-errors" "*" "@types/node" "*" -"@types/lru-cache@5.1.1", "@types/lru-cache@^5.1.0": +"@types/lru-cache@^5.1.0": + version "5.1.1" + resolved "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== + +"@types/lru-cache@5.1.1": version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" + resolved "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== "@types/minimatch@*": version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== "@types/mkdirp@^0.5.2": version "0.5.2" - resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz#503aacfe5cc2703d5484326b1b27efa67a339c1f" + resolved "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz" integrity sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg== dependencies: "@types/node" "*" "@types/mocha@^9.1.1": version "9.1.1" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.1.1.tgz#e7c4f1001eefa4b8afbd1eee27a237fee3bf29c4" + resolved "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz" integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw== "@types/node-fetch@^2.6.1": version "2.6.6" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.6.tgz#b72f3f4bc0c0afee1c0bc9cff68e041d01e3e779" + resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.6.tgz" integrity sha512-95X8guJYhfqiuVVhRFxVQcf4hW/2bCuoPwDasMf/531STFoNoWTT7YDnWdXHEZKqAGUigmpG31r2FE70LwnzJw== dependencies: "@types/node" "*" form-data "^4.0.0" -"@types/node@*": - version "20.7.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.7.0.tgz#c03de4572f114a940bc2ca909a33ddb2b925e470" - integrity sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg== - -"@types/node@11.11.6": - version "11.11.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" - integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== +"@types/node@*", "@types/node@^18.17.14": + version "18.18.0" + resolved "https://registry.npmjs.org/@types/node/-/node-18.18.0.tgz" + integrity sha512-3xA4X31gHT1F1l38ATDIL9GpRLdwVhnEFC8Uikv5ZLlXATwrCYyPq7ZWHxzxc3J/30SUiwiYT+bQe0/XvKlWbw== "@types/node@^10.0.3": version "10.17.60" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + resolved "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== "@types/node@^12.12.6": version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" + resolved "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== -"@types/node@^18.17.14": - version "18.18.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.0.tgz#bd19d5133a6e5e2d0152ec079ac27c120e7f1763" - integrity sha512-3xA4X31gHT1F1l38ATDIL9GpRLdwVhnEFC8Uikv5ZLlXATwrCYyPq7ZWHxzxc3J/30SUiwiYT+bQe0/XvKlWbw== - "@types/node@^8.0.0": version "8.10.66" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" + resolved "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz" integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== +"@types/node@11.11.6": + version "11.11.6" + resolved "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz" + integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== + "@types/pbkdf2@^3.0.0": version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" + resolved "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz" integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== dependencies: "@types/node" "*" "@types/prettier@^2.1.1": version "2.7.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz" integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== "@types/qs@^6.2.31": version "6.9.8" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.8.tgz#f2a7de3c107b89b441e071d5472e6b726b4adf45" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz" integrity sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg== "@types/readable-stream@^2.3.13": version "2.3.15" - resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.15.tgz#3d79c9ceb1b6a57d5f6e6976f489b9b5384321ae" + resolved "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz" integrity sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ== dependencies: "@types/node" "*" @@ -1749,43 +1898,63 @@ "@types/responselike@^1.0.0": version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz" integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== dependencies: "@types/node" "*" "@types/secp256k1@^4.0.1": version "4.0.4" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.4.tgz#33c760de627fce1f449c2d4270da07e4da54c830" + resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.4.tgz" integrity sha512-oN0PFsYxDZnX/qSJ5S5OwaEDTYfekhvaM5vqui2bu1AA39pKofmgL104Q29KiOXizXS2yLjSzc5YdTyMKdcy4A== dependencies: "@types/node" "*" "@types/seedrandom@3.0.1": version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-3.0.1.tgz#1254750a4fec4aff2ebec088ccd0bb02e91fedb4" + resolved "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.1.tgz" integrity sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw== "@types/semver@^7.3.12": version "7.5.3" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.3.tgz#9a726e116beb26c24f1ccd6850201e1246122e04" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz" integrity sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw== +"@types/sinon-chai@^3.2.3": + version "3.2.12" + resolved "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.12.tgz" + integrity sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ== + dependencies: + "@types/chai" "*" + "@types/sinon" "*" + +"@types/sinon@*": + version "17.0.3" + resolved "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.3.tgz" + integrity sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw== + dependencies: + "@types/sinonjs__fake-timers" "*" + +"@types/sinonjs__fake-timers@*": + version "8.1.5" + resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz" + integrity sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ== + "@types/underscore@*": version "1.11.9" - resolved "https://registry.yarnpkg.com/@types/underscore/-/underscore-1.11.9.tgz#76a071d27e544e422dbf00f956818b1057f377b2" + resolved "https://registry.npmjs.org/@types/underscore/-/underscore-1.11.9.tgz" integrity sha512-M63wKUdsjDFUfyFt1TCUZHGFk9KDAa5JP0adNUErbm0U45Lr06HtANdYRP+GyleEopEoZ4UyBcdAC5TnW4Uz2w== "@types/web3-provider-engine@^14.0.0": version "14.0.2" - resolved "https://registry.yarnpkg.com/@types/web3-provider-engine/-/web3-provider-engine-14.0.2.tgz#ff571f2077abab015616edec3b6437e8dc1f8e40" + resolved "https://registry.npmjs.org/@types/web3-provider-engine/-/web3-provider-engine-14.0.2.tgz" integrity sha512-i+vgIh873kDu6MnYZkIqrho4JCan1c8TcPnYY6te2lq1ODD4SPA8JxFCyQjK+vwbLMr5F3N/I37AfK/wxiyuEA== dependencies: "@types/ethereum-protocol" "*" "@types/web3@1.0.20": version "1.0.20" - resolved "https://registry.yarnpkg.com/@types/web3/-/web3-1.0.20.tgz#234dd1f976702c0daaff147c80f24a5582e09d0e" + resolved "https://registry.npmjs.org/@types/web3/-/web3-1.0.20.tgz" integrity sha512-KTDlFuYjzCUlBDGt35Ir5QRtyV9klF84MMKUsEJK10sTWga/71V+8VYLT7yysjuBjaOx2uFYtIWNGoz3yrNDlg== dependencies: "@types/bn.js" "*" @@ -1793,7 +1962,7 @@ "@typescript-eslint/eslint-plugin@^5.60.0": version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz" integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== dependencies: "@eslint-community/regexpp" "^4.4.0" @@ -1807,9 +1976,9 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.60.0": +"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.60.0": version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz" integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== dependencies: "@typescript-eslint/scope-manager" "5.62.0" @@ -1819,7 +1988,7 @@ "@typescript-eslint/scope-manager@5.62.0": version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz" integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== dependencies: "@typescript-eslint/types" "5.62.0" @@ -1827,7 +1996,7 @@ "@typescript-eslint/type-utils@5.62.0": version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz" integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== dependencies: "@typescript-eslint/typescript-estree" "5.62.0" @@ -1837,12 +2006,12 @@ "@typescript-eslint/types@5.62.0": version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz" integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== dependencies: "@typescript-eslint/types" "5.62.0" @@ -1855,7 +2024,7 @@ "@typescript-eslint/utils@5.62.0": version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz" integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" @@ -1869,30 +2038,25 @@ "@typescript-eslint/visitor-keys@5.62.0": version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz" integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== dependencies: "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -abbrev@1.0.x: +abbrev@1, abbrev@1.0.x: version "1.0.9" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz" integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== abortcontroller-polyfill@^1.7.3, abortcontroller-polyfill@^1.7.5: version "1.7.5" - resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed" + resolved "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz" integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ== abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" + resolved "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz" integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== dependencies: buffer "^6.0.3" @@ -1905,7 +2069,7 @@ abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: abstract-leveldown@^6.2.1: version "6.3.0" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz#d25221d1e6612f820c35963ba4bd739928f6026a" + resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz" integrity sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ== dependencies: buffer "^5.5.0" @@ -1916,7 +2080,7 @@ abstract-leveldown@^6.2.1: abstract-leveldown@^7.2.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz#08d19d4e26fb5be426f7a57004851b39e1795a2e" + resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz" integrity sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ== dependencies: buffer "^6.0.3" @@ -1928,21 +2092,21 @@ abstract-leveldown@^7.2.0: abstract-leveldown@~2.6.0: version "2.6.3" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz#1c5e8c6a5ef965ae8c35dfb3a8770c476b82c4b8" + resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz" integrity sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA== dependencies: xtend "~4.0.0" abstract-leveldown@~2.7.1: version "2.7.2" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz#87a44d7ebebc341d59665204834c8b7e0932cc93" + resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz" integrity sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w== dependencies: xtend "~4.0.0" abstract-leveldown@~6.2.1: version "6.2.3" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz#036543d87e3710f2528e47040bc3261b77a9a8eb" + resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz" integrity sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ== dependencies: buffer "^5.5.0" @@ -1953,7 +2117,7 @@ abstract-leveldown@~6.2.1: accepts@~1.3.8: version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: mime-types "~2.1.34" @@ -1961,44 +2125,44 @@ accepts@~1.3.8: acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.1.1: version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^8.4.1, acorn@^8.9.0: +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.4.1, acorn@^8.9.0: version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== address@^1.0.1: version "1.2.2" - resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" + resolved "https://registry.npmjs.org/address/-/address-1.2.2.tgz" integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== adm-zip@^0.4.16: version "0.4.16" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" + resolved "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz" integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== aes-js@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== agent-base@6: version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" @@ -2006,7 +2170,7 @@ aggregate-error@^3.0.0: ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.6: version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -2016,7 +2180,7 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.6: ajv@^8.0.1: version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== dependencies: fast-deep-equal "^3.1.1" @@ -2026,83 +2190,90 @@ ajv@^8.0.1: amdefine@>=0.0.4: version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + resolved "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== -ansi-colors@3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" - integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== - -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - ansi-colors@^3.2.3: version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== ansi-colors@^4.1.1: version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== +ansi-colors@3.2.3: + version "3.2.3" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz" + integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== + +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + ansi-escapes@^4.3.0: version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== ansi-regex@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz" integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^4.1.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz" integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.0: +ansi-styles@^4.0.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" antlr4@^4.11.0: version "4.13.1" - resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.13.1.tgz#1e0a1830a08faeb86217cb2e6c34716004e4253d" + resolved "https://registry.npmjs.org/antlr4/-/antlr4-4.13.1.tgz" integrity sha512-kiXTspaRYvnIArgE97z5YVVf/cDVQABr3abFRR6mE7yesLMkgu4ujuyV/sgxafQ8wgve0DJQUJ38Z8tkgA2izA== antlr4ts@^0.5.0-alpha.4: version "0.5.0-alpha.4" - resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" + resolved "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz" integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== anymatch@~3.1.1, anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -2110,34 +2281,39 @@ anymatch@~3.1.1, anymatch@~3.1.2: arg@^4.1.0: version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== argparse@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-back@^3.0.1, array-back@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" + resolved "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz" integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== -array-back@^4.0.1, array-back@^4.0.2: +array-back@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz" + integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== + +array-back@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" + resolved "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz" integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== array-buffer-byte-length@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz" integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== dependencies: call-bind "^1.0.2" @@ -2145,12 +2321,12 @@ array-buffer-byte-length@^1.0.0: array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== array-includes@^3.1.6: version "3.1.7" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz" integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" @@ -2161,17 +2337,17 @@ array-includes@^3.1.6: array-union@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array-uniq@1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== array.prototype.findlastindex@^1.2.2: version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" + resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz" integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== dependencies: call-bind "^1.0.2" @@ -2182,7 +2358,7 @@ array.prototype.findlastindex@^1.2.2: array.prototype.flat@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz" integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" @@ -2192,7 +2368,7 @@ array.prototype.flat@^1.3.1: array.prototype.flatmap@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz" integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: call-bind "^1.0.2" @@ -2202,7 +2378,7 @@ array.prototype.flatmap@^1.3.1: array.prototype.reduce@^1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz#63149931808c5fc1e1354814923d92d45f7d96d5" + resolved "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz" integrity sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg== dependencies: call-bind "^1.0.2" @@ -2213,7 +2389,7 @@ array.prototype.reduce@^1.0.6: arraybuffer.prototype.slice@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz" integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== dependencies: array-buffer-byte-length "^1.0.0" @@ -2226,95 +2402,100 @@ arraybuffer.prototype.slice@^1.0.2: asap@~2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== asn1@~0.2.3: version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== dependencies: safer-buffer "~2.1.0" -assert-plus@1.0.0, assert-plus@^1.0.0: +assert-plus@^1.0.0, assert-plus@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== assertion-error@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== ast-parents@^0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/ast-parents/-/ast-parents-0.0.1.tgz#508fd0f05d0c48775d9eccda2e174423261e8dd3" + resolved "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz" integrity sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA== astral-regex@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async-eventemitter@^0.2.2, async-eventemitter@^0.2.4: version "0.2.4" - resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.4.tgz#f5e7c8ca7d3e46aab9ec40a292baf686a0bafaca" + resolved "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz" integrity sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw== dependencies: async "^2.4.0" async-limiter@~1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== async-mutex@^0.2.6: version "0.2.6" - resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.2.6.tgz#0d7a3deb978bc2b984d5908a2038e1ae2e54ff40" + resolved "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz" integrity sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw== dependencies: tslib "^2.0.0" -async@1.x, async@^1.4.2: +async@^1.4.2: version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0: version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" +async@1.x: + version "1.5.2" + resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" + integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== + asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== available-typed-arrays@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sign2@~0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: version "1.12.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz" integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== babel-plugin-polyfill-corejs2@^0.4.5: version "0.4.5" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz" integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg== dependencies: "@babel/compat-data" "^7.22.6" @@ -2323,7 +2504,7 @@ babel-plugin-polyfill-corejs2@^0.4.5: babel-plugin-polyfill-corejs3@^0.8.3: version "0.8.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz#1fac2b1dcef6274e72b3c72977ed8325cb330591" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz" integrity sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg== dependencies: "@babel/helper-define-polyfill-provider" "^0.4.2" @@ -2331,80 +2512,85 @@ babel-plugin-polyfill-corejs3@^0.8.3: babel-plugin-polyfill-regenerator@^0.5.2: version "0.5.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz" integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA== dependencies: "@babel/helper-define-polyfill-provider" "^0.4.2" backoff@^2.5.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f" + resolved "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz" integrity sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA== dependencies: precond "0.2" balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base-x@^3.0.2, base-x@^3.0.8: version "3.0.9" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz" integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== dependencies: safe-buffer "^5.0.1" base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== bcrypt-pbkdf@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== dependencies: tweetnacl "^0.14.3" -bech32@1.1.4, bech32@^1.1.3: +bech32@^1.1.3, bech32@1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" + resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== big-integer@1.6.36: version "1.6.36" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.36.tgz#78631076265d4ae3555c04f85e7d9d2f3a071a36" + resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz" integrity sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg== big.js@^6.0.3: version "6.2.1" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-6.2.1.tgz#7205ce763efb17c2e41f26f121c420c6a7c2744f" + resolved "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz" integrity sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ== bigint-crypto-utils@^3.0.23: version "3.3.0" - resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz#72ad00ae91062cf07f2b1def9594006c279c1d77" + resolved "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz" integrity sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg== -bignumber.js@*, bignumber.js@^9.0.0, bignumber.js@^9.0.1: +bignumber.js@*, bignumber.js@^7.2.1, bignumber.js@7.2.1: + version "7.2.1" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz" + integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== + +bignumber.js@^9.0.0: version "9.1.2" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz" integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== -bignumber.js@7.2.1, bignumber.js@^7.2.1: - version "7.2.1" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" - integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== +bignumber.js@^9.0.1: + version "9.1.2" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bip39@3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.4.tgz#5b11fed966840b5e1b8539f0f54ab6392969b2a0" + resolved "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz" integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw== dependencies: "@types/node" "11.11.6" @@ -2414,36 +2600,56 @@ bip39@3.0.4: blakejs@^1.1.0: version "1.2.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== bluebird@^3.5.0, bluebird@^3.5.2: version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== +bn.js@^4.0.0: + version "4.12.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^4.11.0, bn.js@^4.11.8: + version "4.12.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^4.11.1: + version "4.12.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^4.11.6: + version "4.12.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^4.0.0, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9: +bn.js@^4.11.9: version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.1.2, bn.js@^5.1.3, bn.js@^5.2.0, bn.js@^5.2.1: +bn.js@^5.1.2, bn.js@^5.1.3, bn.js@^5.2.1: version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== +bn.js@4.11.6: + version "4.11.6" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz" + integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== + +body-parser@^1.16.0: + version "1.20.2" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -2451,17 +2657,17 @@ body-parser@1.20.1: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.1" + raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" -body-parser@^1.16.0: - version "1.20.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" - integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== dependencies: bytes "3.1.2" - content-type "~1.0.5" + content-type "~1.0.4" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -2469,18 +2675,18 @@ body-parser@^1.16.0: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.2" + raw-body "2.5.1" type-is "~1.6.18" unpipe "1.0.0" boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -2488,26 +2694,26 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" braces@^3.0.2, braces@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== browser-level@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" + resolved "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz" integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ== dependencies: abstract-level "^1.0.2" @@ -2517,12 +2723,12 @@ browser-level@^1.0.1: browser-stdout@1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== browserify-aes@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" @@ -2532,26 +2738,26 @@ browserify-aes@^1.2.0: inherits "^2.0.1" safe-buffer "^5.0.1" -browserslist@^4.21.10, browserslist@^4.21.9: - version "4.21.11" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.11.tgz#35f74a3e51adc4d193dcd76ea13858de7b8fecb8" - integrity sha512-xn1UXOKUz7DjdGlg9RrUr0GGiWzI97UQJnugHtH0OLDfJB7jMgoIkYvRIEO1l9EeEERVqeqLYOcFBW9ldjypbQ== +browserslist@^4.21.10, browserslist@^4.22.2, "browserslist@>= 4.21.0": + version "4.22.2" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz" + integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== dependencies: - caniuse-lite "^1.0.30001538" - electron-to-chromium "^1.4.526" - node-releases "^2.0.13" + caniuse-lite "^1.0.30001565" + electron-to-chromium "^1.4.601" + node-releases "^2.0.14" update-browserslist-db "^1.0.13" bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== dependencies: base-x "^3.0.2" bs58check@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + resolved "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz" integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== dependencies: bs58 "^4.0.0" @@ -2560,98 +2766,111 @@ bs58check@^2.1.2: btoa@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" + resolved "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz" integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer-reverse@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/buffer-reverse/-/buffer-reverse-1.0.1.tgz#49283c8efa6f901bc01fa3304d06027971ae2f60" + resolved "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz" integrity sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg== buffer-to-arraybuffer@^0.0.5: version "0.0.5" - resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" + resolved "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz" integrity sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ== buffer-xor@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== buffer-xor@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-2.0.2.tgz#34f7c64f04c777a1f8aac5e661273bb9dd320289" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz" integrity sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ== dependencies: safe-buffer "^5.1.1" -buffer@6.0.3, buffer@^6.0.3: +buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@^6.0.3: version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== dependencies: base64-js "^1.3.1" ieee754 "^1.2.1" -buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== +buffer@6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== dependencies: base64-js "^1.3.1" - ieee754 "^1.1.13" + ieee754 "^1.2.1" + +bufferutil@^4.0.1: + version "4.0.7" + resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz" + integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw== + dependencies: + node-gyp-build "^4.3.0" bufferutil@4.0.5: version "4.0.5" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.5.tgz#da9ea8166911cc276bf677b8aed2d02d31f59028" + resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz" integrity sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A== dependencies: node-gyp-build "^4.3.0" -bufferutil@^4.0.1: - version "4.0.7" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.7.tgz#60c0d19ba2c992dd8273d3f73772ffc894c153ad" - integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw== - dependencies: - node-gyp-build "^4.3.0" +bufio@^1.0.7: + version "1.2.1" + resolved "https://registry.npmjs.org/bufio/-/bufio-1.2.1.tgz" + integrity sha512-9oR3zNdupcg/Ge2sSHQF3GX+kmvL/fTPvD0nd5AGLq8SjUYnTz+SlFjK/GXidndbZtIj+pVKXiWeR9w6e9wKCA== builtins@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + resolved "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz" integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== dependencies: semver "^7.0.0" busboy@^1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== dependencies: streamsearch "^1.1.0" bytes@3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cacheable-lookup@^5.0.3: version "5.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz" integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== cacheable-lookup@^6.0.4: version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz#0330a543471c61faa4e9035db583aad753b36385" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz" integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== cacheable-request@^7.0.2: version "7.0.4" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" + 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" @@ -2664,7 +2883,7 @@ cacheable-request@^7.0.2: call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" @@ -2672,12 +2891,12 @@ call-bind@^1.0.0, call-bind@^1.0.2: callsites@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camel-case@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz" integrity sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w== dependencies: no-case "^2.2.0" @@ -2685,47 +2904,54 @@ camel-case@^3.0.0: camelcase@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz" integrity sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg== camelcase@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz" integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw== camelcase@^5.0.0: version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.0.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001538: - version "1.0.30001539" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001539.tgz#325a387ab1ed236df2c12dc6cd43a4fff9903a44" - integrity sha512-hfS5tE8bnNiNvEOEkm8HElUHroYwlqMMENEzELymy77+tJ6m+gA2krtHl5hxJaj71OlpC2cHZbdSMX1/YEqEkA== +caniuse-lite@^1.0.30001565: + version "1.0.30001576" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz" + integrity sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg== case@^1.6.3: version "1.6.3" - resolved "https://registry.yarnpkg.com/case/-/case-1.6.3.tgz#0a4386e3e9825351ca2e6216c60467ff5f1ea1c9" + resolved "https://registry.npmjs.org/case/-/case-1.6.3.tgz" integrity sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ== caseless@^0.12.0, caseless@~0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -catering@^2.0.0, catering@^2.1.0, catering@^2.1.1: +catering@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/catering/-/catering-2.1.0.tgz" + integrity sha512-M5imwzQn6y+ODBfgi+cfgZv2hIUI6oYU/0f35Mdb1ujGeqeoI5tOnl9Q13DTH7LW+7er+NYq8stNOKZD/Z3U/A== + dependencies: + queue-tick "^1.0.0" + +catering@^2.1.0, catering@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" + resolved "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== cbor@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.2.0.tgz#4cca67783ccd6de7b50ab4ed62636712f287a67c" + resolved "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz" integrity sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A== dependencies: bignumber.js "^9.0.1" @@ -2733,19 +2959,19 @@ cbor@^5.2.0: cbor@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" + resolved "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz" integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== dependencies: nofilter "^3.1.0" chai-bn@^0.2.1: version "0.2.2" - resolved "https://registry.yarnpkg.com/chai-bn/-/chai-bn-0.2.2.tgz#4dcf30dbc79db2378a00781693bc749c972bf34f" + resolved "https://registry.npmjs.org/chai-bn/-/chai-bn-0.2.2.tgz" integrity sha512-MzjelH0p8vWn65QKmEq/DLBG1Hle4WeyqT79ANhXZhn/UxRWO0OogkAxi5oGGtfzwU9bZR8mvbvYdoqNVWQwFg== -chai@^4.2.0, chai@^4.3.7: +chai@^4.0.0, chai@^4.2.0, chai@^4.3.4, chai@^4.3.7: version "4.3.8" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.8.tgz#40c59718ad6928da6629c70496fe990b2bb5b17c" + resolved "https://registry.npmjs.org/chai/-/chai-4.3.8.tgz" integrity sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ== dependencies: assertion-error "^1.1.0" @@ -2758,16 +2984,32 @@ chai@^4.2.0, chai@^4.3.7: chalk@^2.3.2, chalk@^2.4.2: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.1.0: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -2775,7 +3017,7 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: change-case@3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.0.2.tgz#fd48746cce02f03f0a672577d1d3a8dc2eceb037" + resolved "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz" integrity sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA== dependencies: camel-case "^3.0.0" @@ -2799,24 +3041,24 @@ change-case@3.0.2: "charenc@>= 0.0.1": version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== check-error@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz" integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== checkpoint-store@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/checkpoint-store/-/checkpoint-store-1.1.0.tgz#04e4cb516b91433893581e6d4601a78e9552ea06" + resolved "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz" integrity sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg== dependencies: functional-red-black-tree "^1.0.1" cheerio-select@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" + resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz" integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== dependencies: boolbase "^1.0.0" @@ -2828,7 +3070,7 @@ cheerio-select@^2.1.0: cheerio@^1.0.0-rc.2: version "1.0.0-rc.12" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" + resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz" integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== dependencies: cheerio-select "^2.1.0" @@ -2839,49 +3081,49 @@ cheerio@^1.0.0-rc.2: parse5 "^7.0.0" parse5-htmlparser2-tree-adapter "^7.0.0" -chokidar@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6" - integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A== +chokidar@^3.4.0, chokidar@3.5.3: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: - anymatch "~3.1.1" + anymatch "~3.1.2" braces "~3.0.2" - glob-parent "~5.1.0" + glob-parent "~5.1.2" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.2.0" + readdirp "~3.6.0" optionalDependencies: - fsevents "~2.1.1" + fsevents "~2.3.2" -chokidar@3.5.3, chokidar@^3.4.0: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== +chokidar@3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz" + integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A== dependencies: - anymatch "~3.1.2" + anymatch "~3.1.1" braces "~3.0.2" - glob-parent "~5.1.2" + glob-parent "~5.1.0" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.6.0" + readdirp "~3.2.0" optionalDependencies: - fsevents "~2.3.2" + fsevents "~2.1.1" chownr@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== ci-info@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== cids@^0.7.1: version "0.7.5" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" + resolved "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz" integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== dependencies: buffer "^5.5.0" @@ -2892,7 +3134,7 @@ cids@^0.7.1: cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" @@ -2900,12 +3142,12 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: class-is@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" + resolved "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz" integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== classic-level@^1.2.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.3.0.tgz#5e36680e01dc6b271775c093f2150844c5edd5c8" + resolved "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz" integrity sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg== dependencies: abstract-level "^1.0.2" @@ -2916,12 +3158,12 @@ classic-level@^1.2.0: clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-table3@^0.5.0: version "0.5.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz" integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== dependencies: object-assign "^4.1.0" @@ -2931,7 +3173,7 @@ cli-table3@^0.5.0: cliui@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + resolved "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz" integrity sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w== dependencies: string-width "^1.0.1" @@ -2940,7 +3182,7 @@ cliui@^3.2.0: cliui@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== dependencies: string-width "^3.1.0" @@ -2949,7 +3191,7 @@ cliui@^5.0.0: cliui@^7.0.2: version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" @@ -2958,65 +3200,65 @@ cliui@^7.0.2: clone-response@^1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz" integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== dependencies: mimic-response "^1.0.0" clone@^2.0.0, clone@^2.1.1: version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== code-point-at@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + 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" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colors@1.4.0, colors@^1.1.2: +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +colors@^1.1.2, colors@1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" command-exists@^1.2.8: version "1.2.9" - resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" + resolved "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz" integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== command-line-args@^5.1.1: version "5.2.1" - resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" + resolved "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz" integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== dependencies: array-back "^3.1.0" @@ -3026,7 +3268,7 @@ command-line-args@^5.1.1: command-line-usage@^6.1.0: version "6.1.3" - resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957" + resolved "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz" integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw== dependencies: array-back "^4.0.2" @@ -3034,29 +3276,29 @@ command-line-usage@^6.1.0: table-layout "^1.0.2" typical "^5.2.0" -commander@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" - integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== - commander@^10.0.0: version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== commander@^8.1.0: version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== +commander@3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz" + integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== + concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concat-stream@^1.6.0, concat-stream@^1.6.2: version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" @@ -3066,7 +3308,7 @@ concat-stream@^1.6.0, concat-stream@^1.6.2: constant-case@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-2.0.0.tgz#4175764d389d3fa9c8ecd29186ed6005243b6a46" + resolved "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz" integrity sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ== dependencies: snake-case "^2.1.0" @@ -3074,14 +3316,14 @@ constant-case@^2.0.0: content-disposition@0.5.4: version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== dependencies: safe-buffer "5.2.1" content-hash@^2.5.2: version "2.5.2" - resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" + resolved "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz" integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== dependencies: cids "^0.7.1" @@ -3090,49 +3332,49 @@ content-hash@^2.5.2: content-type@~1.0.4, content-type@~1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - cookie@^0.4.1: version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + core-js-compat@^3.32.2: version "3.32.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.2.tgz#8047d1a8b3ac4e639f0d4f66d4431aa3b16e004c" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz" integrity sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ== dependencies: browserslist "^4.21.10" core-js-pure@^3.0.1: version "3.32.2" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.32.2.tgz#b7dbdac528625cf87eb0523b532eb61551b9a6d1" + resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.32.2.tgz" integrity sha512-Y2rxThOuNywTjnX/PgA5vWM6CZ9QB9sz9oGeCixV8MqXZO70z/5SHzf9EeBrEBK0PN36DnEBBu9O/aGWzKuMZQ== -core-util-is@1.0.2: +core-util-is@~1.0.0, core-util-is@1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - cors@^2.8.1: version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== dependencies: object-assign "^4" @@ -3140,7 +3382,7 @@ cors@^2.8.1: cosmiconfig@^8.0.0: version "8.3.6" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== dependencies: import-fresh "^3.3.0" @@ -3150,12 +3392,12 @@ cosmiconfig@^8.0.0: crc-32@^1.2.0: version "1.2.2" - resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz" integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" @@ -3166,7 +3408,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" @@ -3178,12 +3420,12 @@ create-hmac@^1.1.4, create-hmac@^1.1.7: create-require@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== cross-fetch@^2.1.0: version "2.2.6" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.6.tgz#2ef0bb39a24ac034787965c457368a28730e220a" + resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz" integrity sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA== dependencies: node-fetch "^2.6.7" @@ -3191,21 +3433,21 @@ cross-fetch@^2.1.0: cross-fetch@^3.1.4: version "3.1.8" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" + 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" cross-fetch@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983" + resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz" integrity sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== dependencies: node-fetch "^2.6.12" cross-spawn@^7.0.2: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -3214,12 +3456,12 @@ cross-spawn@^7.0.2: "crypt@>= 0.0.1": version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== crypto-addr-codec@^0.1.7: version "0.1.8" - resolved "https://registry.yarnpkg.com/crypto-addr-codec/-/crypto-addr-codec-0.1.8.tgz#45c4b24e2ebce8e24a54536ee0ca25b65787b016" + resolved "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.8.tgz" integrity sha512-GqAK90iLLgP3FvhNmHbpT3wR6dEdaM8hZyZtLX29SPardh3OA13RFLHDR6sntGCgRWOfiHqW6sIyohpNqOtV/g== dependencies: base-x "^3.0.8" @@ -3232,12 +3474,12 @@ crypto-addr-codec@^0.1.7: crypto-js@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" + resolved "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz" integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== css-select@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + resolved "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz" integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== dependencies: boolbase "^1.0.0" @@ -3248,12 +3490,12 @@ css-select@^5.1.0: css-what@^6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== -d@1, d@^1.0.1: +d@^1.0.1, d@1: version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz" integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== dependencies: es5-ext "^0.10.50" @@ -3261,105 +3503,124 @@ d@1, d@^1.0.1: dashdash@^1.12.0: version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== dependencies: assert-plus "^1.0.0" death@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318" + resolved "https://registry.npmjs.org/death/-/death-1.1.0.tgz" integrity sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w== -debug@2.6.9, debug@^2.2.0: +debug@^2.2.0: version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== +debug@^3.1.0: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@4, debug@4.3.4: version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@^3.1.0, debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.2.6: + version "3.2.6" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" -decamelize@^1.1.1, decamelize@^1.2.0: +decamelize@^1.1.1: version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decamelize@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== decode-uri-component@^0.2.0: version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== decompress-response@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + 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" decompress-response@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + 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" deep-eql@^4.1.2: version "4.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz" integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== dependencies: type-detect "^4.0.0" deep-extend@~0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== deferred-leveldown@~1.2.1: version "1.2.2" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz#3acd2e0b75d1669924bc0a4b642851131173e1eb" + resolved "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz" integrity sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA== dependencies: abstract-leveldown "~2.6.0" deferred-leveldown@~5.3.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz#27a997ad95408b61161aa69bd489b86c71b78058" + resolved "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz" integrity sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw== dependencies: abstract-leveldown "~6.2.1" @@ -3367,7 +3628,7 @@ deferred-leveldown@~5.3.0: define-data-property@^1.0.1: version "1.1.0" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.0.tgz#0db13540704e1d8d479a0656cf781267531b9451" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz" integrity sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g== dependencies: get-intrinsic "^1.2.1" @@ -3376,7 +3637,7 @@ define-data-property@^1.0.1: define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: define-data-property "^1.0.1" @@ -3385,78 +3646,78 @@ define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4, de delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== depd@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== destroy@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== detect-indent@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz" integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== detect-port@^1.3.0: version "1.5.1" - resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.1.tgz#451ca9b6eaf20451acb0799b8ab40dff7718727b" + resolved "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz" integrity sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ== dependencies: address "^1.0.1" debug "4" +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + diff@3.5.0: version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== diff@5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - difflib@^0.2.4: version "0.2.4" - resolved "https://registry.yarnpkg.com/difflib/-/difflib-0.2.4.tgz#b5e30361a6db023176d562892db85940a718f47e" + resolved "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz" integrity sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w== dependencies: heap ">= 0.2.0" dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" doctrine@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" dom-serializer@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== dependencies: domelementtype "^2.3.0" @@ -3465,24 +3726,24 @@ dom-serializer@^2.0.0: dom-walk@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz" integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== domelementtype@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== domhandler@^5.0.2, domhandler@^5.0.3: version "5.0.3" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== dependencies: domelementtype "^2.3.0" domutils@^3.0.1: version "3.1.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + resolved "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz" integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== dependencies: dom-serializer "^2.0.0" @@ -3491,19 +3752,19 @@ domutils@^3.0.1: dot-case@^2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-2.1.1.tgz#34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee" + resolved "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz" integrity sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug== dependencies: no-case "^2.2.0" dotenv@^16.0.3: version "16.3.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== ecc-jsbn@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== dependencies: jsbn "~0.1.0" @@ -3511,17 +3772,17 @@ ecc-jsbn@~0.1.1: ee-first@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.526: - version "1.4.529" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.529.tgz#8c3377a05e5737f899770d14524dd8e2e4cb2351" - integrity sha512-6uyPyXTo8lkv8SWAmjKFbG42U073TXlzD4R8rW3EzuznhFS2olCIAfjjQtV2dV2ar/vRF55KUd3zQYnCB0dd3A== +electron-to-chromium@^1.4.601: + version "1.4.628" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.628.tgz" + integrity sha512-2k7t5PHvLsufpP6Zwk0nof62yLOsCf032wZx7/q0mv8gwlXjhcxI3lz6f0jBr0GrnWKcm3burXzI3t5IrcdUxw== -elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.4: +elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.4, elliptic@6.5.4: version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: bn.js "^4.11.9" @@ -3534,27 +3795,27 @@ elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.4: emittery@0.10.0: version "0.10.0" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.0.tgz#bb373c660a9d421bb44706ec4967ed50c02a8026" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz" integrity sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ== emoji-regex@^7.0.1: version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== encodeurl@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== encoding-down@^6.3.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-6.3.0.tgz#b1c4eb0e1728c146ecaef8e32963c549e76d082b" + resolved "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz" integrity sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw== dependencies: abstract-leveldown "^6.2.1" @@ -3564,14 +3825,14 @@ encoding-down@^6.3.0: end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" enquirer@^2.3.0: version "2.4.1" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz" integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== dependencies: ansi-colors "^4.1.1" @@ -3579,31 +3840,31 @@ enquirer@^2.3.0: entities@^4.2.0, entities@^4.4.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== env-paths@^2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== errno@~0.1.1: version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" es-abstract@^1.22.1: version "1.22.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.2.tgz#90f7282d91d0ad577f505e423e52d4c1d93c1b8a" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz" integrity sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA== dependencies: array-buffer-byte-length "^1.0.0" @@ -3648,12 +3909,12 @@ es-abstract@^1.22.1: es-array-method-boxes-properly@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + resolved "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== es-set-tostringtag@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz" integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== dependencies: get-intrinsic "^1.1.3" @@ -3662,14 +3923,14 @@ es-set-tostringtag@^2.0.1: es-shim-unscopables@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz" integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== dependencies: has "^1.0.3" es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -3678,7 +3939,7 @@ es-to-primitive@^1.2.1: es5-ext@^0.10.35, es5-ext@^0.10.50: version "0.10.62" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz" integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== dependencies: es6-iterator "^2.0.3" @@ -3687,7 +3948,7 @@ es5-ext@^0.10.35, es5-ext@^0.10.50: es6-iterator@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== dependencies: d "1" @@ -3696,12 +3957,12 @@ es6-iterator@^2.0.3: es6-promise@^4.2.8: version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== es6-symbol@^3.1.1, es6-symbol@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz" integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== dependencies: d "^1.0.1" @@ -3709,27 +3970,32 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3: escalade@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.5, escape-string-regexp@1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== -escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: +escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== escodegen@1.8.x: version "1.8.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz" integrity sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A== dependencies: esprima "^2.7.1" @@ -3741,17 +4007,17 @@ escodegen@1.8.x: eslint-config-prettier@^8.8.0: version "8.10.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz" integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== eslint-config-standard@^17.1.0: version "17.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz#40ffb8595d47a6b242e07cbfd49dc211ed128975" + resolved "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz" integrity sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q== eslint-import-resolver-node@^0.3.7: version "0.3.9" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz" integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" @@ -3760,14 +4026,14 @@ eslint-import-resolver-node@^0.3.7: eslint-module-utils@^2.8.0: version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" eslint-plugin-es-x@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.2.0.tgz#5779d742ad31f8fd780b9481331481e142b72311" + resolved "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.2.0.tgz" integrity sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA== dependencies: "@eslint-community/eslint-utils" "^4.1.2" @@ -3775,15 +4041,15 @@ eslint-plugin-es-x@^7.1.0: eslint-plugin-es@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" + resolved "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz" integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== dependencies: eslint-utils "^2.0.0" regexpp "^3.0.0" -eslint-plugin-import@^2.28.1: +eslint-plugin-import@^2.25.2, eslint-plugin-import@^2.28.1: version "2.28.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz#63b8b5b3c409bfc75ebaf8fb206b07ab435482c4" + resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz" integrity sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A== dependencies: array-includes "^3.1.6" @@ -3804,9 +4070,9 @@ eslint-plugin-import@^2.28.1: semver "^6.3.1" tsconfig-paths "^3.14.2" -eslint-plugin-n@^16.1.0: +"eslint-plugin-n@^15.0.0 || ^16.0.0 ", eslint-plugin-n@^16.1.0: version "16.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-16.1.0.tgz#73d24fe3e37d04519c1f9230bdbd3aa567c66799" + resolved "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.1.0.tgz" integrity sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg== dependencies: "@eslint-community/eslint-utils" "^4.4.0" @@ -3821,7 +4087,7 @@ eslint-plugin-n@^16.1.0: eslint-plugin-node@^11.1.0: version "11.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" + resolved "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz" integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== dependencies: eslint-plugin-es "^3.0.0" @@ -3833,19 +4099,19 @@ eslint-plugin-node@^11.1.0: eslint-plugin-prettier@^4.2.1: version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz" integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-promise@^6.1.1: +eslint-plugin-promise@^6.0.0, eslint-plugin-promise@^6.1.1: version "6.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" + resolved "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz" integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== eslint-scope@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" @@ -3853,7 +4119,7 @@ eslint-scope@^5.1.1: eslint-scope@^7.2.2: version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" @@ -3861,24 +4127,24 @@ eslint-scope@^7.2.2: eslint-utils@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" eslint-visitor-keys@^1.1.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.43.0: +eslint@*, "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", eslint@^8.0.1, eslint@^8.43.0, eslint@>=4.19.1, eslint@>=5.16.0, eslint@>=7.0.0, eslint@>=7.28.0, eslint@>=8: version "8.50.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.50.0.tgz#2ae6015fee0240fcd3f83e1e25df0287f487d6b2" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz" integrity sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" @@ -3921,65 +4187,70 @@ eslint@^8.43.0: espree@^9.6.0, espree@^9.6.1: version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esprima@2.7.x, esprima@^2.7.1: +esprima@^2.7.1, esprima@2.7.x: version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + resolved "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz" integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A== esprima@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.4.2: version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^1.9.1: version "1.9.3" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz" integrity sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA== estraverse@^4.1.1: version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.1.0, estraverse@^5.2.0: +estraverse@^5.1.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== etag@~1.8.1: version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== eth-block-tracker@^4.4.2: version "4.4.3" - resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz#766a0a0eb4a52c867a28328e9ae21353812cf626" + resolved "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz" integrity sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw== dependencies: "@babel/plugin-transform-runtime" "^7.5.5" @@ -3989,9 +4260,9 @@ eth-block-tracker@^4.4.2: pify "^3.0.0" safe-event-emitter "^1.0.1" -eth-ens-namehash@2.0.8, eth-ens-namehash@^2.0.8: +eth-ens-namehash@^2.0.8, eth-ens-namehash@2.0.8: version "2.0.8" - resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" + 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" @@ -3999,7 +4270,7 @@ eth-ens-namehash@2.0.8, eth-ens-namehash@^2.0.8: eth-gas-reporter@^0.2.25: version "0.2.25" - resolved "https://registry.yarnpkg.com/eth-gas-reporter/-/eth-gas-reporter-0.2.25.tgz#546dfa946c1acee93cb1a94c2a1162292d6ff566" + resolved "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.25.tgz" integrity sha512-1fRgyE4xUB8SoqLgN3eDfpDfwEfRxh2Sz1b7wzFbyQA+9TekMmvSjjoRu9SKcSVyK+vLkLIsVbJDsTWjw195OQ== dependencies: "@ethersproject/abi" "^5.0.0-beta.146" @@ -4020,7 +4291,7 @@ eth-gas-reporter@^0.2.25: eth-json-rpc-filters@^4.2.1: version "4.2.2" - resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz#eb35e1dfe9357ace8a8908e7daee80b2cd60a10d" + resolved "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz" integrity sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw== dependencies: "@metamask/safe-event-emitter" "^2.0.0" @@ -4032,7 +4303,7 @@ eth-json-rpc-filters@^4.2.1: eth-json-rpc-infura@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-5.1.0.tgz#e6da7dc47402ce64c54e7018170d89433c4e8fb6" + resolved "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-5.1.0.tgz" integrity sha512-THzLye3PHUSGn1EXMhg6WTLW9uim7LQZKeKaeYsS9+wOBcamRiCQVGHa6D2/4P0oS0vSaxsBnU/J6qvn0MPdow== dependencies: eth-json-rpc-middleware "^6.0.0" @@ -4042,7 +4313,7 @@ eth-json-rpc-infura@^5.1.0: eth-json-rpc-middleware@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz#4fe16928b34231a2537856f08a5ebbc3d0c31175" + resolved "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz" integrity sha512-qqBfLU2Uq1Ou15Wox1s+NX05S9OcAEL4JZ04VZox2NS0U+RtCMjSxzXhLFWekdShUPZ+P8ax3zCO2xcPrp6XJQ== dependencies: btoa "^1.2.1" @@ -4057,18 +4328,9 @@ eth-json-rpc-middleware@^6.0.0: pify "^3.0.0" safe-event-emitter "^1.0.1" -eth-lib@0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" - integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - eth-lib@^0.1.26: version "0.1.29" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" + resolved "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz" integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== dependencies: bn.js "^4.11.6" @@ -4078,9 +4340,18 @@ eth-lib@^0.1.26: ws "^3.0.0" xhr-request-promise "^0.1.2" +eth-lib@0.2.8: + version "0.2.8" + resolved "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz" + integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + eth-query@^2.1.0, eth-query@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/eth-query/-/eth-query-2.1.2.tgz#d6741d9000106b51510c72db92d6365456a6da5e" + resolved "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz" integrity sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA== dependencies: json-rpc-random-id "^1.0.0" @@ -4088,21 +4359,21 @@ eth-query@^2.1.0, eth-query@^2.1.2: eth-rpc-errors@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz#d7b22653c70dbf9defd4ef490fd08fe70608ca10" + resolved "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz" integrity sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg== dependencies: fast-safe-stringify "^2.0.6" eth-rpc-errors@^4.0.2: version "4.0.3" - resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz#6ddb6190a4bf360afda82790bb7d9d5e724f423a" + resolved "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz" integrity sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg== dependencies: fast-safe-stringify "^2.0.6" eth-sig-util@^1.4.2: version "1.4.2" - resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-1.4.2.tgz#8d958202c7edbaae839707fba6f09ff327606210" + resolved "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz" integrity sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw== dependencies: ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" @@ -4110,24 +4381,24 @@ eth-sig-util@^1.4.2: ethereum-bloom-filters@^1.0.6: version "1.0.10" - resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" + resolved "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz" integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== dependencies: js-sha3 "^0.8.0" -ethereum-common@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.2.0.tgz#13bf966131cce1eeade62a1b434249bb4cb120ca" - integrity sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA== - ethereum-common@^0.0.18: version "0.0.18" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" + resolved "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz" integrity sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ== -ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: +ethereum-common@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz" + integrity sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA== + +ethereum-cryptography@^0.1.3, ethereum-cryptography@0.1.3: version "0.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz" integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== dependencies: "@types/pbkdf2" "^3.0.0" @@ -4146,19 +4417,9 @@ ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: secp256k1 "^4.0.1" setimmediate "^1.0.5" -ethereum-cryptography@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz#74f2ac0f0f5fe79f012c889b3b8446a9a6264e6d" - integrity sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ== - dependencies: - "@noble/hashes" "1.1.2" - "@noble/secp256k1" "1.6.3" - "@scure/bip32" "1.1.0" - "@scure/bip39" "1.1.0" - ethereum-cryptography@^1.0.3: version "1.2.0" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz#5ccfa183e85fdaf9f9b299a79430c044268c9b3a" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz" integrity sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw== dependencies: "@noble/hashes" "1.2.0" @@ -4166,9 +4427,19 @@ ethereum-cryptography@^1.0.3: "@scure/bip32" "1.1.5" "@scure/bip39" "1.1.1" -ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: +ethereum-cryptography@^2.0.0: + version "2.1.2" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz" + integrity sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug== + dependencies: + "@noble/curves" "1.1.0" + "@noble/hashes" "1.3.1" + "@scure/bip32" "1.3.1" + "@scure/bip39" "1.2.1" + +ethereum-cryptography@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz#18fa7108622e56481157a5cb7c01c0c6a672eb67" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz" integrity sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug== dependencies: "@noble/curves" "1.1.0" @@ -4176,14 +4447,24 @@ ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: "@scure/bip32" "1.3.1" "@scure/bip39" "1.2.1" +ethereum-cryptography@1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz" + integrity sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ== + dependencies: + "@noble/hashes" "1.1.2" + "@noble/secp256k1" "1.6.3" + "@scure/bip32" "1.1.0" + "@scure/bip39" "1.1.0" + ethereum-protocol@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz#b7d68142f4105e0ae7b5e178cf42f8d4dc4b93cf" + resolved "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz" integrity sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg== -ethereum-waffle@^4.0.10: +ethereum-waffle@*, ethereum-waffle@^4.0.10: version "4.0.10" - resolved "https://registry.yarnpkg.com/ethereum-waffle/-/ethereum-waffle-4.0.10.tgz#f1ef1564c0155236f1a66c6eae362a5d67c9f64c" + resolved "https://registry.npmjs.org/ethereum-waffle/-/ethereum-waffle-4.0.10.tgz" integrity sha512-iw9z1otq7qNkGDNcMoeNeLIATF9yKl1M8AIeu42ElfNBplq0e+5PeasQmm8ybY/elkZ1XyRO0JBQxQdVRb8bqQ== dependencies: "@ethereum-waffle/chai" "4.0.10" @@ -4193,24 +4474,17 @@ ethereum-waffle@^4.0.10: solc "0.8.15" typechain "^8.0.0" -ethereumjs-abi@0.6.8, ethereumjs-abi@^0.6.8: - version "0.6.8" - resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae" - integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== - dependencies: - bn.js "^4.11.8" - ethereumjs-util "^6.0.0" - -"ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": +ethereumjs-abi@^0.6.8, ethereumjs-abi@0.6.8, "ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": version "0.6.8" - resolved "git+https://github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0" + resolved "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git" + integrity sha512-qs8G5KwnIO/thOQjv1RvR/4oiTsy6IaCsN+ory5dbiqFXz8sd239aWJH0wmsVNPimL5X1KzQheUpi6xAo6FU4w== dependencies: bn.js "^4.11.8" ethereumjs-util "^6.0.0" ethereumjs-account@^2.0.3: version "2.0.5" - resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz#eeafc62de544cb07b0ee44b10f572c9c49e00a84" + resolved "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz" integrity sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA== dependencies: ethereumjs-util "^5.0.0" @@ -4219,7 +4493,7 @@ ethereumjs-account@^2.0.3: ethereumjs-block@^1.2.2: version "1.7.1" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz#78b88e6cc56de29a6b4884ee75379b6860333c3f" + resolved "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz" integrity sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg== dependencies: async "^2.0.1" @@ -4230,7 +4504,7 @@ ethereumjs-block@^1.2.2: ethereumjs-block@~2.2.0: version "2.2.2" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz#c7654be7e22df489fda206139ecd63e2e9c04965" + resolved "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz" integrity sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg== dependencies: async "^2.0.1" @@ -4241,12 +4515,12 @@ ethereumjs-block@~2.2.0: ethereumjs-common@^1.1.0, ethereumjs-common@^1.5.0: version "1.5.2" - resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz#2065dbe9214e850f2e955a80e650cb6999066979" + resolved "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz" integrity sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA== ethereumjs-tx@^1.2.2: version "1.3.7" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz#88323a2d875b10549b8347e09f4862b546f3d89a" + resolved "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz" integrity sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA== dependencies: ethereum-common "^0.0.18" @@ -4254,26 +4528,54 @@ ethereumjs-tx@^1.2.2: ethereumjs-tx@^2.1.1: version "2.1.2" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz#5dfe7688bf177b45c9a23f86cf9104d47ea35fed" + resolved "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz" integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== dependencies: ethereumjs-common "^1.5.0" ethereumjs-util "^6.0.0" -ethereumjs-util@7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz#b55d7b64dde3e3e45749e4c41288238edec32d23" - integrity sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw== +ethereumjs-util@^5.0.0: + version "5.2.1" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" + integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== dependencies: - "@types/bn.js" "^5.1.0" - bn.js "^5.1.2" + bn.js "^4.11.0" create-hash "^1.1.2" + elliptic "^6.5.2" ethereum-cryptography "^0.1.3" - rlp "^2.2.4" + ethjs-util "^0.1.3" + rlp "^2.0.0" + safe-buffer "^5.1.1" + +ethereumjs-util@^5.1.1: + version "5.2.1" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" + integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== + dependencies: + bn.js "^4.11.0" + create-hash "^1.1.2" + elliptic "^6.5.2" + ethereum-cryptography "^0.1.3" + ethjs-util "^0.1.3" + rlp "^2.0.0" + safe-buffer "^5.1.1" + +ethereumjs-util@^5.1.2: + version "5.2.1" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" + integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== + dependencies: + bn.js "^4.11.0" + create-hash "^1.1.2" + elliptic "^6.5.2" + ethereum-cryptography "^0.1.3" + ethjs-util "^0.1.3" + rlp "^2.0.0" + safe-buffer "^5.1.1" -ethereumjs-util@^5.0.0, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2, ethereumjs-util@^5.1.5: +ethereumjs-util@^5.1.5: version "5.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz#a833f0e5fca7e5b361384dc76301a721f537bf65" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== dependencies: bn.js "^4.11.0" @@ -4284,9 +4586,9 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2, ethereum rlp "^2.0.0" safe-buffer "^5.1.1" -ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: +ethereumjs-util@^6.0.0: version "6.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== dependencies: "@types/bn.js" "^4.11.3" @@ -4297,9 +4599,44 @@ ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: ethjs-util "0.1.6" rlp "^2.2.3" -ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.3, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: +ethereumjs-util@^6.2.1: + version "6.2.1" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" + integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== + dependencies: + "@types/bn.js" "^4.11.3" + bn.js "^4.11.0" + create-hash "^1.1.2" + elliptic "^6.5.2" + ethereum-cryptography "^0.1.3" + ethjs-util "0.1.6" + rlp "^2.2.3" + +ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.3, ethereumjs-util@7.1.3: + version "7.1.3" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz" + integrity sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw== + dependencies: + "@types/bn.js" "^5.1.0" + bn.js "^5.1.2" + create-hash "^1.1.2" + ethereum-cryptography "^0.1.3" + rlp "^2.2.4" + +ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: version "7.1.5" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz" + integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== + dependencies: + "@types/bn.js" "^5.1.0" + bn.js "^5.1.2" + create-hash "^1.1.2" + ethereum-cryptography "^0.1.3" + rlp "^2.2.4" + +ethereumjs-util@^7.1.4: + version "7.1.5" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== dependencies: "@types/bn.js" "^5.1.0" @@ -4310,7 +4647,7 @@ ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereum ethereumjs-vm@^2.3.4: version "2.6.0" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz#76243ed8de031b408793ac33907fb3407fe400c6" + resolved "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz" integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== dependencies: async "^2.1.2" @@ -4327,27 +4664,12 @@ ethereumjs-vm@^2.3.4: ethers-eip712@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/ethers-eip712/-/ethers-eip712-0.2.0.tgz#52973b3a9a22638f7357283bf66624994c6e91ed" + resolved "https://registry.npmjs.org/ethers-eip712/-/ethers-eip712-0.2.0.tgz" integrity sha512-fgS196gCIXeiLwhsWycJJuxI9nL/AoUPGSQ+yvd+8wdWR+43G+J1n69LmWVWvAON0M6qNaf2BF4/M159U8fujQ== -ethers@^4.0.32, ethers@^4.0.40: - version "4.0.49" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.49.tgz#0eb0e9161a0c8b4761be547396bbe2fb121a8894" - integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== - dependencies: - aes-js "3.0.0" - bn.js "^4.11.9" - elliptic "6.5.4" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.4" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - -ethers@^5.0.13, ethers@^5.5.3, ethers@^5.7.1, ethers@^5.7.2: +ethers@*, "ethers@^4.0.47 || ^5.0.8", ethers@^5, ethers@^5.0.0, ethers@^5.0.13, ethers@^5.1.3, ethers@^5.4.7, ethers@^5.5.3, ethers@^5.7.1, ethers@^5.7.2: version "5.7.2" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" + resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== dependencies: "@ethersproject/abi" "5.7.0" @@ -4381,9 +4703,39 @@ ethers@^5.0.13, ethers@^5.5.3, ethers@^5.7.1, ethers@^5.7.2: "@ethersproject/web" "5.7.1" "@ethersproject/wordlists" "5.7.0" +ethers@^4.0.32: + version "4.0.49" + resolved "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz" + integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== + dependencies: + aes-js "3.0.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.3" + js-sha3 "0.5.7" + scrypt-js "2.0.4" + setimmediate "1.0.4" + uuid "2.0.1" + xmlhttprequest "1.8.0" + +ethers@^4.0.40: + version "4.0.49" + resolved "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz" + integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== + dependencies: + aes-js "3.0.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.3" + js-sha3 "0.5.7" + scrypt-js "2.0.4" + setimmediate "1.0.4" + uuid "2.0.1" + xmlhttprequest "1.8.0" + ethjs-abi@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/ethjs-abi/-/ethjs-abi-0.2.1.tgz#e0a7a93a7e81163a94477bad56ede524ab6de533" + resolved "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz" integrity sha512-g2AULSDYI6nEJyJaEVEXtTimRY2aPC2fi7ddSy0W+LXvEVL8Fe1y76o43ecbgdUKwZD+xsmEgX1yJr1Ia3r1IA== dependencies: bn.js "4.11.6" @@ -4392,15 +4744,15 @@ ethjs-abi@^0.2.1: ethjs-unit@0.1.6: version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" + resolved "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz" integrity sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw== dependencies: bn.js "4.11.6" number-to-bn "1.7.0" -ethjs-util@0.1.6, ethjs-util@^0.1.3, ethjs-util@^0.1.6: +ethjs-util@^0.1.3, ethjs-util@^0.1.6, ethjs-util@0.1.6: version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" + resolved "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz" integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== dependencies: is-hex-prefixed "1.0.0" @@ -4408,17 +4760,17 @@ ethjs-util@0.1.6, ethjs-util@^0.1.3, ethjs-util@^0.1.6: eventemitter3@4.0.4: version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz" integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== events@^3.0.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== evp_bytestokey@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" @@ -4426,7 +4778,7 @@ evp_bytestokey@^1.0.3: express@^4.14.0: version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + resolved "https://registry.npmjs.org/express/-/express-4.18.2.tgz" integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== dependencies: accepts "~1.3.8" @@ -4463,53 +4815,48 @@ express@^4.14.0: ext@^1.1.2: version "1.7.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + resolved "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz" integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== dependencies: type "^2.7.2" extend@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extsprintf@1.3.0: +extsprintf@^1.2.0, extsprintf@1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - fake-merkle-patricia-tree@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz#4b8c3acfb520afadf9860b1f14cd8ce3402cddd3" + resolved "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz" integrity sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA== dependencies: checkpoint-store "^1.1.0" fast-check@3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-check/-/fast-check-3.1.1.tgz#72c5ae7022a4e86504762e773adfb8a5b0b01252" + resolved "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz" integrity sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA== dependencies: pure-rand "^5.0.1" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.1.2, fast-diff@^1.2.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== fast-glob@^3.0.3, fast-glob@^3.2.9: version "3.3.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -4520,43 +4867,43 @@ fast-glob@^3.0.3, fast-glob@^3.2.9: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fast-safe-stringify@^2.0.6: version "2.1.1" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== fastq@^1.6.0: version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: reusify "^1.0.4" file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + 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" finalhandler@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== dependencies: debug "2.6.9" @@ -4569,29 +4916,14 @@ finalhandler@1.2.0: find-replace@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" + resolved "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz" integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== dependencies: array-back "^3.0.1" -find-up@3.0.0, find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@5.0.0, find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-up@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== dependencies: path-exists "^2.0.0" @@ -4599,22 +4931,45 @@ find-up@^1.0.0: find-up@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== dependencies: locate-path "^2.0.0" +find-up@^3.0.0, find-up@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + find-up@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + flat-cache@^3.0.4: version "3.1.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.0.tgz#0e54ab4a1a60fe87e2946b6b00657f1c99e1af3f" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz" integrity sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew== dependencies: flatted "^3.2.7" @@ -4623,46 +4978,46 @@ flat-cache@^3.0.4: flat@^4.1.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.1.tgz#a392059cc382881ff98642f5da4dde0a959f309b" + resolved "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz" integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== dependencies: is-buffer "~2.0.3" flat@^5.0.2: version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== flatted@^3.2.7: version "3.2.9" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== follow-redirects@^1.12.1: version "1.15.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz" integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== for-each@^0.3.3: version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" forever-agent@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== form-data-encoder@1.7.1: version "1.7.1" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96" + resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz" integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== form-data@^2.2.0: version "2.5.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz" integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== dependencies: asynckit "^0.4.0" @@ -4671,7 +5026,7 @@ form-data@^2.2.0: form-data@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" @@ -4680,7 +5035,7 @@ form-data@^4.0.0: form-data@~2.3.2: version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" @@ -4689,27 +5044,22 @@ form-data@~2.3.2: forwarded@0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fp-ts@1.19.3: +fp-ts@^1.0.0, fp-ts@1.19.3: version "1.19.3" - resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.3.tgz#261a60d1088fbff01f91256f91d21d0caaaaa96f" + resolved "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz" integrity sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg== -fp-ts@^1.0.0: - version "1.19.5" - resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.5.tgz#3da865e585dfa1fdfd51785417357ac50afc520a" - integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== - fresh@0.5.2: version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== fs-extra@^0.30.0: version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz" integrity sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA== dependencies: graceful-fs "^4.1.2" @@ -4720,7 +5070,7 @@ fs-extra@^0.30.0: fs-extra@^4.0.2: version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz" integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== dependencies: graceful-fs "^4.1.2" @@ -4729,7 +5079,7 @@ fs-extra@^4.0.2: fs-extra@^7.0.0, fs-extra@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== dependencies: graceful-fs "^4.1.2" @@ -4738,7 +5088,7 @@ fs-extra@^7.0.0, fs-extra@^7.0.1: fs-extra@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" @@ -4747,7 +5097,7 @@ fs-extra@^8.1.0: fs-extra@^9.1.0: version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" @@ -4757,39 +5107,39 @@ fs-extra@^9.1.0: fs-minipass@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz" integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== dependencies: minipass "^2.6.0" fs-readdir-recursive@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz" integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.1.1: version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz" integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== fsevents@~2.3.2: version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== function.prototype.name@^1.1.6: version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz" integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== dependencies: call-bind "^1.0.2" @@ -4799,17 +5149,17 @@ function.prototype.name@^1.1.6: functional-red-black-tree@^1.0.1, functional-red-black-tree@~1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== functions-have-names@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== ganache@7.4.3: version "7.4.3" - resolved "https://registry.yarnpkg.com/ganache/-/ganache-7.4.3.tgz#e995f1250697264efbb34d4241c374a2b0271415" + resolved "https://registry.npmjs.org/ganache/-/ganache-7.4.3.tgz" integrity sha512-RpEDUiCkqbouyE7+NMXG26ynZ+7sGiODU84Kz+FVoXUnQ4qQM4M8wif3Y4qUCt+D/eM1RVeGq0my62FPD6Y1KA== dependencies: "@trufflesuite/bigint-buffer" "1.1.10" @@ -4824,24 +5174,29 @@ ganache@7.4.3: bufferutil "4.0.5" utf-8-validate "5.0.7" +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + get-caller-file@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-func-name@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz" integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz" integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== dependencies: function-bind "^1.1.1" @@ -4851,24 +5206,24 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@ get-port@^3.1.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + resolved "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz" integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== get-stream@^5.1.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + 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" get-stream@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== dependencies: call-bind "^1.0.2" @@ -4876,67 +5231,68 @@ get-symbol-description@^1.0.0: get-tsconfig@^4.7.0: version "4.7.2" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" + resolved "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz" integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== dependencies: resolve-pkg-maps "^1.0.0" getpass@^0.1.1: version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== dependencies: assert-plus "^1.0.0" ghost-testrpc@^0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz#c4de9557b1d1ae7b2d20bbe474a91378ca90ce92" + resolved "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz" integrity sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ== dependencies: chalk "^2.4.2" node-emoji "^1.10.0" -glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: +glob-parent@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" -glob@7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== +glob-parent@~5.1.0: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" + is-glob "^4.0.1" -glob@7.1.7: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== +glob-parent@~5.1.2: + 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" + +glob@^5.0.15: + version "5.0.15" + resolved "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" + integrity sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== dependencies: - fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "2 || 3" once "^1.3.0" path-is-absolute "^1.0.0" -glob@7.2.0: +glob@^7.0.0, glob@^7.1.3, glob@7.2.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" @@ -4946,50 +5302,51 @@ glob@7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^5.0.15: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - integrity sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: + fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "2 || 3" + minimatch "^5.0.1" once "^1.3.0" - path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== +glob@7.1.3: + version "7.1.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.1.1" + minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.3: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== +glob@7.1.7: + version "7.1.7" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^5.0.1" + minimatch "^3.0.4" once "^1.3.0" + path-is-absolute "^1.0.0" global-modules@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz" integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== dependencies: global-prefix "^3.0.0" global-prefix@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== dependencies: ini "^1.3.5" @@ -4998,29 +5355,34 @@ global-prefix@^3.0.0: global@~4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + resolved "https://registry.npmjs.org/global/-/global-4.4.0.tgz" integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== dependencies: min-document "^2.19.0" process "^0.11.10" +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + globals@^13.19.0: version "13.22.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.22.0.tgz#0c9fcb9c48a2494fbb5edbfee644285543eba9d8" + resolved "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz" integrity sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw== dependencies: type-fest "^0.20.2" globalthis@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== dependencies: define-properties "^1.1.3" globby@^10.0.1: version "10.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" + resolved "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz" integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== dependencies: "@types/glob" "^7.1.1" @@ -5034,7 +5396,7 @@ globby@^10.0.1: globby@^11.1.0: version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -5046,14 +5408,31 @@ globby@^11.1.0: gopd@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== dependencies: get-intrinsic "^1.1.3" +got@^11.8.5: + version "11.8.6" + resolved "https://registry.npmjs.org/got/-/got-11.8.6.tgz" + integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + got@12.1.0: version "12.1.0" - resolved "https://registry.yarnpkg.com/got/-/got-12.1.0.tgz#099f3815305c682be4fd6b0ee0726d8e4c6b0af4" + resolved "https://registry.npmjs.org/got/-/got-12.1.0.tgz" integrity sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig== dependencies: "@sindresorhus/is" "^4.6.0" @@ -5070,130 +5449,59 @@ got@12.1.0: p-cancelable "^3.0.0" responselike "^2.0.0" -got@^11.8.5: - version "11.8.6" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" - integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== graphemer@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== growl@1.10.5: version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== -handlebars@^4.0.1: - version "4.7.8" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" - integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.2" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -hardhat-gas-reporter@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz#9a2afb354bc3b6346aab55b1c02ca556d0e16450" - integrity sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg== - dependencies: - array-uniq "1.0.3" - eth-gas-reporter "^0.2.25" - sha1 "^1.1.1" - -hardhat@^2.12.7: - version "2.17.3" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.17.3.tgz#4cb15f2afdea5f108970ed72e5b81e6e53052cfb" - integrity sha512-SFZoYVXW1bWJZrIIKXOA+IgcctfuKXDwENywiYNT2dM3YQc4fXNaTbuk/vpPzHIF50upByx4zW5EqczKYQubsA== - dependencies: - "@ethersproject/abi" "^5.1.2" - "@metamask/eth-sig-util" "^4.0.0" - "@nomicfoundation/ethereumjs-block" "5.0.2" - "@nomicfoundation/ethereumjs-blockchain" "7.0.2" - "@nomicfoundation/ethereumjs-common" "4.0.2" - "@nomicfoundation/ethereumjs-evm" "2.0.2" - "@nomicfoundation/ethereumjs-rlp" "5.0.2" - "@nomicfoundation/ethereumjs-statemanager" "2.0.2" - "@nomicfoundation/ethereumjs-trie" "6.0.2" - "@nomicfoundation/ethereumjs-tx" "5.0.2" - "@nomicfoundation/ethereumjs-util" "9.0.2" - "@nomicfoundation/ethereumjs-vm" "7.0.2" - "@nomicfoundation/solidity-analyzer" "^0.1.0" - "@sentry/node" "^5.18.1" - "@types/bn.js" "^5.1.0" - "@types/lru-cache" "^5.1.0" - adm-zip "^0.4.16" - aggregate-error "^3.0.0" - ansi-escapes "^4.3.0" - chalk "^2.4.2" - chokidar "^3.4.0" - ci-info "^2.0.0" - debug "^4.1.1" - enquirer "^2.3.0" - env-paths "^2.2.0" - ethereum-cryptography "^1.0.3" - ethereumjs-abi "^0.6.8" - find-up "^2.1.0" - fp-ts "1.19.3" - fs-extra "^7.0.1" - glob "7.2.0" - immutable "^4.0.0-rc.12" - io-ts "1.10.4" - keccak "^3.0.2" - lodash "^4.17.11" - mnemonist "^0.38.0" - mocha "^10.0.0" - p-map "^4.0.0" - raw-body "^2.4.1" - resolve "1.17.0" - semver "^6.3.0" - solc "0.7.3" - source-map-support "^0.5.13" - stacktrace-parser "^0.1.10" - tsort "0.0.1" - undici "^5.14.0" - uuid "^8.3.2" - ws "^7.4.6" +handlebars@^4.0.1: + version "4.7.8" + resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.2" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +hardhat-gas-reporter@^1.0.9: + version "1.0.9" + resolved "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz" + integrity sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg== + dependencies: + array-uniq "1.0.3" + eth-gas-reporter "^0.2.25" + sha1 "^1.1.1" -hardhat@^2.17.3: - version "2.19.2" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.19.2.tgz#815819e4efd234941d495decb718b358d572e2c8" - integrity sha512-CRU3+0Cc8Qh9UpxKd8cLADDPes7ZDtKj4dTK+ERtLBomEzhRPLWklJn4VKOwjre9/k8GNd/e9DYxpfuzcxbXPQ== +hardhat@^2.0.0, hardhat@^2.0.2, hardhat@^2.0.4, hardhat@^2.11.0, hardhat@^2.17.3, hardhat@^2.9.5, hardhat@^2.9.9: + version "2.17.3" + resolved "https://registry.npmjs.org/hardhat/-/hardhat-2.17.3.tgz" + integrity sha512-SFZoYVXW1bWJZrIIKXOA+IgcctfuKXDwENywiYNT2dM3YQc4fXNaTbuk/vpPzHIF50upByx4zW5EqczKYQubsA== dependencies: "@ethersproject/abi" "^5.1.2" "@metamask/eth-sig-util" "^4.0.0" @@ -5246,88 +5554,88 @@ hardhat@^2.17.3: has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== dependencies: get-intrinsic "^1.1.1" has-proto@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== has-symbols@^1.0.0, has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: has-symbols "^1.0.2" has@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hash-base@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: inherits "^2.0.4" readable-stream "^3.6.0" safe-buffer "^5.2.0" +hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7, hash.js@1.1.7: + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + hash.js@1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz" integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== dependencies: inherits "^2.0.3" minimalistic-assert "^1.0.0" -hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - he@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== header-case@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/header-case/-/header-case-1.0.1.tgz#9535973197c144b09613cd65d317ef19963bd02d" + resolved "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz" integrity sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ== dependencies: no-case "^2.2.0" @@ -5335,22 +5643,22 @@ header-case@^1.0.0: "heap@>= 0.2.0": version "0.2.7" - resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc" + resolved "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz" integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg== highlight.js@^10.4.1: version "10.7.3" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" + resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz" integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== highlightjs-solidity@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz#e7a702a2b05e0a97f185e6ba39fd4846ad23a990" + resolved "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz" integrity sha512-DySXWfQghjm2l6a/flF+cteroJqD4gI8GSdL4PtvxZSsAHie8m3yVe2JFoRg03ROKT6hp2Lc/BxXkqerNmtQYg== hmac-drbg@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== dependencies: hash.js "^1.0.3" @@ -5359,12 +5667,12 @@ hmac-drbg@^1.0.1: hosted-git-info@^2.1.4, hosted-git-info@^2.6.0: version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== htmlparser2@^8.0.1: version "8.0.2" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz" integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== dependencies: domelementtype "^2.3.0" @@ -5374,7 +5682,7 @@ htmlparser2@^8.0.1: http-basic@^8.1.1: version "8.1.3" - resolved "https://registry.yarnpkg.com/http-basic/-/http-basic-8.1.3.tgz#a7cabee7526869b9b710136970805b1004261bbf" + resolved "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz" integrity sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw== dependencies: caseless "^0.12.0" @@ -5384,12 +5692,12 @@ http-basic@^8.1.1: http-cache-semantics@^4.0.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== http-errors@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: depd "2.0.0" @@ -5400,19 +5708,19 @@ http-errors@2.0.0: http-https@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" + resolved "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz" integrity sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg== http-response-object@^3.0.1: version "3.0.2" - resolved "https://registry.yarnpkg.com/http-response-object/-/http-response-object-3.0.2.tgz#7f435bb210454e4360d074ef1f989d5ea8aa9810" + resolved "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz" integrity sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA== dependencies: "@types/node" "^10.0.3" http-signature@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== dependencies: assert-plus "^1.0.0" @@ -5421,7 +5729,7 @@ http-signature@~1.2.0: http2-wrapper@^1.0.0-beta.5.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz" integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== dependencies: quick-lru "^5.1.1" @@ -5429,7 +5737,7 @@ http2-wrapper@^1.0.0-beta.5.2: http2-wrapper@^2.1.10: version "2.2.0" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.0.tgz#b80ad199d216b7d3680195077bd7b9060fa9d7f3" + resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz" integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ== dependencies: quick-lru "^5.1.1" @@ -5437,7 +5745,7 @@ http2-wrapper@^2.1.10: https-proxy-agent@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" @@ -5445,46 +5753,46 @@ https-proxy-agent@^5.0.0: iconv-lite@0.4.24: version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" idna-uts46-hx@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" + resolved "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz" integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== dependencies: punycode "2.1.0" ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^5.1.1, ignore@^5.2.0, ignore@^5.2.4: version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== immediate@^3.2.3: version "3.3.0" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" + resolved "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz" integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== immediate@~3.2.3: version "3.2.3" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" + resolved "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz" integrity sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg== immutable@^4.0.0-rc.12: version "4.3.4" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" + resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz" integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -5492,35 +5800,35 @@ import-fresh@^3.2.1, import-fresh@^3.3.0: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@2, inherits@2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@^1.3.5: version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz" integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== dependencies: get-intrinsic "^1.2.0" @@ -5529,29 +5837,29 @@ internal-slot@^1.0.5: interpret@^1.0.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== invert-kv@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz" integrity sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ== io-ts@1.10.4: version "1.10.4" - resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-1.10.4.tgz#cd5401b138de88e4f920adbcb7026e2d1967e6e2" + resolved "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz" integrity sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g== dependencies: fp-ts "^1.0.0" ipaddr.js@1.9.1: version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== is-arguments@^1.0.4: version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== dependencies: call-bind "^1.0.2" @@ -5559,7 +5867,7 @@ is-arguments@^1.0.4: is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz" integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== dependencies: call-bind "^1.0.2" @@ -5568,26 +5876,26 @@ is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-bigint@^1.0.1: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== dependencies: has-bigints "^1.0.1" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" @@ -5595,116 +5903,116 @@ is-boolean-object@^1.1.0: is-buffer@^2.0.5, is-buffer@~2.0.3: version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-core-module@^2.12.1, is-core-module@^2.13.0: version "2.13.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz" integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== dependencies: has "^1.0.3" is-date-object@^1.0.1: version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fn@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fn/-/is-fn-1.0.0.tgz#9543d5de7bcf5b08a22ec8a20bae6e286d510d8c" + resolved "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz" integrity sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg== is-fullwidth-code-point@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-function@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz" integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== is-generator-function@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz" integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== dependencies: has-tostringtag "^1.0.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-hex-prefixed@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + resolved "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz" integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== is-lower-case@^1.1.0: version "1.1.3" - resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393" + resolved "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz" integrity sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA== dependencies: lower-case "^1.1.0" is-negative-zero@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-number-object@^1.0.4: version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-obj@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -5712,119 +6020,131 @@ is-regex@^1.1.4: is-shared-array-buffer@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + 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== dependencies: call-bind "^1.0.2" is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.3, is-typed-array@^1.1.9: version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz" integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== dependencies: which-typed-array "^1.1.11" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== is-unicode-supported@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== is-upper-case@^1.1.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" + resolved "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz" integrity sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw== dependencies: upper-case "^1.1.0" is-url@^1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + resolved "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz" integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== is-utf8@^0.2.0: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== is-weakref@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - isarray@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== isarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isstream@~0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== js-sdsl@^4.1.4: version "4.4.2" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.2.tgz#2e3c031b1f47d3aca8b775532e3ebb0818e7f847" + resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz" integrity sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w== +js-sha3@^0.5.7: + version "0.5.7" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz" + integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== + +js-sha3@^0.8.0, js-sha3@0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + js-sha3@0.5.5: version "0.5.5" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.5.tgz#baf0c0e8c54ad5903447df96ade7a4a1bca79a4a" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz" integrity sha512-yLLwn44IVeunwjpDVTDZmQeVbB0h+dZpY2eO68B/Zik8hu6dH+rKeLxwua79GGIvW6xr8NBAcrtiUbYrTjEFTA== -js-sha3@0.5.7, js-sha3@^0.5.7: +js-sha3@0.5.7: version "0.5.7" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz" integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== -js-sha3@0.8.0, js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-yaml@^4.1.0, js-yaml@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + js-yaml@3.13.1: version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== dependencies: argparse "^1.0.7" @@ -5832,44 +6152,42 @@ js-yaml@3.13.1: js-yaml@3.x: version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@4.1.0, js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - jsbn@~0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + json-bigint@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" + resolved "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz" integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== dependencies: bignumber.js "^9.0.0" json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-parse-even-better-errors@^2.3.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-rpc-engine@^5.3.0: version "5.4.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz#75758609d849e1dba1e09021ae473f3ab63161e5" + resolved "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz" integrity sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g== dependencies: eth-rpc-errors "^3.0.0" @@ -5877,7 +6195,7 @@ json-rpc-engine@^5.3.0: json-rpc-engine@^6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz#bf5ff7d029e1c1bf20cb6c0e9f348dcd8be5a393" + resolved "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz" integrity sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ== dependencies: "@metamask/safe-event-emitter" "^2.0.0" @@ -5885,65 +6203,70 @@ json-rpc-engine@^6.1.0: json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz#ba49d96aded1444dbb8da3d203748acbbcdec8c8" + resolved "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz" integrity sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema-traverse@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== json-schema@0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stable-stringify@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz#e06f23128e0bbe342dc996ed5a19e28b57b580e0" + resolved "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz" integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g== dependencies: jsonify "^0.0.1" json-stringify-safe@~5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json5@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + jsonfile@^2.1.0: version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz" integrity sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw== optionalDependencies: graceful-fs "^4.1.6" jsonfile@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -5952,17 +6275,17 @@ jsonfile@^6.0.1: jsonify@^0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" + resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz" integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== jsonschema@^1.2.4: version "1.4.1" - resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" + resolved "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz" integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== jsprim@^1.2.2: version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== dependencies: assert-plus "1.0.0" @@ -5970,27 +6293,27 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" -keccak@3.0.1: +keccak@^3.0.0, keccak@3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" + resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz" integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== dependencies: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -keccak@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" - integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== +keccak@^3.0.2: + version "3.0.4" + resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz" + integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== dependencies: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" readable-stream "^3.6.0" -keccak@^3.0.0, keccak@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" - integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== +keccak@3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz" + integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== dependencies: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" @@ -5998,78 +6321,71 @@ keccak@^3.0.0, keccak@^3.0.2: keyv@^4.0.0, keyv@^4.5.3: version "4.5.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz" integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug== dependencies: json-buffer "3.0.1" kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klaw@^1.0.0: version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw== optionalDependencies: graceful-fs "^4.1.9" lcid@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + resolved "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz" integrity sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw== dependencies: invert-kv "^1.0.0" level-codec@^9.0.0: version "9.0.2" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc" + resolved "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz" integrity sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ== dependencies: buffer "^5.6.0" level-codec@~7.0.0: version "7.0.1" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-7.0.1.tgz#341f22f907ce0f16763f24bddd681e395a0fb8a7" + resolved "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz" integrity sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ== level-concat-iterator@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz#5235b1f744bc34847ed65a50548aa88d22e881cf" + resolved "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz" integrity sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ== dependencies: catering "^2.1.0" level-concat-iterator@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz#1d1009cf108340252cb38c51f9727311193e6263" + resolved "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz" integrity sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw== -level-errors@^1.0.3: - version "1.1.2" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.1.2.tgz#4399c2f3d3ab87d0625f7e3676e2d807deff404d" - integrity sha512-Sw/IJwWbPKF5Ai4Wz60B52yj0zYeqzObLh8k1Tk88jVmD51cJSKWSYpRyhVIvFzZdvsPqlH5wfhp/yxdsaQH4w== +level-errors@^1.0.3, level-errors@~1.0.3: + version "1.0.5" + resolved "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz" + integrity sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig== dependencies: errno "~0.1.1" level-errors@^2.0.0, level-errors@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-2.0.1.tgz#2132a677bf4e679ce029f517c2f17432800c05c8" + resolved "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz" integrity sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw== dependencies: errno "~0.1.1" -level-errors@~1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.0.5.tgz#83dbfb12f0b8a2516bdc9a31c4876038e227b859" - integrity sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig== - dependencies: - errno "~0.1.1" - level-iterator-stream@~1.3.0: version "1.3.1" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz#e43b78b1a8143e6fa97a4f485eb8ea530352f2ed" + resolved "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz" integrity sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw== dependencies: inherits "^2.0.1" @@ -6079,7 +6395,7 @@ level-iterator-stream@~1.3.0: level-iterator-stream@~4.0.0: version "4.0.2" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz#7ceba69b713b0d7e22fcc0d1f128ccdc8a24f79c" + resolved "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz" integrity sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q== dependencies: inherits "^2.0.4" @@ -6088,7 +6404,7 @@ level-iterator-stream@~4.0.0: level-mem@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/level-mem/-/level-mem-5.0.1.tgz#c345126b74f5b8aa376dc77d36813a177ef8251d" + resolved "https://registry.npmjs.org/level-mem/-/level-mem-5.0.1.tgz" integrity sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg== dependencies: level-packager "^5.0.3" @@ -6096,7 +6412,7 @@ level-mem@^5.0.1: level-packager@^5.0.3: version "5.1.1" - resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-5.1.1.tgz#323ec842d6babe7336f70299c14df2e329c18939" + resolved "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz" integrity sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ== dependencies: encoding-down "^6.3.0" @@ -6104,49 +6420,49 @@ level-packager@^5.0.3: level-supports@^2.0.1: version "2.1.0" - resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-2.1.0.tgz#9af908d853597ecd592293b2fad124375be79c5f" + resolved "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz" integrity sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA== level-supports@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" + resolved "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz" integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA== level-supports@~1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-1.0.1.tgz#2f530a596834c7301622521988e2c36bb77d122d" + resolved "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz" integrity sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg== dependencies: xtend "^4.0.2" level-transcoder@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" + resolved "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz" integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w== dependencies: buffer "^6.0.3" module-error "^1.0.1" -level-ws@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b" - integrity sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw== - dependencies: - readable-stream "~1.0.15" - xtend "~2.1.1" - level-ws@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-2.0.0.tgz#207a07bcd0164a0ec5d62c304b4615c54436d339" + resolved "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz" integrity sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA== dependencies: inherits "^2.0.3" readable-stream "^3.1.0" xtend "^4.0.1" +level-ws@0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz" + integrity sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw== + dependencies: + readable-stream "~1.0.15" + xtend "~2.1.1" + level@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394" + resolved "https://registry.npmjs.org/level/-/level-8.0.0.tgz" integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== dependencies: browser-level "^1.0.1" @@ -6154,7 +6470,7 @@ level@^8.0.0: leveldown@6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-6.1.0.tgz#7ab1297706f70c657d1a72b31b40323aa612b9ee" + resolved "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz" integrity sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w== dependencies: abstract-leveldown "^7.2.0" @@ -6163,7 +6479,7 @@ leveldown@6.1.0: levelup@^1.2.1: version "1.3.9" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.9.tgz#2dbcae845b2bb2b6bea84df334c475533bbd82ab" + resolved "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz" integrity sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ== dependencies: deferred-leveldown "~1.2.1" @@ -6176,7 +6492,7 @@ levelup@^1.2.1: levelup@^4.3.2: version "4.4.0" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-4.4.0.tgz#f89da3a228c38deb49c48f88a70fb71f01cafed6" + resolved "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz" integrity sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ== dependencies: deferred-leveldown "~5.3.0" @@ -6187,7 +6503,7 @@ levelup@^4.3.2: levn@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -6195,7 +6511,7 @@ levn@^0.4.1: levn@~0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: prelude-ls "~1.1.2" @@ -6203,12 +6519,12 @@ levn@~0.3.0: lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== load-json-file@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== dependencies: graceful-fs "^4.1.2" @@ -6219,7 +6535,7 @@ load-json-file@^1.0.0: locate-path@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== dependencies: p-locate "^2.0.0" @@ -6227,7 +6543,7 @@ locate-path@^2.0.0: locate-path@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" @@ -6235,63 +6551,63 @@ locate-path@^3.0.0: locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash.assign@^4.0.3, lodash.assign@^4.0.6: version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + resolved "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz" integrity sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw== lodash.camelcase@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== lodash.debounce@^4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.flatten@^4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz" integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.truncate@^4.4.2: version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz" integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== dependencies: chalk "^2.4.2" log-symbols@4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: chalk "^4.1.0" @@ -6299,75 +6615,75 @@ log-symbols@4.1.0: loupe@^2.3.1: version "2.3.6" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" + resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz" integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== dependencies: get-func-name "^2.0.0" lower-case-first@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1" + resolved "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz" integrity sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA== dependencies: lower-case "^1.1.2" lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2: version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz" integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA== lowercase-keys@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== lowercase-keys@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== +lru_map@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz" + integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== + lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" -lru_map@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" - integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== - ltgt@~2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" + resolved "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz" integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== make-error@^1.1.1: version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== markdown-table@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" + resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz" integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== mcl-wasm@^0.7.1: version "0.7.9" - resolved "https://registry.yarnpkg.com/mcl-wasm/-/mcl-wasm-0.7.9.tgz#c1588ce90042a8700c3b60e40efb339fc07ab87f" + resolved "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz" integrity sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ== md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" @@ -6376,12 +6692,12 @@ md5.js@^1.3.4: media-typer@0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== memdown@^1.0.0: version "1.4.1" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" + resolved "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz" integrity sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w== dependencies: abstract-leveldown "~2.7.1" @@ -6393,7 +6709,7 @@ memdown@^1.0.0: memdown@^5.0.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-5.1.0.tgz#608e91a9f10f37f5b5fe767667a8674129a833cb" + resolved "https://registry.npmjs.org/memdown/-/memdown-5.1.0.tgz" integrity sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw== dependencies: abstract-leveldown "~6.2.1" @@ -6405,7 +6721,7 @@ memdown@^5.0.0: memory-level@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" + resolved "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz" integrity sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og== dependencies: abstract-level "^1.0.0" @@ -6414,22 +6730,22 @@ memory-level@^1.0.0: memorystream@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== merge-descriptors@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: version "2.3.2" - resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz#982ca1b5a0fde00eed2f6aeed1f9152860b8208a" + resolved "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz" integrity sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g== dependencies: async "^1.4.2" @@ -6443,7 +6759,7 @@ merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: merkle-patricia-tree@^4.2.2, merkle-patricia-tree@^4.2.4: version "4.2.4" - resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz#ff988d045e2bf3dfa2239f7fabe2d59618d57413" + resolved "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz" integrity sha512-eHbf/BG6eGNsqqfbLED9rIqbsF4+sykEaBn6OLNs71tjclbMcMOk1tEPmJKcNcNCLkvbpY/lwyOlizWsqPNo8w== dependencies: "@types/levelup" "^4.3.0" @@ -6455,7 +6771,7 @@ merkle-patricia-tree@^4.2.2, merkle-patricia-tree@^4.2.4: merkletreejs@^0.3.11: version "0.3.11" - resolved "https://registry.yarnpkg.com/merkletreejs/-/merkletreejs-0.3.11.tgz#e0de05c3ca1fd368de05a12cb8efb954ef6fc04f" + resolved "https://registry.npmjs.org/merkletreejs/-/merkletreejs-0.3.11.tgz" integrity sha512-LJKTl4iVNTndhL+3Uz/tfkjD0klIWsHlUzgtuNnNrsf7bAlXR30m+xYB7lHr5Z/l6e/yAIsr26Dabx6Buo4VGQ== dependencies: bignumber.js "^9.0.1" @@ -6466,17 +6782,17 @@ merkletreejs@^0.3.11: methods@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== micro-ftch@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" + resolved "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz" integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== micromatch@^4.0.4: version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: braces "^3.0.2" @@ -6484,7 +6800,7 @@ micromatch@^4.0.4: miller-rabin@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" @@ -6492,84 +6808,84 @@ miller-rabin@^4.0.0: mime-db@1.52.0: version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" mime@1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mimic-response@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== mimic-response@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== min-document@^2.19.0: version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== dependencies: dom-walk "^0.1.0" minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -"minimatch@2 || 3", minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.2, "minimatch@2 || 3": version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + minimatch@3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" minimatch@5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== dependencies: brace-expansion "^2.0.1" -minimatch@^5.0.1: - version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== - dependencies: - brace-expansion "^2.0.1" - minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== minipass@^2.6.0, minipass@^2.9.0: version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== dependencies: safe-buffer "^5.1.2" @@ -6577,52 +6893,47 @@ minipass@^2.6.0, minipass@^2.9.0: minizlib@^1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz" integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== dependencies: minipass "^2.9.0" mkdirp-promise@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + resolved "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz" integrity sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w== dependencies: mkdirp "*" -mkdirp@*: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" - integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== - -mkdirp@0.5.5: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mkdirp@0.5.x, mkdirp@^0.5.1, mkdirp@^0.5.5: +mkdirp@*, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@0.5.x: version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mkdirp@0.5.5: + version "0.5.5" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + mnemonist@^0.38.0: version "0.38.5" - resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.5.tgz#4adc7f4200491237fe0fa689ac0b86539685cade" + resolved "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz" integrity sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg== dependencies: obliterator "^2.0.0" -mocha@10.2.0, mocha@^10.0.0: +mocha@^10.0.0, mocha@10.2.0: version "10.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" + resolved "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz" integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== dependencies: ansi-colors "4.1.1" @@ -6649,7 +6960,7 @@ mocha@10.2.0, mocha@^10.0.0: mocha@^7.1.1: version "7.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.2.0.tgz#01cc227b00d875ab1eed03a75106689cfed5a604" + resolved "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz" integrity sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ== dependencies: ansi-colors "3.2.3" @@ -6679,37 +6990,37 @@ mocha@^7.1.1: mock-fs@^4.1.0: version "4.14.0" - resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" + resolved "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz" integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== module-error@^1.0.1, module-error@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" + resolved "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz" integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== +ms@^2.1.1, ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + ms@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.1.1: +ms@2.1.3: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== multibase@^0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" + resolved "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz" integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== dependencies: base-x "^3.0.8" @@ -6717,7 +7028,7 @@ multibase@^0.7.0: multibase@~0.6.0: version "0.6.1" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" + resolved "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz" integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== dependencies: base-x "^3.0.8" @@ -6725,14 +7036,14 @@ multibase@~0.6.0: multicodec@^0.5.5: version "0.5.7" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" + resolved "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz" integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== dependencies: varint "^5.0.0" multicodec@^1.0.0: version "1.0.4" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" + resolved "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz" integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== dependencies: buffer "^5.6.0" @@ -6740,7 +7051,7 @@ multicodec@^1.0.0: multihashes@^0.4.15, multihashes@~0.4.15: version "0.4.21" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" + resolved "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz" integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== dependencies: buffer "^5.5.0" @@ -6749,76 +7060,76 @@ multihashes@^0.4.15, multihashes@~0.4.15: nano-base32@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/nano-base32/-/nano-base32-1.0.1.tgz#ba548c879efcfb90da1c4d9e097db4a46c9255ef" + resolved "https://registry.npmjs.org/nano-base32/-/nano-base32-1.0.1.tgz" integrity sha512-sxEtoTqAPdjWVGv71Q17koMFGsOMSiHsIFEvzOM7cNp8BXB4AnEwmDabm5dorusJf/v1z7QxaZYxUorU9RKaAw== nano-json-stream-parser@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" + resolved "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz" integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew== nanoid@3.3.3: version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz" integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== napi-macros@^2.2.2: version "2.2.2" - resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.2.2.tgz#817fef20c3e0e40a963fbf7b37d1600bd0201044" + resolved "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz" integrity sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g== napi-macros@~2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" + resolved "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz" integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== natural-compare-lite@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz" integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== negotiator@0.6.3: version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== neo-async@^2.6.2: version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== next-tick@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== no-case@^2.2.0, no-case@^2.3.2: version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz" integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== dependencies: lower-case "^1.1.1" node-addon-api@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== node-emoji@^1.10.0: version "1.11.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" + resolved "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz" integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== dependencies: lodash "^4.17.21" node-environment-flags@1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088" + resolved "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz" integrity sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== dependencies: object.getownpropertydescriptors "^2.0.3" @@ -6826,51 +7137,46 @@ node-environment-flags@1.0.6: node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" -node-gyp-build@4.3.0: +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0, node-gyp-build@4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz" integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== node-gyp-build@4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.4.0.tgz#42e99687ce87ddeaf3a10b99dc06abc11021f3f4" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz" integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ== -node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.1.tgz#24b6d075e5e391b8d5539d98c7fc5c210cac8a3e" - integrity sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ== - -node-releases@^2.0.13: - version "2.0.13" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== nofilter@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e" + resolved "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz" integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== nofilter@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" + resolved "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz" integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g== nopt@3.x: version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + resolved "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" integrity sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg== dependencies: abbrev "1" normalize-package-data@^2.3.2: version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" @@ -6880,29 +7186,29 @@ normalize-package-data@^2.3.2: normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-url@^6.0.1: version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== nth-check@^2.0.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" number-is-nan@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== number-to-bn@1.7.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" + resolved "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz" integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== dependencies: bn.js "4.11.6" @@ -6910,42 +7216,32 @@ number-to-bn@1.7.0: oauth-sign@~0.9.0: version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-inspect@^1.12.3, object-inspect@^1.9.0: version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== object-keys@^1.0.11, object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-keys@~0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz" integrity sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw== -object.assign@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - object.assign@^4.1.4: version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: call-bind "^1.0.2" @@ -6953,9 +7249,19 @@ object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" +object.assign@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + object.fromentries@^2.0.6: version "2.0.7" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz" integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== dependencies: call-bind "^1.0.2" @@ -6964,7 +7270,7 @@ object.fromentries@^2.0.6: object.getownpropertydescriptors@^2.0.3: version "2.1.7" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz#7a466a356cd7da4ba8b9e94ff6d35c3eeab5d56a" + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz" integrity sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g== dependencies: array.prototype.reduce "^1.0.6" @@ -6975,7 +7281,7 @@ object.getownpropertydescriptors@^2.0.3: object.groupby@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" + resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz" integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== dependencies: call-bind "^1.0.2" @@ -6985,7 +7291,7 @@ object.groupby@^1.0.0: object.values@^1.1.6: version "1.1.7" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz" integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== dependencies: call-bind "^1.0.2" @@ -6994,33 +7300,38 @@ object.values@^1.1.6: obliterator@^2.0.0: version "2.0.4" - resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" + resolved "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz" integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== oboe@2.1.5: version "2.1.5" - resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" + resolved "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz" integrity sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA== dependencies: http-https "^1.0.0" on-finished@2.4.1: version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" -once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0, once@1.x: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" +"openzeppelin-contracts-upgradeable-4.9.3@npm:@openzeppelin/contracts-upgradeable@^4.9.3": + version "4.9.3" + resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.3.tgz" + integrity sha512-jjaHAVRMrE4UuZNfDwjlLGDxTHWIOwTJS2ldnc278a0gevfXfPr8hxKEVBGFBE96kl2G3VHDZhUimw/+G3TG2A== + optionator@^0.8.1: version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" @@ -7032,7 +7343,7 @@ optionator@^0.8.1: optionator@^0.9.3: version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: "@aashutoshrathi/word-wrap" "^1.2.3" @@ -7044,126 +7355,126 @@ optionator@^0.9.3: os-locale@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + resolved "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz" integrity sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g== dependencies: lcid "^1.0.0" os-tmpdir@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== p-cancelable@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== p-cancelable@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== p-limit@^1.1.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== dependencies: p-try "^1.0.0" p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== dependencies: p-limit "^1.1.0" p-locate@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" p-map@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" p-try@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== p-try@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== param-case@^2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + resolved "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz" integrity sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w== dependencies: no-case "^2.2.0" parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-cache-control@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz#8eeab3e54fa56920fe16ba38f77fa21aacc2d74e" + resolved "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz" integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== parse-headers@^2.0.0: version "2.0.5" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9" + resolved "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz" integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== parse-json@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== dependencies: error-ex "^1.2.0" parse-json@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -7173,7 +7484,7 @@ parse-json@^5.2.0: parse5-htmlparser2-tree-adapter@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" + resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz" integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== dependencies: domhandler "^5.0.2" @@ -7181,19 +7492,19 @@ parse5-htmlparser2-tree-adapter@^7.0.0: parse5@^7.0.0: version "7.1.2" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + resolved "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz" integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== dependencies: entities "^4.4.0" parseurl@~1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== pascal-case@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-2.0.1.tgz#2d578d3455f660da65eca18ef95b4e0de912761e" + resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz" integrity sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ== dependencies: camel-case "^3.0.0" @@ -7201,56 +7512,56 @@ pascal-case@^2.0.0: path-browserify@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== path-case@^2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/path-case/-/path-case-2.1.1.tgz#94b8037c372d3fe2906e465bb45e25d226e8eea5" + resolved "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz" integrity sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q== dependencies: no-case "^2.2.0" path-exists@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-to-regexp@0.1.7: version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== path-type@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== dependencies: graceful-fs "^4.1.2" @@ -7259,17 +7570,17 @@ path-type@^1.0.0: path-type@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pathval@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== pbkdf2@^3.0.17, pbkdf2@^3.0.9: version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== dependencies: create-hash "^1.1.2" @@ -7280,105 +7591,105 @@ pbkdf2@^3.0.17, pbkdf2@^3.0.9: performance-now@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== picocolors@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^2.0.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pify@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== pify@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pify@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" + resolved "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz" integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== pluralize@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + resolved "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== precond@0.2: version "0.2.3" - resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" + resolved "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz" integrity sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ== prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prelude-ls@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== prettier-linter-helpers@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== dependencies: fast-diff "^1.1.2" -prettier-plugin-solidity@^1.1.3: +prettier-plugin-solidity@^1.0.0-alpha.14, prettier-plugin-solidity@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.3.tgz#9a35124f578404caf617634a8cab80862d726cba" + resolved "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.3.tgz" integrity sha512-fQ9yucPi2sBbA2U2Xjh6m4isUTJ7S7QLc/XDDsktqqxYfTwdYKJ0EnnywXHwCGAaYbQNK+HIYPL1OemxuMsgeg== dependencies: "@solidity-parser/parser" "^0.16.0" semver "^7.3.8" solidity-comments-extractor "^0.0.7" -prettier@^2.3.1, prettier@^2.8.3, prettier@^2.8.8: +"prettier@^1.15.0 || ^2.0.0", prettier@^2.3.1, prettier@^2.8.3, prettier@^2.8.8, prettier@>=2.0.0, "prettier@>=2.3.0 || >=3.0.0-alpha.0": version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.10: version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== promise-to-callback@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/promise-to-callback/-/promise-to-callback-1.0.0.tgz#5d2a749010bfb67d963598fcd3960746a68feef7" + resolved "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz" integrity sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA== dependencies: is-fn "^1.0.0" @@ -7386,14 +7697,14 @@ promise-to-callback@^1.0.0: promise@^8.0.0: version "8.3.0" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" + resolved "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz" integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== dependencies: asap "~2.0.6" proxy-addr@~2.0.7: version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: forwarded "0.2.0" @@ -7401,64 +7712,64 @@ proxy-addr@~2.0.7: prr@~1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== psl@^1.1.28: version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== pump@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" once "^1.3.1" -punycode@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" - integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== - punycode@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0, punycode@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz" + integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== + +punycode@^2.1.1: version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== pure-rand@^5.0.1: version "5.0.5" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-5.0.5.tgz#bda2a7f6a1fc0f284d78d78ca5902f26f2ad35cf" + resolved "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz" integrity sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw== -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -qs@^6.11.2, qs@^6.4.0: +qs@^6.11.2: version "6.11.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz" integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== dependencies: side-channel "^1.0.4" -qs@~6.5.2: +qs@^6.4.0, qs@~6.5.2: version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== +qs@6.11.0: + version "6.11.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + query-string@^5.0.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz" integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== dependencies: decode-uri-component "^0.2.0" @@ -7467,40 +7778,45 @@ query-string@^5.0.1: queue-microtask@^1.2.2, queue-microtask@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +queue-tick@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.0.tgz" + integrity sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ== + quick-lru@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== randombytes@^2.0.1, randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" range-parser@~1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== +raw-body@^2.4.1, raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" http-errors "2.0.0" iconv-lite "0.4.24" unpipe "1.0.0" -raw-body@2.5.2, raw-body@^2.4.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== dependencies: bytes "3.1.2" http-errors "2.0.0" @@ -7509,7 +7825,7 @@ raw-body@2.5.2, raw-body@^2.4.1: read-pkg-up@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== dependencies: find-up "^1.0.0" @@ -7517,7 +7833,7 @@ read-pkg-up@^1.0.1: read-pkg@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" integrity sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ== dependencies: load-json-file "^1.0.0" @@ -7526,7 +7842,7 @@ read-pkg@^1.0.0: readable-stream@^1.0.33: version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== dependencies: core-util-is "~1.0.0" @@ -7534,9 +7850,35 @@ readable-stream@^1.0.33: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^2.0.0, readable-stream@^2.2.2, readable-stream@^2.2.9: +readable-stream@^2.0.0: + version "2.3.8" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + 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" + +readable-stream@^2.2.2: version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + 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" + +readable-stream@^2.2.9: + version "2.3.8" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" @@ -7549,7 +7891,7 @@ readable-stream@^2.0.0, readable-stream@^2.2.2, readable-stream@^2.2.9: readable-stream@^3.1.0, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" @@ -7558,7 +7900,7 @@ readable-stream@^3.1.0, readable-stream@^3.4.0, readable-stream@^3.6.0: readable-stream@~1.0.15: version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== dependencies: core-util-is "~1.0.0" @@ -7568,45 +7910,45 @@ readable-stream@~1.0.15: readdirp@~3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz" integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ== dependencies: picomatch "^2.0.4" readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" rechoir@^0.6.2: version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== dependencies: resolve "^1.1.6" recursive-readdir@^2.2.2: version "2.2.3" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" + resolved "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz" integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== dependencies: minimatch "^3.0.5" reduce-flatten@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" + resolved "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz" integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== regenerator-runtime@^0.14.0: version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz" integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== regexp.prototype.flags@^1.5.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz" integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== dependencies: call-bind "^1.0.2" @@ -7615,42 +7957,42 @@ regexp.prototype.flags@^1.5.1: regexpp@^3.0.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== req-cwd@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/req-cwd/-/req-cwd-2.0.0.tgz#d4082b4d44598036640fb73ddea01ed53db49ebc" + resolved "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz" integrity sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ== dependencies: req-from "^2.0.0" req-from@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/req-from/-/req-from-2.0.0.tgz#d74188e47f93796f4aa71df6ee35ae689f3e0e70" + resolved "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz" integrity sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA== dependencies: resolve-from "^3.0.0" request-promise-core@1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz" integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== dependencies: lodash "^4.17.19" request-promise-native@^1.0.5: version "1.0.9" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz" integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== dependencies: request-promise-core "1.1.4" stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.79.0, request@^2.85.0, request@^2.88.0: +request@^2.34, request@^2.79.0, request@^2.85.0, request@^2.88.0: version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" @@ -7676,145 +8018,143 @@ request@^2.79.0, request@^2.85.0, request@^2.88.0: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^1.1.0: version "1.2.1" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz" integrity sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q== -require-from-string@^2.0.0, require-from-string@^2.0.2: +require-from-string@^2.0.0: + version "2.0.2" + 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== + +require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + 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== require-main-filename@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz" integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== require-main-filename@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== resolve-alpn@^1.0.0, resolve-alpn@^1.2.0: version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== resolve-from@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-pkg-maps@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.22.2, resolve@^1.22.4: + version "1.22.6" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz" + integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@1.1.x: version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== resolve@1.17.0: version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: path-parse "^1.0.6" -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.22.2, resolve@^1.22.4: - version "1.22.6" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.6.tgz#dd209739eca3aef739c626fea1b4f3c506195362" - integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - responselike@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz" integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== dependencies: lowercase-keys "^2.0.0" reusify@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rimraf@^2.2.8: version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" ripemd160-min@0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/ripemd160-min/-/ripemd160-min-0.0.6.tgz#a904b77658114474d02503e819dcc55853b67e62" + resolved "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz" integrity sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A== ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" inherits "^2.0.1" -rlp@2.2.6: +rlp@^2.0.0, rlp@^2.2.3, rlp@^2.2.4, rlp@2.2.6: version "2.2.6" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c" + resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz" integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg== dependencies: bn.js "^4.11.1" -rlp@^2.0.0, rlp@^2.2.3, rlp@^2.2.4: - version "2.2.7" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" - integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== - dependencies: - bn.js "^5.2.0" - run-parallel-limit@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba" + resolved "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz" integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== dependencies: queue-microtask "^1.2.2" run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" rustbn.js@~0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" + resolved "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz" integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== safe-array-concat@^1.0.0, safe-array-concat@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz" integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== dependencies: call-bind "^1.0.2" @@ -7822,40 +8162,40 @@ safe-array-concat@^1.0.0, safe-array-concat@^1.0.1: has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0, safe-buffer@5.2.1: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-event-emitter@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz#5b692ef22329ed8f69fdce607e50ca734f6f20af" + resolved "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz" integrity sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg== dependencies: events "^3.0.0" safe-regex-test@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== dependencies: call-bind "^1.0.2" get-intrinsic "^1.1.3" is-regex "^1.1.4" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +safer-buffer@^2.0.2, safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3", safer-buffer@~2.1.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sc-istanbul@^0.4.5: version "0.4.6" - resolved "https://registry.yarnpkg.com/sc-istanbul/-/sc-istanbul-0.4.6.tgz#cf6784355ff2076f92d70d59047d71c13703e839" + resolved "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz" integrity sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g== dependencies: abbrev "1.0.x" @@ -7873,32 +8213,32 @@ sc-istanbul@^0.4.5: which "^1.1.1" wordwrap "^1.0.0" +scrypt-js@^3.0.0, scrypt-js@^3.0.1, scrypt-js@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + scrypt-js@2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" + resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz" integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== -scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - seaport-core@^0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/seaport-core/-/seaport-core-0.0.1.tgz#99db0b605d0fbbfd43ca7a4724e64374ce47f6d4" + resolved "https://registry.npmjs.org/seaport-core/-/seaport-core-0.0.1.tgz" integrity sha512-fgdSIC0ru8xK+fdDfF4bgTFH8ssr6EwbPejC2g/JsWzxy+FvG7JfaX57yn/eIv6hoscgZL87Rm+kANncgwLH3A== dependencies: seaport-types "^0.0.1" seaport-core@immutable/seaport-core#1.5.0+im.1: - version "1.5.0" - resolved "https://codeload.github.com/immutable/seaport-core/tar.gz/33e9030f308500b422926a1be12d7a1e4d6adc06" + version "1.5.0+im.1" + resolved "git+ssh://git@github.com/immutable/seaport-core.git#33e9030f308500b422926a1be12d7a1e4d6adc06" dependencies: seaport-types "^0.0.1" seaport-sol@^1.5.0: version "1.5.3" - resolved "https://registry.yarnpkg.com/seaport-sol/-/seaport-sol-1.5.3.tgz#ccb0047bcefb7d29bcd379faddf3a5a9902d0c3a" + resolved "https://registry.npmjs.org/seaport-sol/-/seaport-sol-1.5.3.tgz" integrity sha512-6g91hs15v4zBx/ZN9YD0evhQSDhdMKu83c2CgBgtc517D8ipaYaFO71ZD6V0Z6/I0cwNfuN/ZljcA1J+xXr65A== dependencies: seaport-core "^0.0.1" @@ -7906,12 +8246,13 @@ seaport-sol@^1.5.0: seaport-types@^0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/seaport-types/-/seaport-types-0.0.1.tgz#e2a32fe8641853d7dadb1b0232d911d88ccc3f1a" + resolved "https://registry.npmjs.org/seaport-types/-/seaport-types-0.0.1.tgz" integrity sha512-m7MLa7sq3YPwojxXiVvoX1PM9iNVtQIn7AdEtBnKTwgxPfGRWUlbs/oMgetpjT/ZYTmv3X5/BghOcstWYvKqRA== "seaport@https://github.com/immutable/seaport.git#1.5.0+im.1.3": - version "1.5.0" - resolved "https://github.com/immutable/seaport.git#ae061dc008105dd8d05937df9ad9a676f878cbf9" + version "1.5.0+im.1" + resolved "git+ssh://git@github.com/immutable/seaport.git" + integrity sha512-7rZ+DcqFaql9O/f0SVMwM86w+Q4uFDD380x46iqwSamSfsBPm73msDPJC6gXP9o/v1OMkGmci3lR9b8BdjEVLA== dependencies: "@nomicfoundation/hardhat-network-helpers" "^1.0.7" "@openzeppelin/contracts" "^4.9.2" @@ -7924,9 +8265,9 @@ seaport-types@^0.0.1: seaport-types "^0.0.1" solady "^0.0.84" -secp256k1@4.0.3, secp256k1@^4.0.1: +secp256k1@^4.0.1, secp256k1@4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== dependencies: elliptic "^6.5.4" @@ -7935,44 +8276,106 @@ secp256k1@4.0.3, secp256k1@^4.0.1: seedrandom@3.0.5: version "3.0.5" - resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7" + resolved "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz" integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== semaphore-async-await@^1.5.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz#857bef5e3644601ca4b9570b87e9df5ca12974fa" + resolved "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz" integrity sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg== -semaphore@>=1.0.1, semaphore@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa" - integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== +semaphore@^1.0.3, semaphore@>=1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz" + integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== + +semver@^5.3.0: + version "5.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^5.5.0: + version "5.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^5.6.0: + version "5.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: +semver@^5.7.0: version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@^6.1.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.3.4, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: +semver@^7.0.0: + version "7.5.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +semver@^7.3.4: + version "7.5.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +semver@^7.3.7: + version "7.5.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +semver@^7.3.8: + version "7.5.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +semver@^7.5.2: + version "7.5.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +semver@^7.5.3: + version "7.5.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +semver@^7.5.4: version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" semver@~5.4.1: version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + resolved "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz" integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== +"semver@2 || 3 || 4 || 5": + version "5.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + send@0.18.0: version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" @@ -7991,7 +8394,7 @@ send@0.18.0: sentence-case@^2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-2.1.1.tgz#1f6e2dda39c168bf92d13f86d4a918933f667ed4" + resolved "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz" integrity sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ== dependencies: no-case "^2.2.0" @@ -7999,14 +8402,14 @@ sentence-case@^2.1.0: serialize-javascript@6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== dependencies: randombytes "^2.1.0" serve-static@1.15.0: version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" @@ -8016,7 +8419,7 @@ serve-static@1.15.0: servify@^0.1.12: version "0.1.12" - resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" + resolved "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz" integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== dependencies: body-parser "^1.16.0" @@ -8027,12 +8430,12 @@ servify@^0.1.12: set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== set-function-name@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz" integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== dependencies: define-data-property "^1.0.1" @@ -8041,27 +8444,27 @@ set-function-name@^2.0.0: set-immediate-shim@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + resolved "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" integrity sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ== -setimmediate@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" - integrity sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog== - setimmediate@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== +setimmediate@1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz" + integrity sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog== + setprototypeof@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" @@ -8069,7 +8472,7 @@ sha.js@^2.4.0, sha.js@^2.4.8: sha1@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/sha1/-/sha1-1.1.1.tgz#addaa7a93168f393f19eb2b15091618e2700f848" + resolved "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz" integrity sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA== dependencies: charenc ">= 0.0.1" @@ -8077,26 +8480,26 @@ sha1@^1.1.1: sha3@^2.1.1: version "2.1.4" - resolved "https://registry.yarnpkg.com/sha3/-/sha3-2.1.4.tgz#000fac0fe7c2feac1f48a25e7a31b52a6492cc8f" + resolved "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz" integrity sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg== dependencies: buffer "6.0.3" shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shelljs@^0.8.3: version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz" integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== dependencies: glob "^7.0.0" @@ -8105,7 +8508,7 @@ shelljs@^0.8.3: side-channel@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: call-bind "^1.0.0" @@ -8114,12 +8517,12 @@ side-channel@^1.0.4: simple-concat@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== simple-get@^2.7.0: version "2.8.2" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.2.tgz#5708fb0919d440657326cd5fe7d2599d07705019" + resolved "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz" integrity sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw== dependencies: decompress-response "^3.3.0" @@ -8128,12 +8531,12 @@ simple-get@^2.7.0: slash@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slice-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: ansi-styles "^4.0.0" @@ -8142,19 +8545,30 @@ slice-ansi@^4.0.0: snake-case@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" + resolved "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz" integrity sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q== dependencies: no-case "^2.2.0" solady@^0.0.84: version "0.0.84" - resolved "https://registry.yarnpkg.com/solady/-/solady-0.0.84.tgz#95476df1936ef349003e88d8a4853185eb0b7267" + resolved "https://registry.npmjs.org/solady/-/solady-0.0.84.tgz" integrity sha512-1ccuZWcMR+g8Ont5LUTqMSFqrmEC+rYAbo6DjZFzdL7AJAtLiaOzO25BKZR10h6YBZNaqO5zUOFy09R6/AzAKQ== +solc@*, solc@^0.4.20: + version "0.4.26" + resolved "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz" + integrity sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA== + dependencies: + fs-extra "^0.30.0" + memorystream "^0.3.1" + require-from-string "^1.1.0" + semver "^5.3.0" + yargs "^4.7.1" + solc@0.7.3: version "0.7.3" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.7.3.tgz#04646961bd867a744f63d2b4e3c0701ffdc7d78a" + resolved "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz" integrity sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA== dependencies: command-exists "^1.2.8" @@ -8169,7 +8583,7 @@ solc@0.7.3: solc@0.8.15: version "0.8.15" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.8.15.tgz#d274dca4d5a8b7d3c9295d4cbdc9291ee1c52152" + resolved "https://registry.npmjs.org/solc/-/solc-0.8.15.tgz" integrity sha512-Riv0GNHNk/SddN/JyEuFKwbcWcEeho15iyupTSHw5Np6WuXA5D8kEHbyzDHi6sqmvLzu2l+8b1YmL8Ytple+8w== dependencies: command-exists "^1.2.8" @@ -8180,27 +8594,16 @@ solc@0.8.15: semver "^5.5.0" tmp "0.0.33" -solc@^0.4.20: - version "0.4.26" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.26.tgz#5390a62a99f40806b86258c737c1cf653cc35cb5" - integrity sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA== - dependencies: - fs-extra "^0.30.0" - memorystream "^0.3.1" - require-from-string "^1.1.0" - semver "^5.3.0" - yargs "^4.7.1" - solhint-plugin-prettier@^0.0.5: version "0.0.5" - resolved "https://registry.yarnpkg.com/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz#e3b22800ba435cd640a9eca805a7f8bc3e3e6a6b" + resolved "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz" integrity sha512-7jmWcnVshIrO2FFinIvDQmhQpfpS2rRRn3RejiYgnjIE68xO2bvrYvjqVNfrio4xH9ghOqn83tKuTzLjEbmGIA== dependencies: prettier-linter-helpers "^1.0.0" solhint@^3.3.8: version "3.6.2" - resolved "https://registry.yarnpkg.com/solhint/-/solhint-3.6.2.tgz#2b2acbec8fdc37b2c68206a71ba89c7f519943fe" + resolved "https://registry.npmjs.org/solhint/-/solhint-3.6.2.tgz" integrity sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ== dependencies: "@solidity-parser/parser" "^0.16.0" @@ -8225,24 +8628,24 @@ solhint@^3.3.8: solidity-bits@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/solidity-bits/-/solidity-bits-0.4.0.tgz#164ef2184d446b37fe1e08e63c55ae200b36697a" + resolved "https://registry.npmjs.org/solidity-bits/-/solidity-bits-0.4.0.tgz" integrity sha512-bAU3OwfZ3DrZz0LqxyCjaxXQL5fcbUXygaz7Wjd+4Th5zUbkw6h1SWBdi2E4yGOv1VSGyvcmHI8gAdgLDCXaDQ== solidity-bytes-utils@^0.8.0: version "0.8.0" - resolved "https://registry.yarnpkg.com/solidity-bytes-utils/-/solidity-bytes-utils-0.8.0.tgz#9d985a3c4aee68fbd532a9a065edade1c132442f" + resolved "https://registry.npmjs.org/solidity-bytes-utils/-/solidity-bytes-utils-0.8.0.tgz" integrity sha512-r109ZHEf7zTMm1ENW6/IJFDWilFR/v0BZnGuFgDHJUV80ByobnV2k3txvwQaJ9ApL+6XAfwqsw5VFzjALbQPCw== dependencies: "@truffle/hdwallet-provider" latest solidity-comments-extractor@^0.0.7: version "0.0.7" - resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19" + resolved "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz" integrity sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw== solidity-coverage@^0.8.4: version "0.8.5" - resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.8.5.tgz#64071c3a0c06a0cecf9a7776c35f49edc961e875" + resolved "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.5.tgz" integrity sha512-6C6N6OV2O8FQA0FWA95FdzVH+L16HU94iFgg5wAFZ29UpLFkgNI/DRR2HotG1bC0F4gAc/OMs2BJI44Q/DYlKQ== dependencies: "@ethersproject/abi" "^5.0.9" @@ -8268,27 +8671,32 @@ solidity-coverage@^0.8.4: source-map-support@^0.5.13: version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.6.0, source-map@^0.6.1: +source-map@^0.6.0: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@~0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz" integrity sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA== dependencies: amdefine ">=0.0.4" spdx-correct@^3.0.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz" integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== dependencies: spdx-expression-parse "^3.0.0" @@ -8296,12 +8704,12 @@ spdx-correct@^3.0.0: spdx-exceptions@^2.1.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" @@ -8309,17 +8717,17 @@ spdx-expression-parse@^3.0.0: spdx-license-ids@^3.0.0: version "3.0.15" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz#142460aabaca062bc7cd4cc87b7d50725ed6a4ba" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz" integrity sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ== sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sshpk@^1.7.0: version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== dependencies: asn1 "~0.2.3" @@ -8334,39 +8742,58 @@ sshpk@^1.7.0: stacktrace-parser@^0.1.10: version "0.1.10" - resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" + resolved "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz" integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== dependencies: type-fest "^0.7.1" statuses@2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== stealthy-require@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz" integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== streamsearch@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== strict-uri-encode@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + string-format@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b" + resolved "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz" integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== string-width@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== dependencies: code-point-at "^1.0.0" @@ -8375,7 +8802,7 @@ string-width@^1.0.1: "string-width@^1.0.2 || 2", string-width@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" @@ -8383,16 +8810,34 @@ string-width@^1.0.1: string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: emoji-regex "^7.0.1" is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +string-width@^4.1.0: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.2.3: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -8401,7 +8846,7 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: string.prototype.trim@^1.2.8: version "1.2.8" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz" integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: call-bind "^1.0.2" @@ -8410,7 +8855,7 @@ string.prototype.trim@^1.2.8: string.prototype.trimend@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz" integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" @@ -8419,137 +8864,118 @@ string.prototype.trimend@^1.0.7: string.prototype.trimstart@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz" integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" es-abstract "^1.22.1" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== dependencies: ansi-regex "^3.0.0" strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-bom@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== dependencies: is-utf8 "^0.2.0" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-hex-prefix@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + resolved "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz" integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== dependencies: is-hex-prefixed "1.0.0" strip-indent@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz" integrity sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA== -strip-json-comments@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== - -strip-json-comments@3.1.1, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1, strip-json-comments@3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" - integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== - dependencies: - has-flag "^3.0.0" - -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" +strip-json-comments@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== supports-color@^3.1.0: version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz" integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== dependencies: has-flag "^1.0.0" supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" +supports-color@6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz" + integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== + dependencies: + has-flag "^3.0.0" + +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== swap-case@^1.1.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3" + resolved "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz" integrity sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ== dependencies: lower-case "^1.1.1" @@ -8557,7 +8983,7 @@ swap-case@^1.1.0: swarm-js@^0.1.40: version "0.1.42" - resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.42.tgz#497995c62df6696f6e22372f457120e43e727979" + resolved "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz" integrity sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ== dependencies: bluebird "^3.5.0" @@ -8574,7 +9000,7 @@ swarm-js@^0.1.40: sync-request@^6.0.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/sync-request/-/sync-request-6.1.0.tgz#e96217565b5e50bbffe179868ba75532fb597e68" + resolved "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz" integrity sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw== dependencies: http-response-object "^3.0.1" @@ -8583,14 +9009,14 @@ sync-request@^6.0.0: sync-rpc@^1.2.1: version "1.3.6" - resolved "https://registry.yarnpkg.com/sync-rpc/-/sync-rpc-1.3.6.tgz#b2e8b2550a12ccbc71df8644810529deb68665a7" + resolved "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz" integrity sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw== dependencies: get-port "^3.1.0" table-layout@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" + resolved "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz" integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A== dependencies: array-back "^4.0.1" @@ -8600,7 +9026,7 @@ table-layout@^1.0.2: table@^6.8.0, table@^6.8.1: version "6.8.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" + resolved "https://registry.npmjs.org/table/-/table-6.8.1.tgz" integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== dependencies: ajv "^8.0.1" @@ -8611,7 +9037,7 @@ table@^6.8.0, table@^6.8.1: tar@^4.0.2: version "4.4.19" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" + resolved "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz" integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== dependencies: chownr "^1.1.4" @@ -8624,17 +9050,17 @@ tar@^4.0.2: testrpc@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/testrpc/-/testrpc-0.0.1.tgz#83e2195b1f5873aec7be1af8cbe6dcf39edb7aed" + resolved "https://registry.npmjs.org/testrpc/-/testrpc-0.0.1.tgz" integrity sha512-afH1hO+SQ/VPlmaLUFj2636QMeDvPCeQMc/9RBMW0IfjNe9gFD9Ra3ShqYkB7py0do1ZcCna/9acHyzTJ+GcNA== text-table@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== then-request@^6.0.0: version "6.0.2" - resolved "https://registry.yarnpkg.com/then-request/-/then-request-6.0.2.tgz#ec18dd8b5ca43aaee5cb92f7e4c1630e950d4f0c" + resolved "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz" integrity sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA== dependencies: "@types/concat-stream" "^1.6.0" @@ -8651,12 +9077,12 @@ then-request@^6.0.0: timed-out@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz" integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== title-case@^2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/title-case/-/title-case-2.1.1.tgz#3e127216da58d2bc5becf137ab91dae3a7cd8faa" + resolved "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz" integrity sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q== dependencies: no-case "^2.2.0" @@ -8664,31 +9090,31 @@ title-case@^2.1.0: tmp@0.0.33: version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + 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" toidentifier@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== tough-cookie@^2.3.3, tough-cookie@~2.5.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: psl "^1.1.28" @@ -8696,17 +9122,17 @@ tough-cookie@^2.3.3, tough-cookie@~2.5.0: tr46@~0.0.3: version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== treeify@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.1.0.tgz#4e31c6a463accd0943879f30667c4fdaff411bb8" + resolved "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz" integrity sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A== ts-command-line-args@^2.2.0: version "2.5.1" - resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz#e64456b580d1d4f6d948824c274cf6fa5f45f7f0" + resolved "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz" integrity sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw== dependencies: chalk "^4.1.0" @@ -8716,12 +9142,12 @@ ts-command-line-args@^2.2.0: ts-essentials@^7.0.1: version "7.0.3" - resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" + resolved "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz" integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== -ts-node@^10.9.1: +ts-node@*, ts-node@^10.9.1: version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== dependencies: "@cspotcode/source-map-support" "^0.8.0" @@ -8740,7 +9166,7 @@ ts-node@^10.9.1: tsconfig-paths@^3.14.2: version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz" integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== dependencies: "@types/json5" "^0.0.29" @@ -8750,85 +9176,90 @@ tsconfig-paths@^3.14.2: tslib@^1.8.1, tslib@^1.9.3: version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.0: version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tsort@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" + resolved "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz" integrity sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw== tsutils@^3.21.0: version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" tweetnacl-util@^0.15.1: version "0.15.1" - resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" + resolved "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz" integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== -tweetnacl@^0.14.3, tweetnacl@~0.14.0: +tweetnacl@^0.14.3: version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== tweetnacl@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== +tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-check@~0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== dependencies: prelude-ls "~1.1.2" type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type-fest@^0.7.1: version "0.7.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== type-is@~1.6.18: version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" @@ -8836,17 +9267,17 @@ type-is@~1.6.18: type@^1.0.1: version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz" integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== type@^2.7.2: version "2.7.2" - resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + resolved "https://registry.npmjs.org/type/-/type-2.7.2.tgz" integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== typechain@^8.0.0, typechain@^8.1.1: version "8.3.1" - resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.3.1.tgz#dccbc839b94877997536c356380eff7325395cfb" + resolved "https://registry.npmjs.org/typechain/-/typechain-8.3.1.tgz" integrity sha512-fA7clol2IP/56yq6vkMTR+4URF1nGjV82Wx6Rf09EsqD4tkzMAvEaqYxVFCavJm/1xaRga/oD55K+4FtuXwQOQ== dependencies: "@types/prettier" "^2.1.1" @@ -8862,7 +9293,7 @@ typechain@^8.0.0, typechain@^8.1.1: typed-array-buffer@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz" integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== dependencies: call-bind "^1.0.2" @@ -8871,7 +9302,7 @@ typed-array-buffer@^1.0.0: typed-array-byte-length@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz" integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== dependencies: call-bind "^1.0.2" @@ -8881,7 +9312,7 @@ typed-array-byte-length@^1.0.0: typed-array-byte-offset@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz" integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== dependencies: available-typed-arrays "^1.0.5" @@ -8892,7 +9323,7 @@ typed-array-byte-offset@^1.0.0: typed-array-length@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== dependencies: call-bind "^1.0.2" @@ -8901,44 +9332,44 @@ typed-array-length@^1.0.4: typedarray-to-buffer@^3.1.5: version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@^4.9.5: +typescript@*, typescript@^4.9.5, typescript@>=2.7, "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", typescript@>=3.7.0, typescript@>=4.3.0, typescript@>=4.9.5: version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== typical@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" + resolved "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz" integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== typical@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" + resolved "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz" integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== uglify-js@^3.1.4: version "3.17.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== ultron@~1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + resolved "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz" integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== unbox-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: call-bind "^1.0.2" @@ -8948,29 +9379,29 @@ unbox-primitive@^1.0.2: undici@^5.14.0: version "5.25.2" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.25.2.tgz#17ddc3e8ab3c77e473ae1547f3f2917a05da2820" + resolved "https://registry.npmjs.org/undici/-/undici-5.25.2.tgz" integrity sha512-tch8RbCfn1UUH1PeVCXva4V8gDpGAud/w0WubD6sHC46vYQ3KDxL+xv1A2UxK0N6jrVedutuPHxe1XIoqerwMw== dependencies: busboy "^1.6.0" universalify@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== universalify@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unpipe@1.0.0, unpipe@~1.0.0: +unpipe@~1.0.0, unpipe@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== update-browserslist-db@^1.0.13: version "1.0.13" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz" integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== dependencies: escalade "^3.1.1" @@ -8978,63 +9409,63 @@ update-browserslist-db@^1.0.13: upper-case-first@^1.1.0, upper-case-first@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115" + resolved "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz" integrity sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ== dependencies: upper-case "^1.1.1" upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" integrity sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA== uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" url-set-query@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" + resolved "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz" integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== url@^0.11.0: version "0.11.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.3.tgz#6f495f4b935de40ce4a0a52faee8954244f3d3ad" + resolved "https://registry.npmjs.org/url/-/url-0.11.3.tgz" integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw== dependencies: punycode "^1.4.1" qs "^6.11.2" -utf-8-validate@5.0.7: - version "5.0.7" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.7.tgz#c15a19a6af1f7ad9ec7ddc425747ca28c3644922" - integrity sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q== - dependencies: - node-gyp-build "^4.3.0" - utf-8-validate@^5.0.2: version "5.0.10" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" + resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz" integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== dependencies: node-gyp-build "^4.3.0" -utf8@3.0.0, utf8@^3.0.0: +utf-8-validate@5.0.7: + version "5.0.7" + resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz" + integrity sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q== + dependencies: + node-gyp-build "^4.3.0" + +utf8@^3.0.0, utf8@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + resolved "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz" integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util@^0.12.5: version "0.12.5" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== dependencies: inherits "^2.0.3" @@ -9045,37 +9476,37 @@ util@^0.12.5: utils-merge@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -uuid@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" - integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg== - uuid@^3.3.2: version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== uuid@^9.0.0: version "9.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== +uuid@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz" + integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg== + v8-compile-cache-lib@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== validate-npm-package-license@^3.0.1: version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" @@ -9083,17 +9514,17 @@ validate-npm-package-license@^3.0.1: varint@^5.0.0: version "5.0.2" - resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" + resolved "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz" integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== vary@^1, vary@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== verror@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: assert-plus "^1.0.0" @@ -9102,17 +9533,17 @@ verror@1.10.0: web3-bzz@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.10.0.tgz#ac74bc71cdf294c7080a79091079192f05c5baed" + resolved "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz" integrity sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA== dependencies: "@types/node" "^12.12.6" got "12.1.0" swarm-js "^0.1.40" -web3-bzz@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.10.2.tgz#482dfddcc5f65d5877b37cc20775725220b4ad87" - integrity sha512-vLOfDCj6198Qc7esDrCKeFA/M3ZLbowsaHQ0hIL4NmIHoq7lU8aSRTa5AI+JBh8cKN1gVryJsuW2ZCc5bM4I4Q== +web3-bzz@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.3.tgz" + integrity sha512-XDIRsTwekdBXtFytMpHBuun4cK4x0ZMIDXSoo1UVYp+oMyZj07c7gf7tNQY5qZ/sN+CJIas4ilhN25VJcjSijQ== dependencies: "@types/node" "^12.12.6" got "12.1.0" @@ -9120,23 +9551,23 @@ web3-bzz@1.10.2: web3-core-helpers@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz#1016534c51a5df77ed4f94d1fcce31de4af37fad" + resolved "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz" integrity sha512-pIxAzFDS5vnbXvfvLSpaA1tfRykAe9adw43YCKsEYQwH0gCLL0kMLkaCX3q+Q8EVmAh+e1jWL/nl9U0de1+++g== dependencies: web3-eth-iban "1.10.0" web3-utils "1.10.0" -web3-core-helpers@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.10.2.tgz#bd47686c0e74ef4475713c581f9306a035ce8a74" - integrity sha512-1JfaNtox6/ZYJHNoI+QVc2ObgwEPeGF+YdxHZQ7aF5605BmlwM1Bk3A8xv6mg64jIRvEq1xX6k9oG6x7p1WgXQ== +web3-core-helpers@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz" + integrity sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA== dependencies: - web3-eth-iban "1.10.2" - web3-utils "1.10.2" + web3-eth-iban "1.10.3" + web3-utils "1.10.3" web3-core-method@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.10.0.tgz#82668197fa086e8cc8066742e35a9d72535e3412" + resolved "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz" integrity sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA== dependencies: "@ethersproject/transactions" "^5.6.2" @@ -9145,34 +9576,34 @@ web3-core-method@1.10.0: web3-core-subscriptions "1.10.0" web3-utils "1.10.0" -web3-core-method@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.10.2.tgz#4adf3f8c8d0776f0f320e583b791955c41037971" - integrity sha512-gG6ES+LOuo01MJHML4gnEt702M8lcPGMYZoX8UjZzmEebGrPYOY9XccpCrsFgCeKgQzM12SVnlwwpMod1+lcLg== +web3-core-method@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.3.tgz" + integrity sha512-VZ/Dmml4NBmb0ep5PTSg9oqKoBtG0/YoMPei/bq/tUdlhB2dMB79sbeJPwx592uaV0Vpk7VltrrrBv5hTM1y4Q== dependencies: "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.10.2" - web3-core-promievent "1.10.2" - web3-core-subscriptions "1.10.2" - web3-utils "1.10.2" + web3-core-helpers "1.10.3" + web3-core-promievent "1.10.3" + web3-core-subscriptions "1.10.3" + web3-utils "1.10.3" web3-core-promievent@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.10.0.tgz#cbb5b3a76b888df45ed3a8d4d8d4f54ccb66a37b" + resolved "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.0.tgz" integrity sha512-68N7k5LWL5R38xRaKFrTFT2pm2jBNFaM4GioS00YjAKXRQ3KjmhijOMG3TICz6Aa5+6GDWYelDNx21YAeZ4YTg== dependencies: eventemitter3 "4.0.4" -web3-core-promievent@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.10.2.tgz#13b380b69ee05c5bf075836be64c2f3b8bdc1a5f" - integrity sha512-Qkkb1dCDOU8dZeORkcwJBQRAX+mdsjx8LqFBB+P4W9QgwMqyJ6LXda+y1XgyeEVeKEmY1RCeTq9Y94q1v62Sfw== +web3-core-promievent@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.3.tgz" + integrity sha512-HgjY+TkuLm5uTwUtaAfkTgRx/NzMxvVradCi02gy17NxDVdg/p6svBHcp037vcNpkuGeFznFJgULP+s2hdVgUQ== dependencies: eventemitter3 "4.0.4" web3-core-requestmanager@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz#4b34f6e05837e67c70ff6f6993652afc0d54c340" + resolved "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz" integrity sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ== dependencies: util "^0.12.5" @@ -9181,36 +9612,36 @@ web3-core-requestmanager@1.10.0: web3-providers-ipc "1.10.0" web3-providers-ws "1.10.0" -web3-core-requestmanager@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.10.2.tgz#f5b1264c6470c033f08e21210b0af0c23497c68a" - integrity sha512-nlLeNJUu6fR+ZbJr2k9Du/nN3VWwB4AJPY4r6nxUODAmykgJq57T21cLP/BEk6mbiFQYGE9TrrPhh4qWxQEtAw== +web3-core-requestmanager@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.3.tgz" + integrity sha512-VT9sKJfgM2yBOIxOXeXiDuFMP4pxzF6FT+y8KTLqhDFHkbG3XRe42Vm97mB/IvLQCJOmokEjl3ps8yP1kbggyw== dependencies: util "^0.12.5" - web3-core-helpers "1.10.2" - web3-providers-http "1.10.2" - web3-providers-ipc "1.10.2" - web3-providers-ws "1.10.2" + web3-core-helpers "1.10.3" + web3-providers-http "1.10.3" + web3-providers-ipc "1.10.3" + web3-providers-ws "1.10.3" web3-core-subscriptions@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz#b534592ee1611788fc0cb0b95963b9b9b6eacb7c" + resolved "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz" integrity sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g== dependencies: eventemitter3 "4.0.4" web3-core-helpers "1.10.0" -web3-core-subscriptions@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.10.2.tgz#d325483141ab1406241d6707b86fd6944e4b7ea6" - integrity sha512-MiWcKjz4tco793EPPPLc/YOJmYUV3zAfxeQH/UVTfBejMfnNvmfwKa2SBKfPIvKQHz/xI5bV2TF15uvJEucU7w== +web3-core-subscriptions@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.3.tgz" + integrity sha512-KW0Mc8sgn70WadZu7RjQ4H5sNDJ5Lx8JMI3BWos+f2rW0foegOCyWhRu33W1s6ntXnqeBUw5rRCXZRlA3z+HNA== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.10.2" + web3-core-helpers "1.10.3" web3-core@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.10.0.tgz#9aa07c5deb478cf356c5d3b5b35afafa5fa8e633" + resolved "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz" integrity sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ== dependencies: "@types/bn.js" "^5.1.1" @@ -9221,38 +9652,38 @@ web3-core@1.10.0: web3-core-requestmanager "1.10.0" web3-utils "1.10.0" -web3-core@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.10.2.tgz#464a15335b3adecc4a1cdd53c89b995769059f03" - integrity sha512-qTn2UmtE8tvwMRsC5pXVdHxrQ4uZ6jiLgF5DRUVtdi7dPUmX18Dp9uxKfIfhGcA011EAn8P6+X7r3pvi2YRxBw== +web3-core@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-core/-/web3-core-1.10.3.tgz" + integrity sha512-Vbk0/vUNZxJlz3RFjAhNNt7qTpX8yE3dn3uFxfX5OHbuon5u65YEOd3civ/aQNW745N0vGUlHFNxxmn+sG9DIw== dependencies: "@types/bn.js" "^5.1.1" "@types/node" "^12.12.6" bignumber.js "^9.0.0" - web3-core-helpers "1.10.2" - web3-core-method "1.10.2" - web3-core-requestmanager "1.10.2" - web3-utils "1.10.2" + web3-core-helpers "1.10.3" + web3-core-method "1.10.3" + web3-core-requestmanager "1.10.3" + web3-utils "1.10.3" web3-eth-abi@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz#53a7a2c95a571e205e27fd9e664df4919483cce1" + resolved "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz" integrity sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg== dependencies: "@ethersproject/abi" "^5.6.3" web3-utils "1.10.0" -web3-eth-abi@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.10.2.tgz#65db4af1acb0b72cb9d10cd6f045a8bcdb270b1b" - integrity sha512-pY4fQUio7W7ZRSLf+vsYkaxJqaT/jHcALZjIxy+uBQaYAJ3t6zpQqMZkJB3Dw7HUODRJ1yI0NPEFGTnkYf/17A== +web3-eth-abi@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.3.tgz" + integrity sha512-O8EvV67uhq0OiCMekqYsDtb6FzfYzMXT7VMHowF8HV6qLZXCGTdB/NH4nJrEh2mFtEwVdS6AmLFJAQd2kVyoMQ== dependencies: "@ethersproject/abi" "^5.6.3" - web3-utils "1.10.2" + web3-utils "1.10.3" web3-eth-accounts@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz#2942beca0a4291455f32cf09de10457a19a48117" + resolved "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz" integrity sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q== dependencies: "@ethereumjs/common" "2.5.0" @@ -9266,25 +9697,25 @@ web3-eth-accounts@1.10.0: web3-core-method "1.10.0" web3-utils "1.10.0" -web3-eth-accounts@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.10.2.tgz#5ce9e4de0f84a88e72801810b98cc25164956404" - integrity sha512-6/HhCBYAXN/f553/SyxS9gY62NbLgpD1zJpENcvRTDpJN3Znvli1cmpl5Q3ZIUJkvHnG//48EWfWh0cbb3fbKQ== +web3-eth-accounts@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.3.tgz" + integrity sha512-8MipGgwusDVgn7NwKOmpeo3gxzzd+SmwcWeBdpXknuyDiZSQy9tXe+E9LeFGrmys/8mLLYP79n3jSbiTyv+6pQ== dependencies: - "@ethereumjs/common" "2.5.0" - "@ethereumjs/tx" "3.3.2" + "@ethereumjs/common" "2.6.5" + "@ethereumjs/tx" "3.5.2" "@ethereumjs/util" "^8.1.0" eth-lib "0.2.8" scrypt-js "^3.0.1" uuid "^9.0.0" - web3-core "1.10.2" - web3-core-helpers "1.10.2" - web3-core-method "1.10.2" - web3-utils "1.10.2" + web3-core "1.10.3" + web3-core-helpers "1.10.3" + web3-core-method "1.10.3" + web3-utils "1.10.3" web3-eth-contract@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz#8e68c7654576773ec3c91903f08e49d0242c503a" + resolved "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz" integrity sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w== dependencies: "@types/bn.js" "^5.1.1" @@ -9296,23 +9727,23 @@ web3-eth-contract@1.10.0: web3-eth-abi "1.10.0" web3-utils "1.10.0" -web3-eth-contract@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.10.2.tgz#9114c52ba5ca5859f3403abea69a13f8678828ad" - integrity sha512-CZLKPQRmupP/+OZ5A/CBwWWkBiz5B/foOpARz0upMh1yjb0dEud4YzRW2gJaeNu0eGxDLsWVaXhUimJVGYprQw== +web3-eth-contract@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.3.tgz" + integrity sha512-Y2CW61dCCyY4IoUMD4JsEQWrILX4FJWDWC/Txx/pr3K/+fGsBGvS9kWQN5EsVXOp4g7HoFOfVh9Lf7BmVVSRmg== dependencies: "@types/bn.js" "^5.1.1" - web3-core "1.10.2" - web3-core-helpers "1.10.2" - web3-core-method "1.10.2" - web3-core-promievent "1.10.2" - web3-core-subscriptions "1.10.2" - web3-eth-abi "1.10.2" - web3-utils "1.10.2" + web3-core "1.10.3" + web3-core-helpers "1.10.3" + web3-core-method "1.10.3" + web3-core-promievent "1.10.3" + web3-core-subscriptions "1.10.3" + web3-eth-abi "1.10.3" + web3-utils "1.10.3" web3-eth-ens@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz#96a676524e0b580c87913f557a13ed810cf91cd9" + resolved "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz" integrity sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g== dependencies: content-hash "^2.5.2" @@ -9324,39 +9755,39 @@ web3-eth-ens@1.10.0: web3-eth-contract "1.10.0" web3-utils "1.10.0" -web3-eth-ens@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.10.2.tgz#5708e1830ab261b139882cc43662afb3a733112e" - integrity sha512-kTQ42UdNHy4BQJHgWe97bHNMkc3zCMBKKY7t636XOMxdI/lkRdIjdE5nQzt97VjQvSVasgIWYKRAtd8aRaiZiQ== +web3-eth-ens@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.3.tgz" + integrity sha512-hR+odRDXGqKemw1GFniKBEXpjYwLgttTES+bc7BfTeoUyUZXbyDHe5ifC+h+vpzxh4oS0TnfcIoarK0Z9tFSiQ== dependencies: content-hash "^2.5.2" eth-ens-namehash "2.0.8" - web3-core "1.10.2" - web3-core-helpers "1.10.2" - web3-core-promievent "1.10.2" - web3-eth-abi "1.10.2" - web3-eth-contract "1.10.2" - web3-utils "1.10.2" + web3-core "1.10.3" + web3-core-helpers "1.10.3" + web3-core-promievent "1.10.3" + web3-eth-abi "1.10.3" + web3-eth-contract "1.10.3" + web3-utils "1.10.3" web3-eth-iban@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.10.0.tgz#5a46646401965b0f09a4f58e7248c8a8cd22538a" + resolved "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.0.tgz" integrity sha512-0l+SP3IGhInw7Q20LY3IVafYEuufo4Dn75jAHT7c2aDJsIolvf2Lc6ugHkBajlwUneGfbRQs/ccYPQ9JeMUbrg== dependencies: bn.js "^5.2.1" web3-utils "1.10.0" -web3-eth-iban@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.10.2.tgz#f8e668034834c5be038adeb14c39b923e9257558" - integrity sha512-y8+Ii2XXdyHQMFNL2NWpBnXe+TVJ4ryvPlzNhObRRnIo4O4nLIXS010olLDMayozDzoUlmzCmBZJYc9Eev1g7A== +web3-eth-iban@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz" + integrity sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA== dependencies: bn.js "^5.2.1" - web3-utils "1.10.2" + web3-utils "1.10.3" web3-eth-personal@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz#94d525f7a29050a0c2a12032df150ac5ea633071" + resolved "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz" integrity sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg== dependencies: "@types/node" "^12.12.6" @@ -9366,21 +9797,21 @@ web3-eth-personal@1.10.0: web3-net "1.10.0" web3-utils "1.10.0" -web3-eth-personal@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.10.2.tgz#a281cc1cecb2f3243ac0467c075a1579fa562901" - integrity sha512-+vEbJsPUJc5J683y0c2aN645vXC+gPVlFVCQu4IjPvXzJrAtUfz26+IZ6AUOth4fDJPT0f1uSLS5W2yrUdw9BQ== +web3-eth-personal@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.3.tgz" + integrity sha512-avrQ6yWdADIvuNQcFZXmGLCEzulQa76hUOuVywN7O3cklB4nFc/Gp3yTvD3bOAaE7DhjLQfhUTCzXL7WMxVTsw== dependencies: "@types/node" "^12.12.6" - web3-core "1.10.2" - web3-core-helpers "1.10.2" - web3-core-method "1.10.2" - web3-net "1.10.2" - web3-utils "1.10.2" + web3-core "1.10.3" + web3-core-helpers "1.10.3" + web3-core-method "1.10.3" + web3-net "1.10.3" + web3-utils "1.10.3" web3-eth@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.10.0.tgz#38b905e2759697c9624ab080cfcf4e6c60b3a6cf" + resolved "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz" integrity sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA== dependencies: web3-core "1.10.0" @@ -9396,45 +9827,45 @@ web3-eth@1.10.0: web3-net "1.10.0" web3-utils "1.10.0" -web3-eth@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.10.2.tgz#46baa0d8a1203b425f77ac2cf823fbb73666fcb9" - integrity sha512-s38rhrntyhGShmXC4R/aQtfkpcmev9c7iZwgb9CDIBFo7K8nrEJvqIOyajeZTxnDIiGzTJmrHxiKSadii5qTRg== - dependencies: - web3-core "1.10.2" - web3-core-helpers "1.10.2" - web3-core-method "1.10.2" - web3-core-subscriptions "1.10.2" - web3-eth-abi "1.10.2" - web3-eth-accounts "1.10.2" - web3-eth-contract "1.10.2" - web3-eth-ens "1.10.2" - web3-eth-iban "1.10.2" - web3-eth-personal "1.10.2" - web3-net "1.10.2" - web3-utils "1.10.2" +web3-eth@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.3.tgz" + integrity sha512-Uk1U2qGiif2mIG8iKu23/EQJ2ksB1BQXy3wF3RvFuyxt8Ft9OEpmGlO7wOtAyJdoKzD5vcul19bJpPcWSAYZhA== + dependencies: + web3-core "1.10.3" + web3-core-helpers "1.10.3" + web3-core-method "1.10.3" + web3-core-subscriptions "1.10.3" + web3-eth-abi "1.10.3" + web3-eth-accounts "1.10.3" + web3-eth-contract "1.10.3" + web3-eth-ens "1.10.3" + web3-eth-iban "1.10.3" + web3-eth-personal "1.10.3" + web3-net "1.10.3" + web3-utils "1.10.3" web3-net@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.10.0.tgz#be53e7f5dafd55e7c9013d49c505448b92c9c97b" + resolved "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz" integrity sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA== dependencies: web3-core "1.10.0" web3-core-method "1.10.0" web3-utils "1.10.0" -web3-net@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.10.2.tgz#77f39dea930619035d3bf99969941870f2f0c550" - integrity sha512-w9i1t2z7dItagfskhaCKwpp6W3ylUR88gs68u820y5f8yfK5EbPmHc6c2lD8X9ZrTnmDoeOpIRCN/RFPtZCp+g== +web3-net@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-net/-/web3-net-1.10.3.tgz" + integrity sha512-IoSr33235qVoI1vtKssPUigJU9Fc/Ph0T9CgRi15sx+itysmvtlmXMNoyd6Xrgm9LuM4CIhxz7yDzH93B79IFg== dependencies: - web3-core "1.10.2" - web3-core-method "1.10.2" - web3-utils "1.10.2" + web3-core "1.10.3" + web3-core-method "1.10.3" + web3-utils "1.10.3" web3-provider-engine@16.0.3: version "16.0.3" - resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-16.0.3.tgz#8ff93edf3a8da2f70d7f85c5116028c06a0d9f07" + resolved "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.3.tgz" integrity sha512-Q3bKhGqLfMTdLvkd4TtkGYJHcoVQ82D1l8jTIwwuJp/sAp7VHnRYb9YJ14SW/69VMWoOhSpPLZV2tWb9V0WJoA== dependencies: "@ethereumjs/tx" "^3.3.0" @@ -9462,7 +9893,7 @@ web3-provider-engine@16.0.3: web3-providers-http@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.10.0.tgz#864fa48675e7918c9a4374e5f664b32c09d0151b" + resolved "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz" integrity sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA== dependencies: abortcontroller-polyfill "^1.7.3" @@ -9470,53 +9901,53 @@ web3-providers-http@1.10.0: es6-promise "^4.2.8" web3-core-helpers "1.10.0" -web3-providers-http@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.10.2.tgz#8bd54b5bc5bcc50612fd52af65bd773f926045f7" - integrity sha512-G8abKtpkyKGpRVKvfjIF3I4O/epHP7mxXWN8mNMQLkQj1cjMFiZBZ13f+qI77lNJN7QOf6+LtNdKrhsTGU72TA== +web3-providers-http@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.3.tgz" + integrity sha512-6dAgsHR3MxJ0Qyu3QLFlQEelTapVfWNTu5F45FYh8t7Y03T1/o+YAkVxsbY5AdmD+y5bXG/XPJ4q8tjL6MgZHw== dependencies: abortcontroller-polyfill "^1.7.5" cross-fetch "^4.0.0" es6-promise "^4.2.8" - web3-core-helpers "1.10.2" + web3-core-helpers "1.10.3" web3-providers-ipc@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz#9747c7a6aee96a51488e32fa7c636c3460b39889" + resolved "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz" integrity sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA== dependencies: oboe "2.1.5" web3-core-helpers "1.10.0" -web3-providers-ipc@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.10.2.tgz#4314a04c1d68f5d1cb2d047d027db97c85f921f7" - integrity sha512-lWbn6c+SgvhLymU8u4Ea/WOVC0Gqs7OJUvauejWz+iLycxeF0xFNyXnHVAi42ZJDPVI3vnfZotafoxcNNL7Sug== +web3-providers-ipc@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.3.tgz" + integrity sha512-vP5WIGT8FLnGRfswTxNs9rMfS1vCbMezj/zHbBe/zB9GauBRTYVrUo2H/hVrhLg8Ut7AbsKZ+tCJ4mAwpKi2hA== dependencies: oboe "2.1.5" - web3-core-helpers "1.10.2" + web3-core-helpers "1.10.3" web3-providers-ws@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz#cb0b87b94c4df965cdf486af3a8cd26daf3975e5" + resolved "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz" integrity sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ== dependencies: eventemitter3 "4.0.4" web3-core-helpers "1.10.0" websocket "^1.0.32" -web3-providers-ws@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.10.2.tgz#00bf6e00080dd82b8ad7fbed657a6d20ecc532de" - integrity sha512-3nYSiP6grI5GvpkSoehctSywfCTodU21VY8bUtXyFHK/IVfDooNtMpd5lVIMvXVAlaxwwrCfjebokaJtKH2Iag== +web3-providers-ws@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.3.tgz" + integrity sha512-/filBXRl48INxsh6AuCcsy4v5ndnTZ/p6bl67kmO9aK1wffv7CT++DrtclDtVMeDGCgB3van+hEf9xTAVXur7Q== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.10.2" + web3-core-helpers "1.10.3" websocket "^1.0.32" web3-shh@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.10.0.tgz#c2979b87e0f67a7fef2ce9ee853bd7bfbe9b79a8" + resolved "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz" integrity sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg== dependencies: web3-core "1.10.0" @@ -9524,60 +9955,59 @@ web3-shh@1.10.0: web3-core-subscriptions "1.10.0" web3-net "1.10.0" -web3-shh@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.10.2.tgz#2a41e1a308de5320d1f17080765206b727aa669e" - integrity sha512-UP0Kc3pHv9uULFu0+LOVfPwKBSJ6B+sJ5KflF7NyBk6TvNRxlpF3hUhuaVDCjjB/dDUR6T0EQeg25FA2uzJbag== +web3-shh@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.3.tgz" + integrity sha512-cAZ60CPvs9azdwMSQ/PSUdyV4PEtaW5edAZhu3rCXf6XxQRliBboic+AvwUvB6j3eswY50VGa5FygfVmJ1JVng== dependencies: - web3-core "1.10.2" - web3-core-method "1.10.2" - web3-core-subscriptions "1.10.2" - web3-net "1.10.2" + web3-core "1.10.3" + web3-core-method "1.10.3" + web3-core-subscriptions "1.10.3" + web3-net "1.10.3" -web3-utils@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.0.tgz#ca4c1b431a765c14ac7f773e92e0fd9377ccf578" - integrity sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg== +web3-utils@^1.0.0-beta.31, web3-utils@^1.2.5, web3-utils@^1.3.4, web3-utils@^1.3.6, web3-utils@1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.3.tgz" + integrity sha512-OqcUrEE16fDBbGoQtZXWdavsPzbGIDc5v3VrRTZ0XrIpefC/viZ1ZU9bGEemazyS0catk/3rkOOxpzTfY+XsyQ== dependencies: + "@ethereumjs/util" "^8.1.0" bn.js "^5.2.1" ethereum-bloom-filters "^1.0.6" - ethereumjs-util "^7.1.0" + ethereum-cryptography "^2.1.2" ethjs-unit "0.1.6" number-to-bn "1.7.0" randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@1.10.2, web3-utils@^1.0.0-beta.31, web3-utils@^1.2.5, web3-utils@^1.3.6: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.2.tgz#361103d28a94d5e2a87ba15d776a62c33303eb44" - integrity sha512-TdApdzdse5YR+5GCX/b/vQnhhbj1KSAtfrDtRW7YS0kcWp1gkJsN62gw6GzCaNTeXookB7UrLtmDUuMv65qgow== +web3-utils@1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz" + integrity sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg== dependencies: - "@ethereumjs/util" "^8.1.0" bn.js "^5.2.1" ethereum-bloom-filters "^1.0.6" - ethereum-cryptography "^2.1.2" + ethereumjs-util "^7.1.0" ethjs-unit "0.1.6" number-to-bn "1.7.0" randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@^1.3.4: +web3@^1.0.0-beta.36, web3@^1.2.5: version "1.10.3" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.3.tgz#f1db99c82549c7d9f8348f04ffe4e0188b449714" - integrity sha512-OqcUrEE16fDBbGoQtZXWdavsPzbGIDc5v3VrRTZ0XrIpefC/viZ1ZU9bGEemazyS0catk/3rkOOxpzTfY+XsyQ== + resolved "https://registry.npmjs.org/web3/-/web3-1.10.3.tgz" + integrity sha512-DgUdOOqC/gTqW+VQl1EdPxrVRPB66xVNtuZ5KD4adVBtko87hkgM8BTZ0lZ8IbUfnQk6DyjcDujMiH3oszllAw== dependencies: - "@ethereumjs/util" "^8.1.0" - bn.js "^5.2.1" - ethereum-bloom-filters "^1.0.6" - ethereum-cryptography "^2.1.2" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - utf8 "3.0.0" + web3-bzz "1.10.3" + web3-core "1.10.3" + web3-eth "1.10.3" + web3-eth-personal "1.10.3" + web3-net "1.10.3" + web3-shh "1.10.3" + web3-utils "1.10.3" web3@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.10.0.tgz#2fde0009f59aa756c93e07ea2a7f3ab971091274" + resolved "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz" integrity sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng== dependencies: web3-bzz "1.10.0" @@ -9588,27 +10018,14 @@ web3@1.10.0: web3-shh "1.10.0" web3-utils "1.10.0" -web3@^1.2.5: - version "1.10.2" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.10.2.tgz#5b7e165b396fb0bea501cef4d5ce754aebad5b73" - integrity sha512-DAtZ3a3ruPziE80uZ3Ob0YDZxt6Vk2un/F5BcBrxO70owJ9Z1Y2+loZmbh1MoAmoLGjA/SUSHeUtid3fYmBaog== - dependencies: - web3-bzz "1.10.2" - web3-core "1.10.2" - web3-eth "1.10.2" - web3-eth-personal "1.10.2" - web3-net "1.10.2" - web3-shh "1.10.2" - web3-utils "1.10.2" - webidl-conversions@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== websocket@^1.0.32: version "1.0.34" - resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" + resolved "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz" integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== dependencies: bufferutil "^4.0.1" @@ -9620,12 +10037,12 @@ websocket@^1.0.32: whatwg-fetch@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" + resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz" integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== whatwg-url@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" @@ -9633,7 +10050,7 @@ whatwg-url@^5.0.0: which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -9644,17 +10061,17 @@ which-boxed-primitive@^1.0.2: which-module@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + resolved "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz" integrity sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ== which-module@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== which-typed-array@^1.1.11, which-typed-array@^1.1.2: version "1.1.11" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz" integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== dependencies: available-typed-arrays "^1.0.5" @@ -9663,45 +10080,59 @@ which-typed-array@^1.1.11, which-typed-array@^1.1.2: gopd "^1.0.1" has-tostringtag "^1.0.0" -which@1.3.1, which@^1.1.1, which@^1.3.1: +which@^1.1.1: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" which@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" +which@1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + wide-align@1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: string-width "^1.0.2 || 2" window-size@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" + resolved "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz" integrity sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw== word-wrap@~1.2.3: version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== wordwrap@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== wordwrapjs@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f" + resolved "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz" integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA== dependencies: reduce-flatten "^2.0.0" @@ -9709,12 +10140,12 @@ wordwrapjs@^4.0.0: workerpool@6.2.1: version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz" integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== wrap-ansi@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz" integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw== dependencies: string-width "^1.0.1" @@ -9722,7 +10153,7 @@ wrap-ansi@^2.0.0: wrap-ansi@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== dependencies: ansi-styles "^3.2.0" @@ -9731,7 +10162,7 @@ wrap-ansi@^5.1.0: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -9740,17 +10171,12 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@7.4.6: - version "7.4.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== - ws@^3.0.0: version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + resolved "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz" integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== dependencies: async-limiter "~1.0.0" @@ -9759,26 +10185,26 @@ ws@^3.0.0: ws@^5.1.1: version "5.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d" + resolved "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz" integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== dependencies: async-limiter "~1.0.0" -ws@^7.4.6: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== +ws@^7.4.6, ws@7.4.6: + version "7.4.6" + resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== xhr-request-promise@^0.1.2: version "0.1.3" - resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" + resolved "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz" integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== dependencies: xhr-request "^1.1.0" xhr-request@^1.0.1, xhr-request@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" + resolved "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz" integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== dependencies: buffer-to-arraybuffer "^0.0.5" @@ -9791,7 +10217,7 @@ xhr-request@^1.0.1, xhr-request@^1.1.0: xhr@^2.0.4, xhr@^2.2.0, xhr@^2.3.3: version "2.6.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" + resolved "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz" integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== dependencies: global "~4.4.0" @@ -9801,80 +10227,75 @@ xhr@^2.0.4, xhr@^2.2.0, xhr@^2.3.3: xmlhttprequest@1.8.0: version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + resolved "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz" integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0: version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== xtend@~2.1.1: version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + resolved "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz" integrity sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ== dependencies: object-keys "~0.4.0" y18n@^3.2.1: version "3.2.2" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" + resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz" integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== y18n@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yaeti@^0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" + resolved "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz" integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@13.1.2, yargs-parser@^13.1.2: +yargs-parser@^13.1.2, yargs-parser@13.1.2: version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - yargs-parser@^2.4.1: version "2.4.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz" integrity sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA== dependencies: camelcase "^3.0.0" lodash.assign "^4.0.6" -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-parser@^20.2.2, yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== yargs-unparser@1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz" integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== dependencies: flat "^4.1.0" @@ -9883,7 +10304,7 @@ yargs-unparser@1.6.0: yargs-unparser@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== dependencies: camelcase "^6.0.0" @@ -9891,9 +10312,9 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@13.3.2, yargs@^13.3.0: +yargs@^13.3.0, yargs@13.3.2: version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== dependencies: cliui "^5.0.0" @@ -9907,22 +10328,9 @@ yargs@13.3.2, yargs@^13.3.0: y18n "^4.0.0" yargs-parser "^13.1.2" -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yargs@^4.7.1: version "4.8.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" + resolved "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz" integrity sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA== dependencies: cliui "^3.2.0" @@ -9940,12 +10348,25 @@ yargs@^4.7.1: y18n "^3.2.1" yargs-parser "^2.4.1" +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yn@3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 02f8980ea984361fddb1d7a0b7c8d24d3b64987f Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 11 Jan 2024 14:27:29 +1000 Subject: [PATCH 044/100] Added more tests --- contracts/random/RandomSeedProvider.sol | 4 ++++ test/random/README.md | 4 ++-- test/random/RandomSeedProvider.t.sol | 17 +++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index bf3220e8..9fd220ee 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -18,6 +18,8 @@ import {IOffchainRandomSource} from "./IOffchainRandomSource.sol"; contract RandomSeedProvider is AccessControlEnumerableUpgradeable { // The random seed value is not yet available. error WaitForRandom(); + // An error occurred calling an off-chain random provider. + error OffchainRandomSourceError(bytes _error); // The offchain random source has been updated. event OffchainRandomSourceSet(address _offchainRandomSource, uint256 _offchainRequestRateLimit); @@ -161,6 +163,8 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { return randomOutput[_randomFulfillmentIndex]; } else { + // If random source is not the address of a valid contract this will likely revert + // with no revert information returned. return IOffchainRandomSource(randomSource).getOffchainRandom(_randomFulfillmentIndex); } } diff --git a/test/random/README.md b/test/random/README.md index 4d20e247..1cd75964 100644 --- a/test/random/README.md +++ b/test/random/README.md @@ -12,8 +12,8 @@ Initialize testing: | testReinit | Calling initialise a second time fails. | No | Yes | | testGetRandomSeedInitTraditional | getRandomSeed(), initial value, method TRADITIONAL | Yes | Yes | | testGetRandomSeedInitRandao | getRandomSeed(), initial value, method RANDAO | Yes | Yes | -| testGetRandomSeedNotGenTraditional | getRandomSeed(), when value not generated | No | No | -| testGetRandomSeedNotGenRandao | getRandomSeed(), when value not generated | No | No | +| testGetRandomSeedNotGenTraditional | getRandomSeed(), when value not generated | No | Yes | +| testGetRandomSeedNotGenRandao | getRandomSeed(), when value not generated | No | Yes | | testGetRandomSeedNoOffchainSource | getRandomSeed(), when no offchain source configured | No | No | Control functions tests: diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index b0c1276a..d6573ec2 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -36,6 +36,8 @@ contract MockOffchainSource is IOffchainRandomSource { } contract UninitializedRandomSeedProviderTest is Test { + error WaitForRandom(); + address public constant TRADITIONAL = address(0); address public constant RANDAO = address(1); @@ -84,4 +86,19 @@ contract UninitializedRandomSeedProviderTest is Test { assertEq(seed, expectedInitialSeed, "initial seed"); } + function testGetRandomSeedNotGenTraditional() public { + vm.expectRevert(abi.encodeWithSelector(WaitForRandom.selector)); + randomSeedProvider.getRandomSeed(2, TRADITIONAL); + } + + function testGetRandomSeedNotGenRandao() public { + vm.expectRevert(abi.encodeWithSelector(WaitForRandom.selector)); + randomSeedProvider.getRandomSeed(2, RANDAO); + } + + function testGetRandomSeedNoOffchainSource() public { + vm.expectRevert(); + randomSeedProvider.getRandomSeed(0, address(1000)); + } + } From b0b8de35e771659237bb9bcce17e1adf8387f6ce Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 11 Jan 2024 16:46:22 +1000 Subject: [PATCH 045/100] Add more tests --- contracts/random/RandomSeedProvider.sol | 130 ++++++++++-------------- test/random/README.md | 5 +- test/random/RandomSeedProvider.t.sol | 72 +++++++++++-- 3 files changed, 116 insertions(+), 91 deletions(-) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 9fd220ee..bdd191c2 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -18,25 +18,18 @@ import {IOffchainRandomSource} from "./IOffchainRandomSource.sol"; contract RandomSeedProvider is AccessControlEnumerableUpgradeable { // The random seed value is not yet available. error WaitForRandom(); - // An error occurred calling an off-chain random provider. - error OffchainRandomSourceError(bytes _error); // The offchain random source has been updated. - event OffchainRandomSourceSet(address _offchainRandomSource, uint256 _offchainRequestRateLimit); + event OffchainRandomSourceSet(address _offchainRandomSource); // Indicates that new random values will be generated using the RanDAO source. event RanDaoEnabled(); - // Indicates that new random values will be generated using the traditional on-chain source. - event TraditionalEnabled(); - // Admin role that can enable RanDAO and offchain random sources. bytes32 public constant RANDOM_ADMIN_ROLE = keccak256("RANDOM_ADMIN_ROLE"); - // Indicates: Generate new random numbers using the traditional on-chain methodology. - address public constant TRADITIONAL = address(0); - // Indicates: Generate new random numbers using the RanDAO methodology. - address public constant RANDAO = address(1); + // Indicates: Generate new random numbers using on-chain methodology. + address public constant ONCHAIN = address(0); // When random seeds are requested, a request id is returned. The id // relates to a certain future random seed. This map holds all of the @@ -49,7 +42,6 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { // The block number in which the last seed value was generated. uint256 public lastBlockRandomGenerated; - uint256 public offchainRequestRateLimit; uint256 public prevOffchainRandomRequest; uint256 public lastBlockOffchainRequest; @@ -59,7 +51,11 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { // @dev to be switched without stopping in-flight random values from being retrieved. address public randomSource; - // TODO add functions to modify this. + bool public ranDaoAvailable; + + // Indicates an address is allow listed for the offchain random provider. + // Having an allow list prevents spammers from requesting one random number per block, + // thus incurring cost on Immutable for no benefit. mapping (address => bool) public approvedForOffchainRandom; @@ -68,8 +64,9 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * @param _roleAdmin is the account that can add and remove addresses that have * RANDOM_ADMIN_ROLE privilege. * @param _randomAdmin is the account that has RANDOM_ADMIN_ROLE privilege. + * @param _ranDaoAvailable indicates if the chain supports the PRERANDAO opcode. */ - function initialize(address _roleAdmin, address _randomAdmin) public virtual initializer { + function initialize(address _roleAdmin, address _randomAdmin, bool _ranDaoAvailable) public virtual initializer { _grantRole(DEFAULT_ADMIN_ROLE, _roleAdmin); _grantRole(RANDOM_ADMIN_ROLE, _randomAdmin); @@ -80,7 +77,8 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { nextRandomIndex = 1; lastBlockRandomGenerated = block.number; - randomSource = TRADITIONAL; + randomSource = ONCHAIN; + ranDaoAvailable = _ranDaoAvailable; } /** @@ -88,27 +86,26 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * @dev Must have RANDOM_ROLE. * @param _offchainRandomSource Address of contract that is an offchain random source. */ - function setOffchainRandomSource(address _offchainRandomSource, uint256 _offchainRequestRateLimit) external onlyRole(RANDOM_ADMIN_ROLE) { + function setOffchainRandomSource(address _offchainRandomSource) external onlyRole(RANDOM_ADMIN_ROLE) { randomSource = _offchainRandomSource; - offchainRequestRateLimit = _offchainRequestRateLimit; - emit OffchainRandomSourceSet(_offchainRandomSource, _offchainRequestRateLimit); + emit OffchainRandomSourceSet(_offchainRandomSource); } /** - * @notice Switch to the RanDAO source. + * @notice Call this when the blockchain supports the PREVRANDAO opcode. */ - function enableRanDao() external onlyRole(RANDOM_ADMIN_ROLE) { - randomSource = RANDAO; + function setRanDaoAvailable() external onlyRole(RANDOM_ADMIN_ROLE) { + ranDaoAvailable = true; emit RanDaoEnabled(); } - /** - * @notice Switch to the traditional on-chain random source. - */ - function enableTraditional() external onlyRole(RANDOM_ADMIN_ROLE) { - randomSource = TRADITIONAL; - emit TraditionalEnabled(); + function addOffchainRandomConsumer(address _consumer) external onlyRole(RANDOM_ADMIN_ROLE) { + approvedForOffchainRandom[_consumer] = true; + } + + function removeOffchainRandomConsumer(address _consumer) external onlyRole(RANDOM_ADMIN_ROLE) { + approvedForOffchainRandom[_consumer] = false; } @@ -120,21 +117,19 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * @return _randomFulfillmentIndex The index for the game contract to present to fetch the next random value. */ function requestRandomSeed() external returns(uint256 _randomFulfillmentIndex, address _randomSource) { - if (randomSource == TRADITIONAL || randomSource == RANDAO || !approvedForOffchainRandom[msg.sender]) { + if (randomSource == ONCHAIN || !approvedForOffchainRandom[msg.sender]) { // Generate a value for this block, just in case there are historical requests // to be fulfilled in transactions later in this block. - _generateNextRandom(); + _generateNextRandomOnChain(); // Indicate that a value based on the next block will be fine. _randomFulfillmentIndex = nextRandomIndex + 1; + + _randomSource = ONCHAIN; } else { - // Limit how often offchain random numbers are requested. If offchainRequestRateLimit is 1, then a - // maximum of one request per block is generated. If it 2, then a maximum of one request every two - // blocks is generated. - uint256 offchainRequestRateLimitCached = offchainRequestRateLimit; - uint256 blockNumberRateLimited = (block.number / offchainRequestRateLimitCached) * offchainRequestRateLimitCached; - if (lastBlockOffchainRequest == blockNumberRateLimited) { + // Limit how often offchain random numbers are requested to a maximum of once per block. + if (lastBlockOffchainRequest == block.number) { _randomFulfillmentIndex = prevOffchainRandomRequest; } else { @@ -142,8 +137,8 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { prevOffchainRandomRequest = _randomFulfillmentIndex; lastBlockOffchainRequest = block.number; } + _randomSource = randomSource; } - _randomSource = randomSource; } @@ -155,15 +150,15 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * @return _randomSeed The value from with random values can be derived. */ function getRandomSeed(uint256 _randomFulfillmentIndex, address _randomSource) external returns (bytes32 _randomSeed) { - if (_randomSource == TRADITIONAL || _randomSource == RANDAO) { - _generateNextRandom(); + if (_randomSource == ONCHAIN) { + _generateNextRandomOnChain(); if (_randomFulfillmentIndex > nextRandomIndex) { revert WaitForRandom(); } return randomOutput[_randomFulfillmentIndex]; } else { - // If random source is not the address of a valid contract this will likely revert + // If random source is not the address of a valid contract this will revert // with no revert information returned. return IOffchainRandomSource(randomSource).getOffchainRandom(_randomFulfillmentIndex); } @@ -174,7 +169,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * @param _randomFulfillmentIndex Index when random seed will be ready. */ function isRandomSeedReady(uint256 _randomFulfillmentIndex, address _randomSource) external view returns (bool) { - if (_randomSource == TRADITIONAL || _randomSource == RANDAO) { + if (_randomSource == ONCHAIN) { if (lastBlockRandomGenerated == block.number) { return _randomFulfillmentIndex <= nextRandomIndex; } @@ -191,41 +186,14 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { /** * @notice Generate a random value using on-chain methodologies. */ - function _generateNextRandom() private { - bytes32 prevRandomOutput = randomOutput[nextRandomIndex - 1]; - bytes32 newRandomOutput; - - if (randomSource == TRADITIONAL) { - // Random values for the TRADITIONAL methodology can only be generated once per block. - if (lastBlockRandomGenerated == block.number) { - return; - } - - // Block hash will be different for each block and ---- easy ---- difficult for game players - // to guess. The block producer could manipulate the block hash by crafting a - // transaction that included a number that the block producer controls. A - // malicious block producer could produce many candidate blocks, in an attempt - // to produce a specific value. - - // TODO this will crash - can't get blockhash of this block. - bytes32 blockHash = blockhash(block.number); - - // Timestamp when a block is produced in milli-seconds will be different for each - // block. Game players could estimate the possible values for the timestamp. - // The block producer could manipulate the timestamp by changing the time recorded - // as when the block was produced. The block will be deemed invalid if the value is - // too far from the expected block time. - // slither-disable-next-line timestamp - uint256 timestamp = block.timestamp; - - newRandomOutput = keccak256(abi.encodePacked(prevRandomOutput, blockHash, timestamp)); + function _generateNextRandomOnChain() private { + // Onchain random values can only be generated once per block. + if (lastBlockRandomGenerated == block.number) { + return; } - else if (randomSource == RANDAO) { - // Random values for the RANDAO methodology can only be generated once per block. - if (lastBlockRandomGenerated == block.number) { - return; - } + uint256 entropy; + if (ranDaoAvailable) { // PrevRanDAO (previously known as DIFFICULTY) is the output of the RanDAO function // used as a part of consensus. The value posted is the value revealed in the previous // block, not in this block. In this way, all parties know the value prior to it being @@ -235,16 +203,22 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { // not produce a block. This limits the block producer's influence to one of two // values. // - // Prior to the BFT fork (expected in the first half of 2024), this value will - // be a predictable value related to the block number. - uint256 prevRanDAO = block.prevrandao; - - newRandomOutput = keccak256(abi.encodePacked(prevRandomOutput, prevRanDAO)); + // Prior to the BFT fork (expected in 2024), this value will be a predictable value + // related to the block number. + entropy = block.prevrandao; } else { - // Nothing to do here. + // Block hash will be different for each block and difficult for game players + // to guess. However, game players can observe blocks as they are produced. + // The block producer could manipulate the block hash by crafting a + // transaction that included a number that the block producer controls. A + // malicious block producer could produce many candidate blocks, in an attempt + // to produce a specific value. + entropy = uint256(blockhash(block.number - 1)); } + bytes32 prevRandomOutput = randomOutput[nextRandomIndex - 1]; + bytes32 newRandomOutput = keccak256(abi.encodePacked(prevRandomOutput, entropy)); randomOutput[nextRandomIndex++] = newRandomOutput; lastBlockRandomGenerated = block.number; } diff --git a/test/random/README.md b/test/random/README.md index 1cd75964..adefa939 100644 --- a/test/random/README.md +++ b/test/random/README.md @@ -33,8 +33,9 @@ Operational functions tests: | Test name |Description | Happy Case | Implemented | |---------------------------------| --------------------------------------------------|------------|-------------| -| testTradNextBlock | Check request id is for next block | Yes | No | -| testRanDaoNextBlock | Check request id is for next block | Yes | No | +| testTradNextBlock | Check basic request flow | Yes | Yes | +| testRanDaoNextBlock | Check basic request flow | Yes | No | +| testOffchainNextBlock | Check basic request flow | Yes | No | | testTradTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | No | | testRanDaoTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | No | | testOffchainTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | No | diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index d6573ec2..07673884 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -10,7 +10,7 @@ import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.so contract MockOffchainSource is IOffchainRandomSource { - uint256 public nextIndex; + uint256 public nextIndex = 1000; bool public isReady; function setIsReady(bool _ready) external { @@ -38,12 +38,14 @@ contract MockOffchainSource is IOffchainRandomSource { contract UninitializedRandomSeedProviderTest is Test { error WaitForRandom(); - address public constant TRADITIONAL = address(0); - address public constant RANDAO = address(1); + address public constant ONCHAIN = address(0); TransparentUpgradeableProxy public proxy; RandomSeedProvider public impl; RandomSeedProvider public randomSeedProvider; + TransparentUpgradeableProxy public proxyRanDao; + RandomSeedProvider public randomSeedProviderRanDao; + address public proxyAdmin; address public roleAdmin; @@ -55,50 +57,98 @@ contract UninitializedRandomSeedProviderTest is Test { randomAdmin = makeAddr("randomAdmin"); impl = new RandomSeedProvider(); proxy = new TransparentUpgradeableProxy(address(impl), proxyAdmin, - abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin)); + abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, false)); randomSeedProvider = RandomSeedProvider(address(proxy)); + + proxyRanDao = new TransparentUpgradeableProxy(address(impl), proxyAdmin, + abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, true)); + randomSeedProviderRanDao = RandomSeedProvider(address(proxyRanDao)); } function testInit() public { assertEq(randomSeedProvider.nextRandomIndex(), 1, "nextRandomIndex"); assertEq(randomSeedProvider.lastBlockRandomGenerated(), block.number, "lastBlockRandomGenerated"); - assertEq(randomSeedProvider.offchainRequestRateLimit(), 0, "offchainRequestRateLimit"); assertEq(randomSeedProvider.prevOffchainRandomRequest(), 0, "prevOffchainRandomRequest"); assertEq(randomSeedProvider.lastBlockOffchainRequest(), 0, "lastBlockOffchainRequest"); - assertEq(randomSeedProvider.randomSource(), TRADITIONAL, "lastBlockOffchainRequest"); + assertEq(randomSeedProvider.randomSource(), ONCHAIN, "randomSource"); } function testReinit() public { vm.expectRevert(); - randomSeedProvider.initialize(roleAdmin, randomAdmin); + randomSeedProvider.initialize(roleAdmin, randomAdmin, true); } function testGetRandomSeedInitTraditional() public { - bytes32 seed = randomSeedProvider.getRandomSeed(0, TRADITIONAL); + bytes32 seed = randomSeedProvider.getRandomSeed(0, ONCHAIN); bytes32 expectedInitialSeed = keccak256(abi.encodePacked(block.chainid, block.number)); assertEq(seed, expectedInitialSeed, "initial seed"); } function testGetRandomSeedInitRandao() public { - bytes32 seed = randomSeedProvider.getRandomSeed(0, RANDAO); + bytes32 seed = randomSeedProviderRanDao.getRandomSeed(0, ONCHAIN); bytes32 expectedInitialSeed = keccak256(abi.encodePacked(block.chainid, block.number)); assertEq(seed, expectedInitialSeed, "initial seed"); } function testGetRandomSeedNotGenTraditional() public { vm.expectRevert(abi.encodeWithSelector(WaitForRandom.selector)); - randomSeedProvider.getRandomSeed(2, TRADITIONAL); + randomSeedProvider.getRandomSeed(2, ONCHAIN); } function testGetRandomSeedNotGenRandao() public { vm.expectRevert(abi.encodeWithSelector(WaitForRandom.selector)); - randomSeedProvider.getRandomSeed(2, RANDAO); + randomSeedProviderRanDao.getRandomSeed(2, ONCHAIN); } function testGetRandomSeedNoOffchainSource() public { vm.expectRevert(); randomSeedProvider.getRandomSeed(0, address(1000)); } +} + +contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTest { + MockOffchainSource public offchainSource = new MockOffchainSource(); + + + function testTradNextBlock () public { + (uint256 fulfillmentIndex, address source) = randomSeedProvider.requestRandomSeed(); + assertEq(source, ONCHAIN, "source"); + assertEq(fulfillmentIndex, 2, "index"); + + bool available = randomSeedProvider.isRandomSeedReady(fulfillmentIndex, source); + assertFalse(available, "Should not be ready yet"); + + vm.roll(block.number + 1); + + available = randomSeedProvider.isRandomSeedReady(fulfillmentIndex, source); + assertTrue(available, "Should be ready"); + + randomSeedProvider.getRandomSeed(fulfillmentIndex, source); + } + + function testOffchainNextBlock () public { + vm.prank(randomAdmin); + randomSeedProvider.setOffchainRandomSource(address(offchainSource)); + + address aConsumer = makeAddr("aConsumer"); + vm.prank(randomAdmin); + randomSeedProvider.addOffchainRandomConsumer(aConsumer); + + vm.prank(aConsumer); + (uint256 fulfillmentIndex, address source) = randomSeedProvider.requestRandomSeed(); + assertEq(source, address(offchainSource), "source"); + assertEq(fulfillmentIndex, 1000, "index"); + + bool available = randomSeedProvider.isRandomSeedReady(fulfillmentIndex, source); + assertFalse(available, "Should not be ready yet"); + + offchainSource.setIsReady(true); + + available = randomSeedProvider.isRandomSeedReady(fulfillmentIndex, source); + assertTrue(available, "Should be ready"); + + randomSeedProvider.getRandomSeed(fulfillmentIndex, source); + } } From fbab87412d3bdbb1158926090a4ee2ffb974f643 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 12 Jan 2024 13:20:50 +1000 Subject: [PATCH 046/100] Add more tests --- contracts/random/RandomSeedProvider.sol | 13 ++-- test/random/MockGame.sol | 25 +++++++ test/random/MockOffchainSource.sol | 31 ++++++++ test/random/RandomSeedProvider.t.sol | 72 +++++++++++-------- test/random/RandomValues.t.sol | 94 +++++++++++++++++++++++++ 5 files changed, 201 insertions(+), 34 deletions(-) create mode 100644 test/random/MockGame.sol create mode 100644 test/random/MockOffchainSource.sol create mode 100644 test/random/RandomValues.t.sol diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index bdd191c2..19a0f953 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -118,12 +118,13 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { */ function requestRandomSeed() external returns(uint256 _randomFulfillmentIndex, address _randomSource) { if (randomSource == ONCHAIN || !approvedForOffchainRandom[msg.sender]) { - // Generate a value for this block, just in case there are historical requests - // to be fulfilled in transactions later in this block. + // Generate a value for this block if one has not been generated yet. This + // is required because there may have been calls to requestRandomSeed + // in previous blocks that are waiting for a random number to be produced. _generateNextRandomOnChain(); // Indicate that a value based on the next block will be fine. - _randomFulfillmentIndex = nextRandomIndex + 1; + _randomFulfillmentIndex = nextRandomIndex; _randomSource = ONCHAIN; } @@ -152,7 +153,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { function getRandomSeed(uint256 _randomFulfillmentIndex, address _randomSource) external returns (bytes32 _randomSeed) { if (_randomSource == ONCHAIN) { _generateNextRandomOnChain(); - if (_randomFulfillmentIndex > nextRandomIndex) { + if (_randomFulfillmentIndex >= nextRandomIndex) { revert WaitForRandom(); } return randomOutput[_randomFulfillmentIndex]; @@ -171,10 +172,10 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { function isRandomSeedReady(uint256 _randomFulfillmentIndex, address _randomSource) external view returns (bool) { if (_randomSource == ONCHAIN) { if (lastBlockRandomGenerated == block.number) { - return _randomFulfillmentIndex <= nextRandomIndex; + return _randomFulfillmentIndex < nextRandomIndex; } else { - return _randomFulfillmentIndex <= nextRandomIndex+1; + return _randomFulfillmentIndex < nextRandomIndex+1; } } else { diff --git a/test/random/MockGame.sol b/test/random/MockGame.sol new file mode 100644 index 00000000..f5c0c8d0 --- /dev/null +++ b/test/random/MockGame.sol @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.19; + +import {RandomValues} from "contracts/random/RandomValues.sol"; + +contract MockGame is RandomValues { + constructor(address _randomSeedProvider) RandomValues(_randomSeedProvider) { + } + + function requestRandomValueCreation() external returns (uint256 _randomRequestId) { + return _requestRandomValueCreation(); + } + + function fetchRandom(uint256 _randomRequestId) external returns(bytes32 _randomValue) { + return _fetchRandom(_randomRequestId); + } + + function fetchRandomValues(uint256 _randomRequestId, uint256 _size) external returns(bytes32[] memory _randomValues) { + return _fetchRandomValues(_randomRequestId, _size); + } + + function isRandomValueReady(uint256 _randomRequestId) external view returns(bool) { + return _isRandomValueReady(_randomRequestId); + } +} diff --git a/test/random/MockOffchainSource.sol b/test/random/MockOffchainSource.sol new file mode 100644 index 00000000..03dc320c --- /dev/null +++ b/test/random/MockOffchainSource.sol @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.19; + +import {IOffchainRandomSource} from "contracts/random/IOffchainRandomSource.sol"; + + +contract MockOffchainSource is IOffchainRandomSource { + uint256 public nextIndex = 1000; + bool public isReady; + + function setIsReady(bool _ready) external { + isReady = _ready; + } + + function requestOffchainRandom() external override(IOffchainRandomSource) returns(uint256 _fulfillmentIndex) { + return nextIndex++; + } + + function getOffchainRandom(uint256 _fulfillmentIndex) external view override(IOffchainRandomSource) returns(bytes32 _randomValue) { + if (!isReady) { + revert WaitForRandom(); + } + return keccak256(abi.encodePacked(_fulfillmentIndex)); + } + + function isOffchainRandomReady(uint256 /* _fulfillmentIndex */) external view returns(bool) { + return isReady; + } + + +} diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index 07673884..ee555143 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -3,37 +3,13 @@ pragma solidity 0.8.19; import "forge-std/Test.sol"; +import {MockOffchainSource} from "./MockOffchainSource.sol"; import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; import {IOffchainRandomSource} from "contracts/random/IOffchainRandomSource.sol"; import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; -contract MockOffchainSource is IOffchainRandomSource { - uint256 public nextIndex = 1000; - bool public isReady; - - function setIsReady(bool _ready) external { - isReady = _ready; - } - - function requestOffchainRandom() external override(IOffchainRandomSource) returns(uint256 _fulfillmentIndex) { - return nextIndex++; - } - - function getOffchainRandom(uint256 _fulfillmentIndex) external view override(IOffchainRandomSource) returns(bytes32 _randomValue) { - if (!isReady) { - revert WaitForRandom(); - } - return keccak256(abi.encodePacked(_fulfillmentIndex)); - } - - function isOffchainRandomReady(uint256 /* _fulfillmentIndex */) external view returns(bool) { - return isReady; - } - - -} contract UninitializedRandomSeedProviderTest is Test { error WaitForRandom(); @@ -63,11 +39,15 @@ contract UninitializedRandomSeedProviderTest is Test { proxyRanDao = new TransparentUpgradeableProxy(address(impl), proxyAdmin, abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, true)); randomSeedProviderRanDao = RandomSeedProvider(address(proxyRanDao)); + + // Ensure we are on a new block number when we start the tests. In particular, don't + // be on the same block number as when the contracts were deployed. + vm.roll(block.number + 1); } function testInit() public { assertEq(randomSeedProvider.nextRandomIndex(), 1, "nextRandomIndex"); - assertEq(randomSeedProvider.lastBlockRandomGenerated(), block.number, "lastBlockRandomGenerated"); + assertEq(randomSeedProvider.lastBlockRandomGenerated(), block.number - 1, "lastBlockRandomGenerated"); assertEq(randomSeedProvider.prevOffchainRandomRequest(), 0, "prevOffchainRandomRequest"); assertEq(randomSeedProvider.lastBlockOffchainRequest(), 0, "lastBlockOffchainRequest"); assertEq(randomSeedProvider.randomSource(), ONCHAIN, "randomSource"); @@ -81,13 +61,13 @@ contract UninitializedRandomSeedProviderTest is Test { function testGetRandomSeedInitTraditional() public { bytes32 seed = randomSeedProvider.getRandomSeed(0, ONCHAIN); - bytes32 expectedInitialSeed = keccak256(abi.encodePacked(block.chainid, block.number)); + bytes32 expectedInitialSeed = keccak256(abi.encodePacked(block.chainid, block.number - 1)); assertEq(seed, expectedInitialSeed, "initial seed"); } function testGetRandomSeedInitRandao() public { bytes32 seed = randomSeedProviderRanDao.getRandomSeed(0, ONCHAIN); - bytes32 expectedInitialSeed = keccak256(abi.encodePacked(block.chainid, block.number)); + bytes32 expectedInitialSeed = keccak256(abi.encodePacked(block.chainid, block.number - 1)); assertEq(seed, expectedInitialSeed, "initial seed"); } @@ -151,4 +131,40 @@ contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTes randomSeedProvider.getRandomSeed(fulfillmentIndex, source); } + function testMultiRequestSameBlock() public { + (uint256 randomRequestId1, ) = randomSeedProvider.requestRandomSeed(); + (uint256 randomRequestId2, ) = randomSeedProvider.requestRandomSeed(); + (uint256 randomRequestId3, ) = randomSeedProvider.requestRandomSeed(); + assertEq(randomRequestId1, randomRequestId2, "Request id 1 and request id 2"); + assertEq(randomRequestId1, randomRequestId3, "Request id 1 and request id 3"); + } + + + + function testMultiRequestScenario() public { + (uint256 randomRequestId1, address source1) = randomSeedProvider.requestRandomSeed(); + vm.roll(block.number + 1); + + (uint256 randomRequestId2, address source2) = randomSeedProvider.requestRandomSeed(); + bytes32 rand1a = randomSeedProvider.getRandomSeed(randomRequestId1, source1); + assertNotEq(rand1a, bytes32(0), "rand1a: Random Values is zero"); + (uint256 randomRequestId3,) = randomSeedProvider.requestRandomSeed(); + assertNotEq(randomRequestId1, randomRequestId2, "Request id 1 and request id 2"); + assertEq(randomRequestId2, randomRequestId3, "Request id 2 and request id 3"); + + vm.roll(block.number + 1); + bytes32 rand1b = randomSeedProvider.getRandomSeed(randomRequestId1, source1); + assertNotEq(rand1b, bytes32(0), "rand1b: Random Values is zero"); + { + bytes32 rand2 = randomSeedProvider.getRandomSeed(randomRequestId2, source2); + assertNotEq(rand2, bytes32(0), "rand2: Random Values is zero"); + assertNotEq(rand1a, rand2, "rand1a, rand2: Random Values equal"); + } + vm.roll(block.number + 1); + bytes32 rand1c = randomSeedProvider.getRandomSeed(randomRequestId1, source1); + assertNotEq(rand1c, bytes32(0), "rand1c: Random Values is zero"); + + assertEq(rand1a, rand1b, "rand1a, rand1b: Random Values not equal"); + assertEq(rand1a, rand1c, "rand1a, rand1c: Random Values not equal"); + } } diff --git a/test/random/RandomValues.t.sol b/test/random/RandomValues.t.sol new file mode 100644 index 00000000..0369cbcc --- /dev/null +++ b/test/random/RandomValues.t.sol @@ -0,0 +1,94 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.19; + +import "forge-std/Test.sol"; + +import {MockGame} from "./MockGame.sol"; +import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; +import {IOffchainRandomSource} from "contracts/random/IOffchainRandomSource.sol"; +import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; + + + + +contract UninitializedRandomValuesTest is Test { + error WaitForRandom(); + + address public constant ONCHAIN = address(0); + + TransparentUpgradeableProxy public proxy; + RandomSeedProvider public impl; + RandomSeedProvider public randomSeedProvider; + TransparentUpgradeableProxy public proxyRanDao; + RandomSeedProvider public randomSeedProviderRanDao; + + MockGame public game1; + + address public proxyAdmin; + address public roleAdmin; + address public randomAdmin; + + function setUp() public virtual { + proxyAdmin = makeAddr("proxyAdmin"); + roleAdmin = makeAddr("roleAdmin"); + randomAdmin = makeAddr("randomAdmin"); + impl = new RandomSeedProvider(); + proxy = new TransparentUpgradeableProxy(address(impl), proxyAdmin, + abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, false)); + randomSeedProvider = RandomSeedProvider(address(proxy)); + + game1 = new MockGame(address(randomSeedProvider)); + + // Ensure we are on a new block number when we start the tests. In particular, don't + // be on the same block number as when the contracts were deployed. + vm.roll(block.number + 1); + } + + function testInit() public { + assertEq(address(game1.randomSeedProvider()), address(randomSeedProvider), "randomSeedProvider"); + } +} + +contract SingleGameRandomValuesTest is UninitializedRandomValuesTest { + function testFirstValue() public returns (bytes32) { + uint256 randomRequestId = game1.requestRandomValueCreation(); + assertFalse(game1.isRandomValueReady(randomRequestId), "Ready in same block!"); + + vm.roll(block.number + 1); + assertTrue(game1.isRandomValueReady(randomRequestId), "Should be ready by next block!"); + + bytes32 randomValue = game1.fetchRandom(randomRequestId); + assertNotEq(randomValue, bytes32(0), "Random Value zero"); + return randomValue; + } + + function testSecondValue() public { + bytes32 rand1 = testFirstValue(); + bytes32 rand2 = testFirstValue(); + assertNotEq(rand1, rand2, "Random Values equal"); + } + + function testMultiRequestScenario() public { + uint256 randomRequestId1 = game1.requestRandomValueCreation(); + uint256 randomRequestId2 = game1.requestRandomValueCreation(); + uint256 randomRequestId3 = game1.requestRandomValueCreation(); + vm.roll(block.number + 1); + uint256 randomRequestId4 = game1.requestRandomValueCreation(); + bytes32 rand1a = game1.fetchRandom(randomRequestId1); + assertFalse(game1.isRandomValueReady(randomRequestId4), "Ready in same block!"); + vm.roll(block.number + 1); + bytes32 rand1b = game1.fetchRandom(randomRequestId1); + bytes32 rand2 = game1.fetchRandom(randomRequestId2); + bytes32 rand3 = game1.fetchRandom(randomRequestId3); + bytes32 rand4 = game1.fetchRandom(randomRequestId4); + game1.requestRandomValueCreation(); + vm.roll(block.number + 1); + bytes32 rand1c = game1.fetchRandom(randomRequestId1); + + assertNotEq(rand1a, rand2, "rand1a, rand2: Random Values equal"); + assertNotEq(rand1a, rand3, "rand1a, rand3: Random Values equal"); + assertNotEq(rand1a, rand4, "rand1a, rand4: Random Values equal"); + assertEq(rand1a, rand1b, "rand1a, rand1b: Random Values not equal"); + assertEq(rand1a, rand1c, "rand1a, rand1c: Random Values not equal"); + } +} From f87564671ee68d4d19f6342dd4a58657d5a816cd Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 12 Jan 2024 13:47:03 +1000 Subject: [PATCH 047/100] Rename tests --- test/random/README.md | 14 +++++++++----- test/random/RandomSeedProvider.t.sol | 5 +++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/test/random/README.md b/test/random/README.md index adefa939..cfc9673e 100644 --- a/test/random/README.md +++ b/test/random/README.md @@ -33,15 +33,14 @@ Operational functions tests: | Test name |Description | Happy Case | Implemented | |---------------------------------| --------------------------------------------------|------------|-------------| -| testTradNextBlock | Check basic request flow | Yes | Yes | +| testTradNextBlock | Check basic request flow | Yes | Yes | | testRanDaoNextBlock | Check basic request flow | Yes | No | | testOffchainNextBlock | Check basic request flow | Yes | No | -| testTradTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | No | +| testTradTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | Yes | | testRanDaoTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | No | | testOffchainTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | No | -| testTradDelayedFulfillment | Request then wait several blocks before fulfillment | Yes | No | -| testRanDaoDelayedFulfillment | Request then wait several blocks before fulfillment | Yes | No | -| testOffchainRateLimit | Check can limit requests to once every N blocks | Yes | No | +| testTradDelayedFulfillment | Request then wait several blocks before fulfillment | Yes | Yes | +| testRanDaoDelayedFulfillment | Request then wait several blocks before fulfillment | Yes | No | Scenario: Generate some random numbers, switch random generation methodology, generate some more numbers, check that the numbers generated earlier are still available: @@ -82,3 +81,8 @@ Operational functions tests: | Test name |Description | Happy Case | Implemented | |---------------------------------| --------------------------------------------------|------------|-------------| | TODO | TODO | Yes | No | + + +## RandomValues.sol + +TODO diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index ee555143..fd55190d 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -131,7 +131,7 @@ contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTes randomSeedProvider.getRandomSeed(fulfillmentIndex, source); } - function testMultiRequestSameBlock() public { + function testTradTwoInOneBlock() public { (uint256 randomRequestId1, ) = randomSeedProvider.requestRandomSeed(); (uint256 randomRequestId2, ) = randomSeedProvider.requestRandomSeed(); (uint256 randomRequestId3, ) = randomSeedProvider.requestRandomSeed(); @@ -141,7 +141,7 @@ contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTes - function testMultiRequestScenario() public { + function testTradDelayedFulfillment() public { (uint256 randomRequestId1, address source1) = randomSeedProvider.requestRandomSeed(); vm.roll(block.number + 1); @@ -167,4 +167,5 @@ contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTes assertEq(rand1a, rand1b, "rand1a, rand1b: Random Values not equal"); assertEq(rand1a, rand1c, "rand1a, rand1c: Random Values not equal"); } + } From e963736f6f5b58164bebfd40a282022d66d56f55 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 12 Jan 2024 13:52:52 +1000 Subject: [PATCH 048/100] Improve documentation --- contracts/random/README.md | 2 +- contracts/random/RandomSeedProvider.sol | 1 + contracts/random/offchainsources/ChainlinkSourceAdaptor.sol | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/contracts/random/README.md b/contracts/random/README.md index 0ff5297c..fbb4da94 100644 --- a/contracts/random/README.md +++ b/contracts/random/README.md @@ -1,6 +1,6 @@ # Random Number Generation -This directory contains contracts that provide on-chain random number generation. +This directory contains contracts that provide random number generation. ## Architecture diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 19a0f953..2541a37f 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -115,6 +115,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * the one game. Games must personalise this value to their own game, the the particular game player, * and to the game player's request. * @return _randomFulfillmentIndex The index for the game contract to present to fetch the next random value. + * @return _randomSource Indicates that an on-chain source was used, or is the address of an offchain source. */ function requestRandomSeed() external returns(uint256 _randomFulfillmentIndex, address _randomSource) { if (randomSource == ONCHAIN || !approvedForOffchainRandom[msg.sender]) { diff --git a/contracts/random/offchainsources/ChainlinkSourceAdaptor.sol b/contracts/random/offchainsources/ChainlinkSourceAdaptor.sol index 67aa8acc..11285244 100644 --- a/contracts/random/offchainsources/ChainlinkSourceAdaptor.sol +++ b/contracts/random/offchainsources/ChainlinkSourceAdaptor.sol @@ -10,7 +10,8 @@ import "../IOffchainRandomSource.sol"; /** * @notice Fetch random numbers from the Chainlink Verifiable Random * @notice Function (VRF). - * @dev This contract is NOT upgradeable. + * @dev This contract is NOT upgradeable. If there is an issue with this code, deploy a new + * version of the code and have the random seed provider point to the new version. */ contract ChainlinkSourceAdaptor is VRFConsumerBaseV2, AccessControlEnumerable, IOffchainRandomSource { From 26b499155d026af707746e83bc1bad2eea12aac1 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 15 Jan 2024 11:27:38 +1000 Subject: [PATCH 049/100] Clean compile on hardhat and forge. --- contracts/mocks/MockDisguisedEOA.sol | 1 + contracts/mocks/MockEIP1271Wallet.sol | 1 + contracts/mocks/MockFactory.sol | 1 + contracts/mocks/MockMarketplace.sol | 1 + contracts/mocks/MockOnReceive.sol | 1 + contracts/mocks/MockWallet.sol | 1 + contracts/mocks/MockWalletFactory.sol | 1 + .../ChainlinkSourceAdaptor.sol | 4 +- .../VRFCoordinatorV2Interface.sol | 115 + package-lock.json | 29099 +++++++++++----- package.json | 2 + remappings.txt | 4 +- yarn.lock | 3919 ++- 13 files changed, 24934 insertions(+), 8216 deletions(-) create mode 100644 contracts/random/offchainsources/VRFCoordinatorV2Interface.sol diff --git a/contracts/mocks/MockDisguisedEOA.sol b/contracts/mocks/MockDisguisedEOA.sol index 3056b1ba..c9037acc 100644 --- a/contracts/mocks/MockDisguisedEOA.sol +++ b/contracts/mocks/MockDisguisedEOA.sol @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; diff --git a/contracts/mocks/MockEIP1271Wallet.sol b/contracts/mocks/MockEIP1271Wallet.sol index 8e12269d..82745a9c 100644 --- a/contracts/mocks/MockEIP1271Wallet.sol +++ b/contracts/mocks/MockEIP1271Wallet.sol @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; diff --git a/contracts/mocks/MockFactory.sol b/contracts/mocks/MockFactory.sol index 854b2f73..f96f4ebd 100644 --- a/contracts/mocks/MockFactory.sol +++ b/contracts/mocks/MockFactory.sol @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import {Create2} from "@openzeppelin/contracts/utils/Create2.sol"; diff --git a/contracts/mocks/MockMarketplace.sol b/contracts/mocks/MockMarketplace.sol index cf7cb981..a37d7d0e 100644 --- a/contracts/mocks/MockMarketplace.sol +++ b/contracts/mocks/MockMarketplace.sol @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; diff --git a/contracts/mocks/MockOnReceive.sol b/contracts/mocks/MockOnReceive.sol index fc014515..c7973055 100644 --- a/contracts/mocks/MockOnReceive.sol +++ b/contracts/mocks/MockOnReceive.sol @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; diff --git a/contracts/mocks/MockWallet.sol b/contracts/mocks/MockWallet.sol index 5f42c422..c921abf4 100644 --- a/contracts/mocks/MockWallet.sol +++ b/contracts/mocks/MockWallet.sol @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; diff --git a/contracts/mocks/MockWalletFactory.sol b/contracts/mocks/MockWalletFactory.sol index 2871a9ff..9dc7e109 100644 --- a/contracts/mocks/MockWalletFactory.sol +++ b/contracts/mocks/MockWalletFactory.sol @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract MockWalletFactory { diff --git a/contracts/random/offchainsources/ChainlinkSourceAdaptor.sol b/contracts/random/offchainsources/ChainlinkSourceAdaptor.sol index 11285244..815afbf6 100644 --- a/contracts/random/offchainsources/ChainlinkSourceAdaptor.sol +++ b/contracts/random/offchainsources/ChainlinkSourceAdaptor.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.19; import {AccessControlEnumerable} from "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; -import "chainlink/contracts/src/v0.8/vrf/VRFConsumerBaseV2.sol"; -import "chainlink/contracts/src/v0.8/vrf/interfaces/VRFCoordinatorV2Interface.sol"; +import "@chainlink/contracts/src/v0.8/vrf/VRFConsumerBaseV2.sol"; +import "./VRFCoordinatorV2Interface.sol"; import "../IOffchainRandomSource.sol"; /** diff --git a/contracts/random/offchainsources/VRFCoordinatorV2Interface.sol b/contracts/random/offchainsources/VRFCoordinatorV2Interface.sol new file mode 100644 index 00000000..48a6a4bc --- /dev/null +++ b/contracts/random/offchainsources/VRFCoordinatorV2Interface.sol @@ -0,0 +1,115 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +// Code from Chainlink's repo. This file is currently not installed when calling +// npm install @chainlink/contracts + +interface VRFCoordinatorV2Interface { + /** + * @notice Get configuration relevant for making requests + * @return minimumRequestConfirmations global min for request confirmations + * @return maxGasLimit global max for request gas limit + * @return s_provingKeyHashes list of registered key hashes + */ + function getRequestConfig() external view returns (uint16, uint32, bytes32[] memory); + + /** + * @notice Request a set of random words. + * @param keyHash - Corresponds to a particular oracle job which uses + * that key for generating the VRF proof. Different keyHash's have different gas price + * ceilings, so you can select a specific one to bound your maximum per request cost. + * @param subId - The ID of the VRF subscription. Must be funded + * with the minimum subscription balance required for the selected keyHash. + * @param minimumRequestConfirmations - How many blocks you'd like the + * oracle to wait before responding to the request. See SECURITY CONSIDERATIONS + * for why you may want to request more. The acceptable range is + * [minimumRequestBlockConfirmations, 200]. + * @param callbackGasLimit - How much gas you'd like to receive in your + * fulfillRandomWords callback. Note that gasleft() inside fulfillRandomWords + * may be slightly less than this amount because of gas used calling the function + * (argument decoding etc.), so you may need to request slightly more than you expect + * to have inside fulfillRandomWords. The acceptable range is + * [0, maxGasLimit] + * @param numWords - The number of uint256 random values you'd like to receive + * in your fulfillRandomWords callback. Note these numbers are expanded in a + * secure way by the VRFCoordinator from a single random value supplied by the oracle. + * @return requestId - A unique identifier of the request. Can be used to match + * a request to a response in fulfillRandomWords. + */ + function requestRandomWords( + bytes32 keyHash, + uint64 subId, + uint16 minimumRequestConfirmations, + uint32 callbackGasLimit, + uint32 numWords + ) external returns (uint256 requestId); + + /** + * @notice Create a VRF subscription. + * @return subId - A unique subscription id. + * @dev You can manage the consumer set dynamically with addConsumer/removeConsumer. + * @dev Note to fund the subscription, use transferAndCall. For example + * @dev LINKTOKEN.transferAndCall( + * @dev address(COORDINATOR), + * @dev amount, + * @dev abi.encode(subId)); + */ + function createSubscription() external returns (uint64 subId); + + /** + * @notice Get a VRF subscription. + * @param subId - ID of the subscription + * @return balance - LINK balance of the subscription in juels. + * @return reqCount - number of requests for this subscription, determines fee tier. + * @return owner - owner of the subscription. + * @return consumers - list of consumer address which are able to use this subscription. + */ + function getSubscription( + uint64 subId + ) external view returns (uint96 balance, uint64 reqCount, address owner, address[] memory consumers); + + /** + * @notice Request subscription owner transfer. + * @param subId - ID of the subscription + * @param newOwner - proposed new owner of the subscription + */ + function requestSubscriptionOwnerTransfer(uint64 subId, address newOwner) external; + + /** + * @notice Request subscription owner transfer. + * @param subId - ID of the subscription + * @dev will revert if original owner of subId has + * not requested that msg.sender become the new owner. + */ + function acceptSubscriptionOwnerTransfer(uint64 subId) external; + + /** + * @notice Add a consumer to a VRF subscription. + * @param subId - ID of the subscription + * @param consumer - New consumer which can use the subscription + */ + function addConsumer(uint64 subId, address consumer) external; + + /** + * @notice Remove a consumer from a VRF subscription. + * @param subId - ID of the subscription + * @param consumer - Consumer to remove from the subscription + */ + function removeConsumer(uint64 subId, address consumer) external; + + /** + * @notice Cancel a subscription + * @param subId - ID of the subscription + * @param to - Where to send the remaining LINK to + */ + function cancelSubscription(uint64 subId, address to) external; + + /* + * @notice Check to see if there exists a request commitment consumers + * for all consumers and keyhashes for a given sub. + * @param subId - ID of the subscription + * @return true if there exists at least one unfulfilled request for the subscription, false + * otherwise. + */ + function pendingRequestExists(uint64 subId) external view returns (bool); +} diff --git a/package-lock.json b/package-lock.json index 4fc81f61..6eda50a9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,9 @@ "dependencies": { "@chainlink/contracts": "^0.8.0", "@openzeppelin/contracts": "^4.9.3", + "@openzeppelin/contracts-upgradeable": "^4.9.3", "@rari-capital/solmate": "^6.4.0", + "chainlink": "^0.8.2", "openzeppelin-contracts-upgradeable-4.9.3": "npm:@openzeppelin/contracts-upgradeable@^4.9.3", "seaport": "https://github.com/immutable/seaport.git#1.5.0+im.1.3", "solidity-bits": "^0.4.0", @@ -55,713 +57,761 @@ "typescript": "^4.9.5" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, + "node_modules/@0x/assert": { + "version": "3.0.36", + "resolved": "https://registry.npmjs.org/@0x/assert/-/assert-3.0.36.tgz", + "integrity": "sha512-sUtrV5MhixXvWZpATjFqIDtgvvv64duSTuOyPdPJjB+/Lcl5jQhlSNuoN0X3XP0P79Sp+6tuez5MupgFGPA2QQ==", + "dependencies": { + "@0x/json-schemas": "^6.4.6", + "@0x/typescript-typings": "^5.3.2", + "@0x/utils": "^7.0.0", + "@types/node": "12.12.54", + "lodash": "^4.17.21", + "valid-url": "^1.0.9" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.12" } }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "node_modules/@0x/assert/node_modules/@types/node": { + "version": "12.12.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", + "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" + }, + "node_modules/@0x/dev-utils": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@0x/dev-utils/-/dev-utils-5.0.3.tgz", + "integrity": "sha512-V58tT2aiiHNSQtEt2XQWZDsPMsQ4wPDnjZRUaW38W46QasIFfCbcpKmfCsAGJyFxM7t0m0JJJwmYTJwZhCGcoQ==", + "dependencies": { + "@0x/subproviders": "^8.0.1", + "@0x/types": "^3.3.7", + "@0x/typescript-typings": "^5.3.2", + "@0x/utils": "^7.0.0", + "@0x/web3-wrapper": "^8.0.1", + "@types/node": "12.12.54", + "@types/web3-provider-engine": "^14.0.0", + "chai": "^4.0.1", + "chai-as-promised": "^7.1.0", + "chai-bignumber": "^3.0.0", + "dirty-chai": "^2.0.1", + "ethereum-types": "^3.7.1", + "lodash": "^4.17.21", + "web3-provider-engine": "16.0.4" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.12" } }, - "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "node_modules/@0x/dev-utils/node_modules/@0x/subproviders": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@0x/subproviders/-/subproviders-8.0.1.tgz", + "integrity": "sha512-Lax7Msb1Ef9D6Dd7PQ19oPgjl5GIrKje7XsrO7YCfx5A0RM3Hr4nSQIxgg78jwvuulSFxQ5Sr8WiZ2hTHATtQg==", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@0x/assert": "^3.0.36", + "@0x/types": "^3.3.7", + "@0x/typescript-typings": "^5.3.2", + "@0x/utils": "^7.0.0", + "@0x/web3-wrapper": "^8.0.1", + "@ethereumjs/common": "^2.6.3", + "@ethereumjs/tx": "^3.5.1", + "@types/hdkey": "^0.7.0", + "@types/node": "12.12.54", + "@types/web3-provider-engine": "^14.0.0", + "bip39": "2.5.0", + "ethereum-types": "^3.7.1", + "ethereumjs-util": "^7.1.5", + "ganache": "^7.4.0", + "hdkey": "2.1.0", + "json-rpc-error": "2.0.0", + "lodash": "^4.17.21", + "web3-provider-engine": "16.0.4" }, "engines": { - "node": ">=6.9.0" + "node": ">=12.0.0" } }, - "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", - "engines": { - "node": ">=6.9.0" + "node_modules/@0x/dev-utils/node_modules/@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" } }, - "node_modules/@babel/core": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", - "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", - "peer": true, + "node_modules/@0x/dev-utils/node_modules/@ethereumjs/tx": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", + "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.7", - "@babel/parser": "^7.23.6", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" } }, - "node_modules/@babel/core/node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "peer": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" + "node_modules/@0x/dev-utils/node_modules/@types/node": { + "version": "12.12.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", + "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" + }, + "node_modules/@0x/dev-utils/node_modules/bip39": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", + "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", + "dependencies": { + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" } }, - "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", - "peer": true, + "node_modules/@0x/dev-utils/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" }, "engines": { - "node": ">=6.9.0" + "node": ">=10.0.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "peer": true, + "node_modules/@0x/dev-utils/node_modules/hdkey": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", + "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "bs58check": "^2.1.2", + "ripemd160": "^2.0.2", + "safe-buffer": "^5.1.1", + "secp256k1": "^4.0.0" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "node_modules/@0x/dev-utils/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/@0x/dev-utils/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==", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" + "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" } }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", - "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", + "node_modules/@0x/dev-utils/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/@0x/dev-utils/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==", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "safe-buffer": "~5.1.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "peer": true, + "node_modules/@0x/dev-utils/node_modules/web3-provider-engine": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.4.tgz", + "integrity": "sha512-f5WxJ9+LTF+4aJo4tCOXtQ6SDytBtLkhvV+qh/9gImHAuG9sMr6utY0mn/pro1Rx7O3hbztBxvQKjGMdOo8muw==", + "dependencies": { + "@ethereumjs/tx": "^3.3.0", + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "eth-block-tracker": "^4.4.2", + "eth-json-rpc-filters": "^4.2.1", + "eth-json-rpc-infura": "^5.1.0", + "eth-json-rpc-middleware": "^6.0.0", + "eth-rpc-errors": "^3.0.0", + "eth-sig-util": "^1.4.2", + "ethereumjs-block": "^1.2.2", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" + }, "engines": { - "node": ">=6.9.0" + "node": ">=12.0.0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "peer": true, + "node_modules/@0x/dev-utils/node_modules/web3-provider-engine/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/@0x/dev-utils/node_modules/web3-provider-engine/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "peer": true, + "node_modules/@0x/dev-utils/node_modules/ws": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", + "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "async-limiter": "~1.0.0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "node_modules/@0x/json-schemas": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/@0x/json-schemas/-/json-schemas-6.4.6.tgz", + "integrity": "sha512-TaqvhOkmLN/vkcpMUNVFZBTnWP05ZVo9iGAnP1CG/B8l4rvnUbLZvWx8KeDKs62I/5d7jdYISvXyOwP4EwrG4w==", "dependencies": { - "@babel/types": "^7.22.15" + "@0x/typescript-typings": "^5.3.2", + "@types/node": "12.12.54", + "ajv": "^6.12.5", + "lodash.values": "^4.3.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=6.12" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "peer": true, + "node_modules/@0x/json-schemas/node_modules/@types/node": { + "version": "12.12.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", + "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" + }, + "node_modules/@0x/sol-compiler": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/@0x/sol-compiler/-/sol-compiler-4.8.5.tgz", + "integrity": "sha512-hAc3ZjpD+/fgSt/UQaAim8d2fQL3kWpnP5+tSEVf3/xetDDp3BhTOMi+wKnVuYo9FzuTgHx5MFueWM+mojE41A==", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@0x/assert": "^3.0.36", + "@0x/json-schemas": "^6.4.6", + "@0x/sol-resolver": "^3.1.13", + "@0x/types": "^3.3.7", + "@0x/typescript-typings": "^5.3.2", + "@0x/utils": "^7.0.0", + "@0x/web3-wrapper": "^8.0.1", + "@types/node": "12.12.54", + "@types/yargs": "^11.0.0", + "chalk": "^2.3.0", + "chokidar": "^3.0.2", + "ethereum-types": "^3.7.1", + "ethereumjs-util": "^7.1.5", + "lodash": "^4.17.21", + "mkdirp": "^0.5.1", + "pluralize": "^7.0.0", + "require-from-string": "^2.0.1", + "semver": "5.5.0", + "solc": "^0.8", + "source-map-support": "^0.5.0", + "strip-comments": "^2.0.1", + "web3-eth-abi": "^1.0.0-beta.24", + "yargs": "^17.5.1" + }, + "bin": { + "sol-compiler": "bin/sol-compiler.js" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=6.12" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "node_modules/@0x/sol-compiler/node_modules/@types/node": { + "version": "12.12.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", + "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" + }, + "node_modules/@0x/sol-compiler/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "peer": true, + "node_modules/@0x/sol-compiler/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dependencies": { - "@babel/types": "^7.22.5" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "peer": true, + "node_modules/@0x/sol-compiler/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/@0x/sol-compiler/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "dependencies": { - "@babel/types": "^7.22.5" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" }, "engines": { - "node": ">=6.9.0" + "node": ">=10.0.0" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "node_modules/@0x/sol-compiler/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "node_modules/@0x/sol-compiler/node_modules/pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", "engines": { - "node": ">=6.9.0" + "node": ">=4" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "node_modules/@0x/sol-compiler/node_modules/require-from-string": { + "version": "2.0.2", + "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==", "engines": { - "node": ">=6.9.0" + "node": ">=0.10.0" } }, - "node_modules/@babel/helpers": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", - "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", - "peer": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6" - }, - "engines": { - "node": ">=6.9.0" + "node_modules/@0x/sol-compiler/node_modules/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "bin": { + "semver": "bin/semver" } }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "node_modules/@0x/sol-compiler/node_modules/solc": { + "version": "0.8.23", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.23.tgz", + "integrity": "sha512-uqe69kFWfJc3cKdxj+Eg9CdW1CP3PLZDPeyJStQVWL8Q9jjjKD0VuRAKBFR8mrWiq5A7gJqERxJFYJsklrVsfA==", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "n": "^9.2.0", + "semver": "^5.5.0", + "tmp": "0.0.33" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", - "peer": true, "bin": { - "parser": "bin/babel-parser.js" + "solcjs": "solc.js" }, "engines": { - "node": ">=6.0.0" + "node": ">=10.0.0" } }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz", - "integrity": "sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g==", + "node_modules/@0x/sol-compiler/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", - "semver": "^6.3.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/@babel/runtime": { - "version": "7.23.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.1.tgz", - "integrity": "sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==", + "node_modules/@0x/sol-compiler/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "regenerator-runtime": "^0.14.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "peer": true, + "node_modules/@0x/sol-compiler/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/traverse": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", - "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", - "peer": true, + "node_modules/@0x/sol-compiler/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/@0x/sol-resolver": { + "version": "3.1.13", + "resolved": "https://registry.npmjs.org/@0x/sol-resolver/-/sol-resolver-3.1.13.tgz", + "integrity": "sha512-nQHqW7sOsDEH4ejH9nu60sCgFXEW08LM0v+5DimA/R7MizOW4LAG7OoHM+Oq8uPcHbeU0peFEDOW0idBsIzZ6g==", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@0x/types": "^3.3.7", + "@0x/typescript-typings": "^5.3.2", + "@types/node": "12.12.54", + "lodash": "^4.17.21" }, "engines": { - "node": ">=6.9.0" + "node": ">=6.12" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "peer": true, + "node_modules/@0x/sol-resolver/node_modules/@types/node": { + "version": "12.12.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", + "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" + }, + "node_modules/@0x/sol-trace": { + "version": "3.0.49", + "resolved": "https://registry.npmjs.org/@0x/sol-trace/-/sol-trace-3.0.49.tgz", + "integrity": "sha512-mCNbUCX6Oh1Z1e1g4AsD7sSbgMN7IGQyR0w+4xQYApgjwtYOaRPZMiluMXqp9nNHX75LwCfVd7NEIJIUMVQf2A==", + "dependencies": { + "@0x/sol-tracing-utils": "^7.3.5", + "@0x/subproviders": "^8.0.1", + "@0x/typescript-typings": "^5.3.2", + "@types/node": "12.12.54", + "chalk": "^2.3.0", + "ethereum-types": "^3.7.1", + "ethereumjs-util": "^7.1.5", + "lodash": "^4.17.21", + "loglevel": "^1.6.1", + "web3-provider-engine": "16.0.4" + }, "engines": { - "node": ">=4" + "node": ">=6.12" } }, - "node_modules/@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "node_modules/@0x/sol-trace/node_modules/@0x/subproviders": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@0x/subproviders/-/subproviders-8.0.1.tgz", + "integrity": "sha512-Lax7Msb1Ef9D6Dd7PQ19oPgjl5GIrKje7XsrO7YCfx5A0RM3Hr4nSQIxgg78jwvuulSFxQ5Sr8WiZ2hTHATtQg==", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@0x/assert": "^3.0.36", + "@0x/types": "^3.3.7", + "@0x/typescript-typings": "^5.3.2", + "@0x/utils": "^7.0.0", + "@0x/web3-wrapper": "^8.0.1", + "@ethereumjs/common": "^2.6.3", + "@ethereumjs/tx": "^3.5.1", + "@types/hdkey": "^0.7.0", + "@types/node": "12.12.54", + "@types/web3-provider-engine": "^14.0.0", + "bip39": "2.5.0", + "ethereum-types": "^3.7.1", + "ethereumjs-util": "^7.1.5", + "ganache": "^7.4.0", + "hdkey": "2.1.0", + "json-rpc-error": "2.0.0", + "lodash": "^4.17.21", + "web3-provider-engine": "16.0.4" }, "engines": { - "node": ">=6.9.0" + "node": ">=12.0.0" } }, - "node_modules/@chainlink/contracts": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@chainlink/contracts/-/contracts-0.8.0.tgz", - "integrity": "sha512-nUv1Uxw5Mn92wgLs2bgPYmo8hpdQ3s9jB/lcbdU0LmNOVu0hbfmouVnqwRLa28Ll50q6GczUA+eO0ikNIKLZsA==", + "node_modules/@0x/sol-trace/node_modules/@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", "dependencies": { - "@eth-optimism/contracts": "^0.5.21", - "@openzeppelin/contracts": "~4.3.3", - "@openzeppelin/contracts-upgradeable-4.7.3": "npm:@openzeppelin/contracts-upgradeable@v4.7.3", - "@openzeppelin/contracts-v0.7": "npm:@openzeppelin/contracts@v3.4.2" + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" } }, - "node_modules/@chainlink/contracts/node_modules/@openzeppelin/contracts": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.3.tgz", - "integrity": "sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g==" - }, - "node_modules/@chainsafe/as-sha256": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz", - "integrity": "sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==" - }, - "node_modules/@chainsafe/persistent-merkle-tree": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz", - "integrity": "sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==", + "node_modules/@0x/sol-trace/node_modules/@ethereumjs/tx": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", + "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", "dependencies": { - "@chainsafe/as-sha256": "^0.3.1" + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" } }, - "node_modules/@chainsafe/ssz": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.9.4.tgz", - "integrity": "sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==", + "node_modules/@0x/sol-trace/node_modules/@types/node": { + "version": "12.12.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", + "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" + }, + "node_modules/@0x/sol-trace/node_modules/bip39": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", + "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "dependencies": { - "@chainsafe/as-sha256": "^0.3.1", - "@chainsafe/persistent-merkle-tree": "^0.4.2", - "case": "^1.6.3" + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "devOptional": true, + "node_modules/@0x/sol-trace/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" }, "engines": { - "node": ">=12" + "node": ">=10.0.0" } }, - "node_modules/@ensdomains/address-encoder": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz", - "integrity": "sha512-E2d2gP4uxJQnDu2Kfg1tHNspefzbLT8Tyjrm5sEuim32UkU2sm5xL4VXtgc2X33fmPEw9+jUMpGs4veMbf+PYg==", - "dev": true, + "node_modules/@0x/sol-trace/node_modules/hdkey": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", + "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", "dependencies": { - "bech32": "^1.1.3", - "blakejs": "^1.1.0", - "bn.js": "^4.11.8", - "bs58": "^4.0.1", - "crypto-addr-codec": "^0.1.7", - "nano-base32": "^1.0.1", - "ripemd160": "^2.0.2" + "bs58check": "^2.1.2", + "ripemd160": "^2.0.2", + "safe-buffer": "^5.1.1", + "secp256k1": "^4.0.0" } }, - "node_modules/@ensdomains/address-encoder/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "node_modules/@0x/sol-trace/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "node_modules/@ensdomains/ens": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz", - "integrity": "sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw==", - "deprecated": "Please use @ensdomains/ens-contracts", - "dev": true, + "node_modules/@0x/sol-trace/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==", "dependencies": { - "bluebird": "^3.5.2", - "eth-ens-namehash": "^2.0.8", - "solc": "^0.4.20", - "testrpc": "0.0.1", - "web3-utils": "^1.0.0-beta.31" + "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" } }, - "node_modules/@ensdomains/ensjs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@ensdomains/ensjs/-/ensjs-2.1.0.tgz", - "integrity": "sha512-GRbGPT8Z/OJMDuxs75U/jUNEC0tbL0aj7/L/QQznGYKm/tiasp+ndLOaoULy9kKJFC0TBByqfFliEHDgoLhyog==", - "dev": true, + "node_modules/@0x/sol-trace/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/@0x/sol-trace/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==", "dependencies": { - "@babel/runtime": "^7.4.4", - "@ensdomains/address-encoder": "^0.1.7", - "@ensdomains/ens": "0.4.5", - "@ensdomains/resolver": "0.2.4", - "content-hash": "^2.5.2", - "eth-ens-namehash": "^2.0.8", - "ethers": "^5.0.13", - "js-sha3": "^0.8.0" + "safe-buffer": "~5.1.0" } }, - "node_modules/@ensdomains/resolver": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz", - "integrity": "sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA==", - "deprecated": "Please use @ensdomains/ens-contracts", - "dev": true - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, + "node_modules/@0x/sol-trace/node_modules/web3-provider-engine": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.4.tgz", + "integrity": "sha512-f5WxJ9+LTF+4aJo4tCOXtQ6SDytBtLkhvV+qh/9gImHAuG9sMr6utY0mn/pro1Rx7O3hbztBxvQKjGMdOo8muw==", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "@ethereumjs/tx": "^3.3.0", + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "eth-block-tracker": "^4.4.2", + "eth-json-rpc-filters": "^4.2.1", + "eth-json-rpc-infura": "^5.1.0", + "eth-json-rpc-middleware": "^6.0.0", + "eth-rpc-errors": "^3.0.0", + "eth-sig-util": "^1.4.2", + "ethereumjs-block": "^1.2.2", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "node": ">=12.0.0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.2.tgz", - "integrity": "sha512-0MGxAVt1m/ZK+LTJp/j0qF7Hz97D9O/FH9Ms3ltnyIdDD57cbb1ACIQTkbHvNXtWDv5TPq7w5Kq56+cNukbo7g==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node_modules/@0x/sol-trace/node_modules/web3-provider-engine/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/@0x/sol-trace/node_modules/web3-provider-engine/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dev": true, + "node_modules/@0x/sol-trace/node_modules/ws": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", + "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "async-limiter": "~1.0.0" } }, - "node_modules/@eslint/js": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", - "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", - "dev": true, + "node_modules/@0x/sol-tracing-utils": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/@0x/sol-tracing-utils/-/sol-tracing-utils-7.3.5.tgz", + "integrity": "sha512-KzLTcUcLiQD5N/NzkZnIwI0i4w775z4w/H0o2FeM3Gp/0BcBx2DZ+sqKVoCEUSussm+jx2v8MNJnM3wcdvvDlg==", + "dependencies": { + "@0x/dev-utils": "^5.0.3", + "@0x/sol-compiler": "^4.8.5", + "@0x/sol-resolver": "^3.1.13", + "@0x/subproviders": "^8.0.1", + "@0x/typescript-typings": "^5.3.2", + "@0x/utils": "^7.0.0", + "@0x/web3-wrapper": "^8.0.1", + "@types/node": "12.12.54", + "@types/solidity-parser-antlr": "^0.2.3", + "chalk": "^2.3.0", + "ethereum-types": "^3.7.1", + "ethereumjs-util": "^7.1.5", + "ethers": "~4.0.4", + "glob": "^7.1.2", + "istanbul": "^0.4.5", + "lodash": "^4.17.21", + "loglevel": "^1.6.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.2", + "semaphore-async-await": "^1.5.1", + "solc": "^0.8", + "solidity-parser-antlr": "^0.4.2" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.12" } }, - "node_modules/@eth-optimism/contracts": { - "version": "0.5.40", - "resolved": "https://registry.npmjs.org/@eth-optimism/contracts/-/contracts-0.5.40.tgz", - "integrity": "sha512-MrzV0nvsymfO/fursTB7m/KunkPsCndltVgfdHaT1Aj5Vi6R/doKIGGkOofHX+8B6VMZpuZosKCMQ5lQuqjt8w==", + "node_modules/@0x/sol-tracing-utils/node_modules/@0x/subproviders": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@0x/subproviders/-/subproviders-8.0.1.tgz", + "integrity": "sha512-Lax7Msb1Ef9D6Dd7PQ19oPgjl5GIrKje7XsrO7YCfx5A0RM3Hr4nSQIxgg78jwvuulSFxQ5Sr8WiZ2hTHATtQg==", "dependencies": { - "@eth-optimism/core-utils": "0.12.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0" + "@0x/assert": "^3.0.36", + "@0x/types": "^3.3.7", + "@0x/typescript-typings": "^5.3.2", + "@0x/utils": "^7.0.0", + "@0x/web3-wrapper": "^8.0.1", + "@ethereumjs/common": "^2.6.3", + "@ethereumjs/tx": "^3.5.1", + "@types/hdkey": "^0.7.0", + "@types/node": "12.12.54", + "@types/web3-provider-engine": "^14.0.0", + "bip39": "2.5.0", + "ethereum-types": "^3.7.1", + "ethereumjs-util": "^7.1.5", + "ganache": "^7.4.0", + "hdkey": "2.1.0", + "json-rpc-error": "2.0.0", + "lodash": "^4.17.21", + "web3-provider-engine": "16.0.4" }, - "peerDependencies": { - "ethers": "^5" + "engines": { + "node": ">=12.0.0" } }, - "node_modules/@eth-optimism/core-utils": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@eth-optimism/core-utils/-/core-utils-0.12.0.tgz", - "integrity": "sha512-qW+7LZYCz7i8dRa7SRlUKIo1VBU8lvN0HeXCxJR+z+xtMzMQpPds20XJNCMclszxYQHkXY00fOT6GvFw9ZL6nw==", + "node_modules/@0x/sol-tracing-utils/node_modules/@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", "dependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/address": "^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/keccak256": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/providers": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0", - "bufio": "^1.0.7", - "chai": "^4.3.4" + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" } }, - "node_modules/@ethereum-waffle/chai": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/@ethereum-waffle/chai/-/chai-4.0.10.tgz", - "integrity": "sha512-X5RepE7Dn8KQLFO7HHAAe+KeGaX/by14hn90wePGBhzL54tq4Y8JscZFu+/LCwCl6TnkAAy5ebiMoqJ37sFtWw==", - "dev": true, + "node_modules/@0x/sol-tracing-utils/node_modules/@ethereumjs/tx": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", + "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", "dependencies": { - "@ethereum-waffle/provider": "4.0.5", - "debug": "^4.3.4", - "json-bigint": "^1.0.0" - }, - "engines": { - "node": ">=10.0" - }, - "peerDependencies": { - "ethers": "*" + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" } }, - "node_modules/@ethereum-waffle/compiler": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@ethereum-waffle/compiler/-/compiler-4.0.3.tgz", - "integrity": "sha512-5x5U52tSvEVJS6dpCeXXKvRKyf8GICDwiTwUvGD3/WD+DpvgvaoHOL82XqpTSUHgV3bBq6ma5/8gKUJUIAnJCw==", - "dev": true, + "node_modules/@0x/sol-tracing-utils/node_modules/@types/node": { + "version": "12.12.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", + "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" + }, + "node_modules/@0x/sol-tracing-utils/node_modules/bip39": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", + "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "dependencies": { - "@resolver-engine/imports": "^0.3.3", - "@resolver-engine/imports-fs": "^0.3.3", - "@typechain/ethers-v5": "^10.0.0", - "@types/mkdirp": "^0.5.2", - "@types/node-fetch": "^2.6.1", - "mkdirp": "^0.5.1", - "node-fetch": "^2.6.7" - }, - "engines": { - "node": ">=10.0" - }, - "peerDependencies": { - "ethers": "*", - "solc": "*", - "typechain": "^8.0.0" + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" } }, - "node_modules/@ethereum-waffle/ens": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@ethereum-waffle/ens/-/ens-4.0.3.tgz", - "integrity": "sha512-PVLcdnTbaTfCrfSOrvtlA9Fih73EeDvFS28JQnT5M5P4JMplqmchhcZB1yg/fCtx4cvgHlZXa0+rOCAk2Jk0Jw==", - "dev": true, - "engines": { - "node": ">=10.0" - }, - "peerDependencies": { - "@ensdomains/ens": "^0.4.4", - "@ensdomains/resolver": "^0.2.4", - "ethers": "*" - } - }, - "node_modules/@ethereum-waffle/mock-contract": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@ethereum-waffle/mock-contract/-/mock-contract-4.0.4.tgz", - "integrity": "sha512-LwEj5SIuEe9/gnrXgtqIkWbk2g15imM/qcJcxpLyAkOj981tQxXmtV4XmQMZsdedEsZ/D/rbUAOtZbgwqgUwQA==", - "dev": true, - "engines": { - "node": ">=10.0" - }, - "peerDependencies": { - "ethers": "*" - } - }, - "node_modules/@ethereum-waffle/provider": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@ethereum-waffle/provider/-/provider-4.0.5.tgz", - "integrity": "sha512-40uzfyzcrPh+Gbdzv89JJTMBlZwzya1YLDyim8mVbEqYLP5VRYWoGp0JMyaizgV3hMoUFRqJKVmIUw4v7r3hYw==", - "dev": true, - "dependencies": { - "@ethereum-waffle/ens": "4.0.3", - "@ganache/ethereum-options": "0.1.4", - "debug": "^4.3.4", - "ganache": "7.4.3" - }, + "node_modules/@0x/sol-tracing-utils/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "engines": { - "node": ">=10.0" - }, - "peerDependencies": { - "ethers": "*" - } - }, - "node_modules/@ethereumjs/block": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.3.tgz", - "integrity": "sha512-CegDeryc2DVKnDkg5COQrE0bJfw/p0v3GBk2W5/Dj5dOVfEmb50Ux0GLnSPypooLnfqjwFaorGuT9FokWB3GRg==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.6.5", - "@ethereumjs/tx": "^3.5.2", - "ethereumjs-util": "^7.1.5", - "merkle-patricia-tree": "^4.2.4" - } - }, - "node_modules/@ethereumjs/block/node_modules/@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@ethereumjs/block/node_modules/@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" + "node": ">= 12" } }, - "node_modules/@ethereumjs/block/node_modules/ethereumjs-util": { + "node_modules/@0x/sol-tracing-utils/node_modules/ethereumjs-util": { "version": "7.1.5", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, "dependencies": { "@types/bn.js": "^5.1.0", "bn.js": "^5.1.2", @@ -773,422 +823,12778 @@ "node": ">=10.0.0" } }, - "node_modules/@ethereumjs/blockchain": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz", - "integrity": "sha512-bi0wuNJ1gw4ByNCV56H0Z4Q7D+SxUbwyG12Wxzbvqc89PXLRNR20LBcSUZRKpN0+YCPo6m0XZL/JLio3B52LTw==", - "dev": true, + "node_modules/@0x/sol-tracing-utils/node_modules/ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", "dependencies": { - "@ethereumjs/block": "^3.6.2", - "@ethereumjs/common": "^2.6.4", - "@ethereumjs/ethash": "^1.1.0", - "debug": "^4.3.3", - "ethereumjs-util": "^7.1.5", - "level-mem": "^5.0.1", - "lru-cache": "^5.1.1", - "semaphore-async-await": "^1.5.1" + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" } }, - "node_modules/@ethereumjs/blockchain/node_modules/@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "dev": true, + "node_modules/@0x/sol-tracing-utils/node_modules/ethers/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/@0x/sol-tracing-utils/node_modules/ethers/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==" + }, + "node_modules/@0x/sol-tracing-utils/node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" } }, - "node_modules/@ethereumjs/blockchain/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, + "node_modules/@0x/sol-tracing-utils/node_modules/hdkey": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", + "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" + "bs58check": "^2.1.2", + "ripemd160": "^2.0.2", + "safe-buffer": "^5.1.1", + "secp256k1": "^4.0.0" } }, - "node_modules/@ethereumjs/common": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.0.tgz", - "integrity": "sha512-Cq2qS0FTu6O2VU1sgg+WyU9Ps0M6j/BEMHN+hRaECXCV/r0aI78u4N6p52QW/BDVhwWZpCdrvG8X7NJdzlpNUA==", + "node_modules/@0x/sol-tracing-utils/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/@0x/sol-tracing-utils/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==", "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.3" + "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" } }, - "node_modules/@ethereumjs/ethash": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz", - "integrity": "sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA==", - "dev": true, + "node_modules/@0x/sol-tracing-utils/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dependencies": { - "@ethereumjs/block": "^3.5.0", - "@types/levelup": "^4.3.0", - "buffer-xor": "^2.0.1", - "ethereumjs-util": "^7.1.1", - "miller-rabin": "^4.0.0" + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" } }, - "node_modules/@ethereumjs/rlp": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", - "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "node_modules/@0x/sol-tracing-utils/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/@0x/sol-tracing-utils/node_modules/scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" + }, + "node_modules/@0x/sol-tracing-utils/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "bin": { - "rlp": "bin/rlp" - }, - "engines": { - "node": ">=14" + "semver": "bin/semver" } }, - "node_modules/@ethereumjs/tx": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.4.0.tgz", - "integrity": "sha512-WWUwg1PdjHKZZxPPo274ZuPsJCWV3SqATrEKQP1n2DrVYVP1aZIYpo/mFaA0BDoE0tIQmBeimRCEA0Lgil+yYw==", - "dependencies": { - "@ethereumjs/common": "^2.6.0", - "ethereumjs-util": "^7.1.3" - } + "node_modules/@0x/sol-tracing-utils/node_modules/setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" }, - "node_modules/@ethereumjs/util": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", - "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "node_modules/@0x/sol-tracing-utils/node_modules/solc": { + "version": "0.8.23", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.23.tgz", + "integrity": "sha512-uqe69kFWfJc3cKdxj+Eg9CdW1CP3PLZDPeyJStQVWL8Q9jjjKD0VuRAKBFR8mrWiq5A7gJqERxJFYJsklrVsfA==", "dependencies": { - "@ethereumjs/rlp": "^4.0.1", - "ethereum-cryptography": "^2.0.0", - "micro-ftch": "^0.3.1" + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "n": "^9.2.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solc.js" }, "engines": { - "node": ">=14" + "node": ">=10.0.0" } }, - "node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz", - "integrity": "sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug==", + "node_modules/@0x/sol-tracing-utils/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==", "dependencies": { - "@noble/curves": "1.1.0", - "@noble/hashes": "1.3.1", - "@scure/bip32": "1.3.1", - "@scure/bip39": "1.2.1" + "safe-buffer": "~5.1.0" } }, - "node_modules/@ethereumjs/vm": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.6.0.tgz", - "integrity": "sha512-J2m/OgjjiGdWF2P9bj/4LnZQ1zRoZhY8mRNVw/N3tXliGI8ai1sI1mlDPkLpeUUM4vq54gH6n0ZlSpz8U/qlYQ==", - "dev": true, - "dependencies": { - "@ethereumjs/block": "^3.6.0", - "@ethereumjs/blockchain": "^5.5.0", - "@ethereumjs/common": "^2.6.0", - "@ethereumjs/tx": "^3.4.0", - "async-eventemitter": "^0.2.4", - "core-js-pure": "^3.0.1", - "debug": "^2.2.0", - "ethereumjs-util": "^7.1.3", - "functional-red-black-tree": "^1.0.1", - "mcl-wasm": "^0.7.1", - "merkle-patricia-tree": "^4.2.2", - "rustbn.js": "~0.2.0" - } + "node_modules/@0x/sol-tracing-utils/node_modules/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details." }, - "node_modules/@ethereumjs/vm/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, + "node_modules/@0x/sol-tracing-utils/node_modules/web3-provider-engine": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.4.tgz", + "integrity": "sha512-f5WxJ9+LTF+4aJo4tCOXtQ6SDytBtLkhvV+qh/9gImHAuG9sMr6utY0mn/pro1Rx7O3hbztBxvQKjGMdOo8muw==", "dependencies": { - "ms": "2.0.0" + "@ethereumjs/tx": "^3.3.0", + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "eth-block-tracker": "^4.4.2", + "eth-json-rpc-filters": "^4.2.1", + "eth-json-rpc-infura": "^5.1.0", + "eth-json-rpc-middleware": "^6.0.0", + "eth-rpc-errors": "^3.0.0", + "eth-sig-util": "^1.4.2", + "ethereumjs-block": "^1.2.2", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" + }, + "engines": { + "node": ">=12.0.0" } }, - "node_modules/@ethereumjs/vm/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/@0x/sol-tracing-utils/node_modules/web3-provider-engine/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, - "node_modules/@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@0x/sol-tracing-utils/node_modules/web3-provider-engine/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@0x/sol-tracing-utils/node_modules/ws": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", + "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" + "async-limiter": "~1.0.0" } }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@0x/subproviders": { + "version": "6.6.5", + "resolved": "https://registry.npmjs.org/@0x/subproviders/-/subproviders-6.6.5.tgz", + "integrity": "sha512-tpkKH5XBgrlO4K9dMNqsYiTgrAOJUnThiu73y9tYl4mwX/1gRpyG1EebvD8w6VKPrLjnyPyMw50ZvTyaYgbXNQ==", + "hasInstallScript": true, "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" + "@0x/assert": "^3.0.34", + "@0x/types": "^3.3.6", + "@0x/typescript-typings": "^5.3.1", + "@0x/utils": "^6.5.3", + "@0x/web3-wrapper": "^7.6.5", + "@ethereumjs/common": "^2.4.0", + "@ethereumjs/tx": "^3.3.0", + "@ledgerhq/hw-app-eth": "^4.3.0", + "@ledgerhq/hw-transport-u2f": "4.24.0", + "@types/hdkey": "^0.7.0", + "@types/node": "12.12.54", + "@types/web3-provider-engine": "^14.0.0", + "bip39": "^2.5.0", + "bn.js": "^4.11.8", + "ethereum-types": "^3.7.0", + "ethereumjs-util": "^7.1.0", + "ganache-core": "^2.13.2", + "hdkey": "^0.7.1", + "json-rpc-error": "2.0.0", + "lodash": "^4.17.11", + "semaphore-async-await": "^1.5.1", + "web3-provider-engine": "14.0.6" + }, + "engines": { + "node": ">=6.12" + }, + "optionalDependencies": { + "@ledgerhq/hw-transport-node-hid": "^4.3.0" } }, - "node_modules/@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@0x/subproviders/node_modules/@0x/utils": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/@0x/utils/-/utils-6.5.3.tgz", + "integrity": "sha512-C8Af9MeNvWTtSg5eEOObSZ+7gjOGSHkhqDWv8iPfrMMt7yFkAjHxpXW+xufk6ZG2VTg+hel82GDyhKaGtoQZDA==", + "dependencies": { + "@0x/types": "^3.3.6", + "@0x/typescript-typings": "^5.3.1", + "@types/mocha": "^5.2.7", + "@types/node": "12.12.54", + "abortcontroller-polyfill": "^1.1.9", + "bignumber.js": "~9.0.2", + "chalk": "^2.3.0", + "detect-node": "2.0.3", + "ethereum-types": "^3.7.0", + "ethereumjs-util": "^7.1.0", + "ethers": "~4.0.4", + "isomorphic-fetch": "2.2.1", + "js-sha3": "^0.7.0", + "lodash": "^4.17.11" + }, + "engines": { + "node": ">=6.12" + } + }, + "node_modules/@0x/subproviders/node_modules/@0x/web3-wrapper": { + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@0x/web3-wrapper/-/web3-wrapper-7.6.5.tgz", + "integrity": "sha512-AyaisigXUsuwLcLqfji7DzQ+komL9NpaH1k2eTZMn7sxPfZZBSIMFbu3vgSKYvRnJdrXrkeKjE5h0BhIvTngMA==", "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" + "@0x/assert": "^3.0.34", + "@0x/json-schemas": "^6.4.4", + "@0x/typescript-typings": "^5.3.1", + "@0x/utils": "^6.5.3", + "@types/node": "12.12.54", + "ethereum-types": "^3.7.0", + "ethereumjs-util": "^7.1.0", + "ethers": "~4.0.4", + "lodash": "^4.17.11" + }, + "engines": { + "node": ">=6.12" } }, - "node_modules/@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@0x/subproviders/node_modules/@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" + }, + "node_modules/@0x/subproviders/node_modules/@types/node": { + "version": "12.12.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", + "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" + }, + "node_modules/@0x/subproviders/node_modules/bignumber.js": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", + "engines": { + "node": "*" + } + }, + "node_modules/@0x/subproviders/node_modules/bip39": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.6.0.tgz", + "integrity": "sha512-RrnQRG2EgEoqO24ea+Q/fftuPUZLmrEM3qNhhGsA3PbaXaCW791LTzPuVyx/VprXQcTbPJ3K3UeTna8ZnVl2sg==", "dependencies": { - "@ethersproject/bytes": "^5.7.0" + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" } }, - "node_modules/@ethersproject/basex": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@0x/subproviders/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/@0x/subproviders/node_modules/eth-block-tracker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-3.0.1.tgz", + "integrity": "sha512-WUVxWLuhMmsfenfZvFO5sbl1qFY2IqUlw/FPVmjjdElpqLsZtSG+wPe9Dz7W/sB6e80HgFKknOmKk2eNlznHug==", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/properties": "^5.7.0" + "eth-query": "^2.1.0", + "ethereumjs-tx": "^1.3.3", + "ethereumjs-util": "^5.1.3", + "ethjs-util": "^0.1.3", + "json-rpc-engine": "^3.6.0", + "pify": "^2.3.0", + "tape": "^4.6.3" } }, - "node_modules/@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@0x/subproviders/node_modules/eth-block-tracker/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@0x/subproviders/node_modules/eth-json-rpc-infura": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz", + "integrity": "sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dependencies": { - "@ethersproject/logger": "^5.7.0" + "cross-fetch": "^2.1.1", + "eth-json-rpc-middleware": "^1.5.0", + "json-rpc-engine": "^3.4.0", + "json-rpc-error": "^2.0.0" } }, - "node_modules/@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { + "node_modules/@0x/subproviders/node_modules/eth-json-rpc-middleware": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz", + "integrity": "sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q==", + "dependencies": { + "async": "^2.5.0", + "eth-query": "^2.1.2", + "eth-tx-summary": "^3.1.2", + "ethereumjs-block": "^1.6.0", + "ethereumjs-tx": "^1.3.3", + "ethereumjs-util": "^5.1.2", + "ethereumjs-vm": "^2.1.0", + "fetch-ponyfill": "^4.0.0", + "json-rpc-engine": "^3.6.0", + "json-rpc-error": "^2.0.0", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "tape": "^4.6.3" + } + }, + "node_modules/@0x/subproviders/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/@0x/subproviders/node_modules/ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dependencies": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "node_modules/@0x/subproviders/node_modules/ethers/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==" + }, + "node_modules/@0x/subproviders/node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/@0x/subproviders/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/@0x/subproviders/node_modules/isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", + "dependencies": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "node_modules/@0x/subproviders/node_modules/js-sha3": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.7.0.tgz", + "integrity": "sha512-Wpks3yBDm0UcL5qlVhwW9Jr9n9i4FfeWBFOOXP5puDS/SiudJGhw7DPyBqn3487qD4F0lsC0q3zxink37f7zeA==" + }, + "node_modules/@0x/subproviders/node_modules/json-rpc-engine": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz", + "integrity": "sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA==", + "dependencies": { + "async": "^2.0.1", + "babel-preset-env": "^1.7.0", + "babelify": "^7.3.0", + "json-rpc-error": "^2.0.0", + "promise-to-callback": "^1.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/@0x/subproviders/node_modules/node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dependencies": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "node_modules/@0x/subproviders/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@0x/subproviders/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==", + "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" + } + }, + "node_modules/@0x/subproviders/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/@0x/subproviders/node_modules/scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" + }, + "node_modules/@0x/subproviders/node_modules/setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" + }, + "node_modules/@0x/subproviders/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==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/@0x/subproviders/node_modules/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details." + }, + "node_modules/@0x/subproviders/node_modules/web3-provider-engine": { + "version": "14.0.6", + "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-14.0.6.tgz", + "integrity": "sha512-tr5cGSyxfSC/JqiUpBlJtfZpwQf1yAA8L/zy1C6fDFm0ntR974pobJ4v4676atpZne4Ze5VFy3kPPahHe9gQiQ==", + "dependencies": { + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "cross-fetch": "^2.1.0", + "eth-block-tracker": "^3.0.0", + "eth-json-rpc-infura": "^3.1.0", + "eth-sig-util": "^1.4.2", + "ethereumjs-block": "^1.2.2", + "ethereumjs-tx": "^1.2.0", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-rpc-error": "^2.0.0", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.67.0", + "semaphore": "^1.0.3", + "tape": "^4.4.0", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" + } + }, + "node_modules/@0x/subproviders/node_modules/web3-provider-engine/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/@0x/subproviders/node_modules/ws": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", + "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/@0x/types": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@0x/types/-/types-3.3.7.tgz", + "integrity": "sha512-6lPXPnvKaIfAJ5hIgs81SytqNCPCLstQ/DA598iLpb90KKjjz8QsdrfII4JeKdrEREvLcWSH9SeH4sNPWyLhlA==", + "dependencies": { + "@types/node": "12.12.54", + "bignumber.js": "~9.0.2", + "ethereum-types": "^3.7.1" + }, + "engines": { + "node": ">=6.12" + } + }, + "node_modules/@0x/types/node_modules/@types/node": { + "version": "12.12.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", + "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" + }, + "node_modules/@0x/types/node_modules/bignumber.js": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", + "engines": { + "node": "*" + } + }, + "node_modules/@0x/typescript-typings": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/@0x/typescript-typings/-/typescript-typings-5.3.2.tgz", + "integrity": "sha512-VIo8PS/IRXrI1aEzM8TenUMViX4MFMKBnIAwqC4K/ewVDSnKyYZSk8fzw0XZph6tN07obchPf+1sHIWYe8EUow==", + "dependencies": { + "@types/bn.js": "^4.11.0", + "@types/node": "12.12.54", + "@types/react": "*", + "bignumber.js": "~9.0.2", + "ethereum-types": "^3.7.1", + "popper.js": "1.14.3" + }, + "engines": { + "node": ">=6.12" + } + }, + "node_modules/@0x/typescript-typings/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@0x/typescript-typings/node_modules/@types/node": { + "version": "12.12.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", + "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" + }, + "node_modules/@0x/typescript-typings/node_modules/bignumber.js": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", + "engines": { + "node": "*" + } + }, + "node_modules/@0x/utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@0x/utils/-/utils-7.0.0.tgz", + "integrity": "sha512-g+Bp0eHUGhnVGeVZqGn7UVtpzs/FuoXksiDaajfJrHFW0owwo5YwpwFIAVU7/ca0B6IKa74e71gskLwWGINEFg==", + "dependencies": { + "@0x/types": "^3.3.7", + "@0x/typescript-typings": "^5.3.2", + "@types/mocha": "^5.2.7", + "@types/node": "12.12.54", + "abortcontroller-polyfill": "^1.1.9", + "bignumber.js": "~9.0.2", + "chalk": "^2.3.0", + "detect-node": "2.0.3", + "ethereum-types": "^3.7.1", + "ethereumjs-util": "^7.1.5", + "ethers": "~4.0.4", + "isomorphic-fetch": "^3.0.0", + "js-sha3": "^0.7.0", + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=6.12" + } + }, + "node_modules/@0x/utils/node_modules/@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" + }, + "node_modules/@0x/utils/node_modules/@types/node": { + "version": "12.12.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", + "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" + }, + "node_modules/@0x/utils/node_modules/bignumber.js": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", + "engines": { + "node": "*" + } + }, + "node_modules/@0x/utils/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@0x/utils/node_modules/ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dependencies": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "node_modules/@0x/utils/node_modules/ethers/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/@0x/utils/node_modules/ethers/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==" + }, + "node_modules/@0x/utils/node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/@0x/utils/node_modules/js-sha3": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.7.0.tgz", + "integrity": "sha512-Wpks3yBDm0UcL5qlVhwW9Jr9n9i4FfeWBFOOXP5puDS/SiudJGhw7DPyBqn3487qD4F0lsC0q3zxink37f7zeA==" + }, + "node_modules/@0x/utils/node_modules/scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" + }, + "node_modules/@0x/utils/node_modules/setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" + }, + "node_modules/@0x/utils/node_modules/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details." + }, + "node_modules/@0x/web3-wrapper": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@0x/web3-wrapper/-/web3-wrapper-8.0.1.tgz", + "integrity": "sha512-2rqugeCld5r/3yg+Un9sPCUNVeZW5J64Fm6i/W6qRE87X+spIJG48oJymTjSMDXw/w3FaP4nAvhSj2C5fvhN6w==", + "dependencies": { + "@0x/assert": "^3.0.36", + "@0x/json-schemas": "^6.4.6", + "@0x/typescript-typings": "^5.3.2", + "@0x/utils": "^7.0.0", + "@types/node": "12.12.54", + "ethereum-types": "^3.7.1", + "ethereumjs-util": "^7.1.5", + "ethers": "~4.0.4", + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=6.12" + } + }, + "node_modules/@0x/web3-wrapper/node_modules/@types/node": { + "version": "12.12.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", + "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" + }, + "node_modules/@0x/web3-wrapper/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@0x/web3-wrapper/node_modules/ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dependencies": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "node_modules/@0x/web3-wrapper/node_modules/ethers/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/@0x/web3-wrapper/node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/@0x/web3-wrapper/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==" + }, + "node_modules/@0x/web3-wrapper/node_modules/scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" + }, + "node_modules/@0x/web3-wrapper/node_modules/setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" + }, + "node_modules/@0x/web3-wrapper/node_modules/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details." + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", + "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.7", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "peer": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "peer": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "peer": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "peer": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "peer": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "peer": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", + "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", + "peer": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "peer": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz", + "integrity": "sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g==", + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.1.tgz", + "integrity": "sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", + "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@chainlink/contracts": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@chainlink/contracts/-/contracts-0.8.0.tgz", + "integrity": "sha512-nUv1Uxw5Mn92wgLs2bgPYmo8hpdQ3s9jB/lcbdU0LmNOVu0hbfmouVnqwRLa28Ll50q6GczUA+eO0ikNIKLZsA==", + "dependencies": { + "@eth-optimism/contracts": "^0.5.21", + "@openzeppelin/contracts": "~4.3.3", + "@openzeppelin/contracts-upgradeable-4.7.3": "npm:@openzeppelin/contracts-upgradeable@v4.7.3", + "@openzeppelin/contracts-v0.7": "npm:@openzeppelin/contracts@v3.4.2" + } + }, + "node_modules/@chainlink/contracts/node_modules/@openzeppelin/contracts": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.3.tgz", + "integrity": "sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g==" + }, + "node_modules/@chainlink/test-helpers": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@chainlink/test-helpers/-/test-helpers-0.0.1.tgz", + "integrity": "sha512-rxNg1R9ywhttvFCQWEA6KVR9Zr88cm+YgaXA3DD6QYP3GKtVX4U1AvJvrgP0gIM/Kk0a/wvJnY/3p644HmWNAg==", + "dependencies": { + "@0x/sol-trace": "^3.0.4", + "@0x/subproviders": "^6.0.4", + "bn.js": "^4.11.0", + "cbor": "^5.0.1", + "chai": "^4.2.0", + "chalk": "^2.4.2", + "debug": "^4.1.1", + "ethers": "^4.0.41" + } + }, + "node_modules/@chainlink/test-helpers/node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "engines": { + "node": "*" + } + }, + "node_modules/@chainlink/test-helpers/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/@chainlink/test-helpers/node_modules/cbor": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", + "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", + "dependencies": { + "bignumber.js": "^9.0.1", + "nofilter": "^1.0.4" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@chainlink/test-helpers/node_modules/ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dependencies": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "node_modules/@chainlink/test-helpers/node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/@chainlink/test-helpers/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==" + }, + "node_modules/@chainlink/test-helpers/node_modules/nofilter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", + "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@chainlink/test-helpers/node_modules/scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" + }, + "node_modules/@chainlink/test-helpers/node_modules/setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" + }, + "node_modules/@chainlink/test-helpers/node_modules/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details." + }, + "node_modules/@chainsafe/as-sha256": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz", + "integrity": "sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==" + }, + "node_modules/@chainsafe/persistent-merkle-tree": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz", + "integrity": "sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==", + "dependencies": { + "@chainsafe/as-sha256": "^0.3.1" + } + }, + "node_modules/@chainsafe/ssz": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.9.4.tgz", + "integrity": "sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==", + "dependencies": { + "@chainsafe/as-sha256": "^0.3.1", + "@chainsafe/persistent-merkle-tree": "^0.4.2", + "case": "^1.6.3" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "devOptional": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ensdomains/address-encoder": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz", + "integrity": "sha512-E2d2gP4uxJQnDu2Kfg1tHNspefzbLT8Tyjrm5sEuim32UkU2sm5xL4VXtgc2X33fmPEw9+jUMpGs4veMbf+PYg==", + "dev": true, + "dependencies": { + "bech32": "^1.1.3", + "blakejs": "^1.1.0", + "bn.js": "^4.11.8", + "bs58": "^4.0.1", + "crypto-addr-codec": "^0.1.7", + "nano-base32": "^1.0.1", + "ripemd160": "^2.0.2" + } + }, + "node_modules/@ensdomains/address-encoder/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/@ensdomains/ens": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz", + "integrity": "sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw==", + "deprecated": "Please use @ensdomains/ens-contracts", + "dev": true, + "dependencies": { + "bluebird": "^3.5.2", + "eth-ens-namehash": "^2.0.8", + "solc": "^0.4.20", + "testrpc": "0.0.1", + "web3-utils": "^1.0.0-beta.31" + } + }, + "node_modules/@ensdomains/ensjs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@ensdomains/ensjs/-/ensjs-2.1.0.tgz", + "integrity": "sha512-GRbGPT8Z/OJMDuxs75U/jUNEC0tbL0aj7/L/QQznGYKm/tiasp+ndLOaoULy9kKJFC0TBByqfFliEHDgoLhyog==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.4.4", + "@ensdomains/address-encoder": "^0.1.7", + "@ensdomains/ens": "0.4.5", + "@ensdomains/resolver": "0.2.4", + "content-hash": "^2.5.2", + "eth-ens-namehash": "^2.0.8", + "ethers": "^5.0.13", + "js-sha3": "^0.8.0" + } + }, + "node_modules/@ensdomains/resolver": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz", + "integrity": "sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA==", + "deprecated": "Please use @ensdomains/ens-contracts", + "dev": true + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.2.tgz", + "integrity": "sha512-0MGxAVt1m/ZK+LTJp/j0qF7Hz97D9O/FH9Ms3ltnyIdDD57cbb1ACIQTkbHvNXtWDv5TPq7w5Kq56+cNukbo7g==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", + "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eth-optimism/contracts": { + "version": "0.5.40", + "resolved": "https://registry.npmjs.org/@eth-optimism/contracts/-/contracts-0.5.40.tgz", + "integrity": "sha512-MrzV0nvsymfO/fursTB7m/KunkPsCndltVgfdHaT1Aj5Vi6R/doKIGGkOofHX+8B6VMZpuZosKCMQ5lQuqjt8w==", + "dependencies": { + "@eth-optimism/core-utils": "0.12.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0" + }, + "peerDependencies": { + "ethers": "^5" + } + }, + "node_modules/@eth-optimism/core-utils": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eth-optimism/core-utils/-/core-utils-0.12.0.tgz", + "integrity": "sha512-qW+7LZYCz7i8dRa7SRlUKIo1VBU8lvN0HeXCxJR+z+xtMzMQpPds20XJNCMclszxYQHkXY00fOT6GvFw9ZL6nw==", + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/address": "^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/keccak256": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/providers": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bufio": "^1.0.7", + "chai": "^4.3.4" + } + }, + "node_modules/@ethereum-waffle/chai": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@ethereum-waffle/chai/-/chai-4.0.10.tgz", + "integrity": "sha512-X5RepE7Dn8KQLFO7HHAAe+KeGaX/by14hn90wePGBhzL54tq4Y8JscZFu+/LCwCl6TnkAAy5ebiMoqJ37sFtWw==", + "dev": true, + "dependencies": { + "@ethereum-waffle/provider": "4.0.5", + "debug": "^4.3.4", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=10.0" + }, + "peerDependencies": { + "ethers": "*" + } + }, + "node_modules/@ethereum-waffle/compiler": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@ethereum-waffle/compiler/-/compiler-4.0.3.tgz", + "integrity": "sha512-5x5U52tSvEVJS6dpCeXXKvRKyf8GICDwiTwUvGD3/WD+DpvgvaoHOL82XqpTSUHgV3bBq6ma5/8gKUJUIAnJCw==", + "dev": true, + "dependencies": { + "@resolver-engine/imports": "^0.3.3", + "@resolver-engine/imports-fs": "^0.3.3", + "@typechain/ethers-v5": "^10.0.0", + "@types/mkdirp": "^0.5.2", + "@types/node-fetch": "^2.6.1", + "mkdirp": "^0.5.1", + "node-fetch": "^2.6.7" + }, + "engines": { + "node": ">=10.0" + }, + "peerDependencies": { + "ethers": "*", + "solc": "*", + "typechain": "^8.0.0" + } + }, + "node_modules/@ethereum-waffle/ens": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@ethereum-waffle/ens/-/ens-4.0.3.tgz", + "integrity": "sha512-PVLcdnTbaTfCrfSOrvtlA9Fih73EeDvFS28JQnT5M5P4JMplqmchhcZB1yg/fCtx4cvgHlZXa0+rOCAk2Jk0Jw==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "peerDependencies": { + "@ensdomains/ens": "^0.4.4", + "@ensdomains/resolver": "^0.2.4", + "ethers": "*" + } + }, + "node_modules/@ethereum-waffle/mock-contract": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@ethereum-waffle/mock-contract/-/mock-contract-4.0.4.tgz", + "integrity": "sha512-LwEj5SIuEe9/gnrXgtqIkWbk2g15imM/qcJcxpLyAkOj981tQxXmtV4XmQMZsdedEsZ/D/rbUAOtZbgwqgUwQA==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "peerDependencies": { + "ethers": "*" + } + }, + "node_modules/@ethereum-waffle/provider": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@ethereum-waffle/provider/-/provider-4.0.5.tgz", + "integrity": "sha512-40uzfyzcrPh+Gbdzv89JJTMBlZwzya1YLDyim8mVbEqYLP5VRYWoGp0JMyaizgV3hMoUFRqJKVmIUw4v7r3hYw==", + "dev": true, + "dependencies": { + "@ethereum-waffle/ens": "4.0.3", + "@ganache/ethereum-options": "0.1.4", + "debug": "^4.3.4", + "ganache": "7.4.3" + }, + "engines": { + "node": ">=10.0" + }, + "peerDependencies": { + "ethers": "*" + } + }, + "node_modules/@ethereumjs/block": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.3.tgz", + "integrity": "sha512-CegDeryc2DVKnDkg5COQrE0bJfw/p0v3GBk2W5/Dj5dOVfEmb50Ux0GLnSPypooLnfqjwFaorGuT9FokWB3GRg==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "^2.6.5", + "@ethereumjs/tx": "^3.5.2", + "ethereumjs-util": "^7.1.5", + "merkle-patricia-tree": "^4.2.4" + } + }, + "node_modules/@ethereumjs/block/node_modules/@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", + "dev": true, + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" + } + }, + "node_modules/@ethereumjs/block/node_modules/@ethereumjs/tx": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", + "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" + } + }, + "node_modules/@ethereumjs/block/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@ethereumjs/blockchain": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz", + "integrity": "sha512-bi0wuNJ1gw4ByNCV56H0Z4Q7D+SxUbwyG12Wxzbvqc89PXLRNR20LBcSUZRKpN0+YCPo6m0XZL/JLio3B52LTw==", + "dev": true, + "dependencies": { + "@ethereumjs/block": "^3.6.2", + "@ethereumjs/common": "^2.6.4", + "@ethereumjs/ethash": "^1.1.0", + "debug": "^4.3.3", + "ethereumjs-util": "^7.1.5", + "level-mem": "^5.0.1", + "lru-cache": "^5.1.1", + "semaphore-async-await": "^1.5.1" + } + }, + "node_modules/@ethereumjs/blockchain/node_modules/@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", + "dev": true, + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" + } + }, + "node_modules/@ethereumjs/blockchain/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@ethereumjs/common": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.0.tgz", + "integrity": "sha512-Cq2qS0FTu6O2VU1sgg+WyU9Ps0M6j/BEMHN+hRaECXCV/r0aI78u4N6p52QW/BDVhwWZpCdrvG8X7NJdzlpNUA==", + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.3" + } + }, + "node_modules/@ethereumjs/ethash": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz", + "integrity": "sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA==", + "dev": true, + "dependencies": { + "@ethereumjs/block": "^3.5.0", + "@types/levelup": "^4.3.0", + "buffer-xor": "^2.0.1", + "ethereumjs-util": "^7.1.1", + "miller-rabin": "^4.0.0" + } + }, + "node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/tx": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.4.0.tgz", + "integrity": "sha512-WWUwg1PdjHKZZxPPo274ZuPsJCWV3SqATrEKQP1n2DrVYVP1aZIYpo/mFaA0BDoE0tIQmBeimRCEA0Lgil+yYw==", + "dependencies": { + "@ethereumjs/common": "^2.6.0", + "ethereumjs-util": "^7.1.3" + } + }, + "node_modules/@ethereumjs/util": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", + "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz", + "integrity": "sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug==", + "dependencies": { + "@noble/curves": "1.1.0", + "@noble/hashes": "1.3.1", + "@scure/bip32": "1.3.1", + "@scure/bip39": "1.2.1" + } + }, + "node_modules/@ethereumjs/vm": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.6.0.tgz", + "integrity": "sha512-J2m/OgjjiGdWF2P9bj/4LnZQ1zRoZhY8mRNVw/N3tXliGI8ai1sI1mlDPkLpeUUM4vq54gH6n0ZlSpz8U/qlYQ==", + "dev": true, + "dependencies": { + "@ethereumjs/block": "^3.6.0", + "@ethereumjs/blockchain": "^5.5.0", + "@ethereumjs/common": "^2.6.0", + "@ethereumjs/tx": "^3.4.0", + "async-eventemitter": "^0.2.4", + "core-js-pure": "^3.0.1", + "debug": "^2.2.0", + "ethereumjs-util": "^7.1.3", + "functional-red-black-tree": "^1.0.1", + "mcl-wasm": "^0.7.1", + "merkle-patricia-tree": "^4.2.2", + "rustbn.js": "~0.2.0" + } + }, + "node_modules/@ethereumjs/vm/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/@ethereumjs/vm/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/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "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/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "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/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "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/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "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/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "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/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "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/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "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/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "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/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "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/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "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/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "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/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "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/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "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/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "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/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ] + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "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/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "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/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "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/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "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/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/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "node_modules/@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "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/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "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/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "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/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "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/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "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/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "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/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "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/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "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/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "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/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^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/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "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/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "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/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ganache/ethereum-address": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@ganache/ethereum-address/-/ethereum-address-0.1.4.tgz", + "integrity": "sha512-sTkU0M9z2nZUzDeHRzzGlW724xhMLXo2LeX1hixbnjHWY1Zg1hkqORywVfl+g5uOO8ht8T0v+34IxNxAhmWlbw==", + "dev": true, + "dependencies": { + "@ganache/utils": "0.1.4" + } + }, + "node_modules/@ganache/ethereum-options": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@ganache/ethereum-options/-/ethereum-options-0.1.4.tgz", + "integrity": "sha512-i4l46taoK2yC41FPkcoDlEVoqHS52wcbHPqJtYETRWqpOaoj9hAg/EJIHLb1t6Nhva2CdTO84bG+qlzlTxjAHw==", + "dev": true, + "dependencies": { + "@ganache/ethereum-address": "0.1.4", + "@ganache/ethereum-utils": "0.1.4", + "@ganache/options": "0.1.4", + "@ganache/utils": "0.1.4", + "bip39": "3.0.4", + "seedrandom": "3.0.5" + } + }, + "node_modules/@ganache/ethereum-utils": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@ganache/ethereum-utils/-/ethereum-utils-0.1.4.tgz", + "integrity": "sha512-FKXF3zcdDrIoCqovJmHLKZLrJ43234Em2sde/3urUT/10gSgnwlpFmrv2LUMAmSbX3lgZhW/aSs8krGhDevDAg==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "2.6.0", + "@ethereumjs/tx": "3.4.0", + "@ethereumjs/vm": "5.6.0", + "@ganache/ethereum-address": "0.1.4", + "@ganache/rlp": "0.1.4", + "@ganache/utils": "0.1.4", + "emittery": "0.10.0", + "ethereumjs-abi": "0.6.8", + "ethereumjs-util": "7.1.3" + } + }, + "node_modules/@ganache/options": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@ganache/options/-/options-0.1.4.tgz", + "integrity": "sha512-zAe/craqNuPz512XQY33MOAG6Si1Xp0hCvfzkBfj2qkuPcbJCq6W/eQ5MB6SbXHrICsHrZOaelyqjuhSEmjXRw==", + "dev": true, + "dependencies": { + "@ganache/utils": "0.1.4", + "bip39": "3.0.4", + "seedrandom": "3.0.5" + } + }, + "node_modules/@ganache/rlp": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@ganache/rlp/-/rlp-0.1.4.tgz", + "integrity": "sha512-Do3D1H6JmhikB+6rHviGqkrNywou/liVeFiKIpOBLynIpvZhRCgn3SEDxyy/JovcaozTo/BynHumfs5R085MFQ==", + "dev": true, + "dependencies": { + "@ganache/utils": "0.1.4", + "rlp": "2.2.6" + } + }, + "node_modules/@ganache/utils": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@ganache/utils/-/utils-0.1.4.tgz", + "integrity": "sha512-oatUueU3XuXbUbUlkyxeLLH3LzFZ4y5aSkNbx6tjSIhVTPeh+AuBKYt4eQ73FFcTB3nj/gZoslgAh5CN7O369w==", + "dev": true, + "dependencies": { + "emittery": "0.10.0", + "keccak": "3.0.1", + "seedrandom": "3.0.5" + }, + "optionalDependencies": { + "@trufflesuite/bigint-buffer": "1.1.9" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "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==", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@ledgerhq/devices": { + "version": "4.78.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-4.78.0.tgz", + "integrity": "sha512-tWKS5WM/UU82czihnVjRwz9SXNTQzWjGJ/7+j/xZ70O86nlnGJ1aaFbs5/WTzfrVKpOKgj1ZoZkAswX67i/JTw==", + "dependencies": { + "@ledgerhq/errors": "^4.78.0", + "@ledgerhq/logs": "^4.72.0", + "rxjs": "^6.5.3" + } + }, + "node_modules/@ledgerhq/errors": { + "version": "4.78.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-4.78.0.tgz", + "integrity": "sha512-FX6zHZeiNtegBvXabK6M5dJ+8OV8kQGGaGtuXDeK/Ss5EmG4Ltxc6Lnhe8hiHpm9pCHtktOsnUVL7IFBdHhYUg==" + }, + "node_modules/@ledgerhq/hw-app-eth": { + "version": "4.78.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-app-eth/-/hw-app-eth-4.78.0.tgz", + "integrity": "sha512-m4s4Zhy4lwYJjZB3xPeGV/8mxQcnoui+Eu1KDEl6atsquZHUpbtern/0hZl88+OlFUz0XrX34W3I9cqj61Y6KA==", + "dependencies": { + "@ledgerhq/errors": "^4.78.0", + "@ledgerhq/hw-transport": "^4.78.0" + } + }, + "node_modules/@ledgerhq/hw-transport": { + "version": "4.78.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-4.78.0.tgz", + "integrity": "sha512-xQu16OMPQjFYLjqCysij+8sXtdWv2YLxPrB6FoLvEWGTlQ7yL1nUBRQyzyQtWIYqZd4THQowQmzm1VjxuN6SZw==", + "dependencies": { + "@ledgerhq/devices": "^4.78.0", + "@ledgerhq/errors": "^4.78.0", + "events": "^3.0.0" + } + }, + "node_modules/@ledgerhq/hw-transport-node-hid": { + "version": "4.78.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-4.78.0.tgz", + "integrity": "sha512-OMrY2ecfQ1XjMAuuHqu3n3agMPR06HN1s0ENrKc+Twbb5A17jujpv07WzjxfTN2V1G7vgeZpRqrg2ulhowWbdg==", + "optional": true, + "dependencies": { + "@ledgerhq/devices": "^4.78.0", + "@ledgerhq/errors": "^4.78.0", + "@ledgerhq/hw-transport": "^4.78.0", + "@ledgerhq/hw-transport-node-hid-noevents": "^4.78.0", + "@ledgerhq/logs": "^4.72.0", + "lodash": "^4.17.15", + "node-hid": "^0.7.9", + "usb": "^1.6.0" + } + }, + "node_modules/@ledgerhq/hw-transport-node-hid-noevents": { + "version": "4.78.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-4.78.0.tgz", + "integrity": "sha512-CJPVR4wksq+apiXH2GnsttguBxmj9zdM2HjqZ3dHZN8SFW/9Xj3k+baS+pYoUISkECVxDrdfaW3Bd5dWv+jPUg==", + "optional": true, + "dependencies": { + "@ledgerhq/devices": "^4.78.0", + "@ledgerhq/errors": "^4.78.0", + "@ledgerhq/hw-transport": "^4.78.0", + "@ledgerhq/logs": "^4.72.0", + "node-hid": "^0.7.9" + } + }, + "node_modules/@ledgerhq/hw-transport-u2f": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-4.24.0.tgz", + "integrity": "sha512-/gFjhkM0sJfZ7iUf8HoIkGufAWgPacrbb1LW0TvWnZwvsATVJ1BZJBtrr90Wo401PKsjVwYtFt3Ce4gOAUv9jQ==", + "deprecated": "@ledgerhq/hw-transport-u2f is deprecated. Please use @ledgerhq/hw-transport-webusb or @ledgerhq/hw-transport-webhid. https://github.com/LedgerHQ/ledgerjs/blob/master/docs/migrate_webusb.md", + "dependencies": { + "@ledgerhq/hw-transport": "^4.24.0", + "u2f-api": "0.2.7" + } + }, + "node_modules/@ledgerhq/logs": { + "version": "4.72.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-4.72.0.tgz", + "integrity": "sha512-o+TYF8vBcyySRsb2kqBDv/KMeme8a2nwWoG+lAWzbDmWfb2/MrVWYCVYDYvjXdSoI/Cujqy1i0gIDrkdxa9chA==" + }, + "node_modules/@ljharb/resumer": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.0.1.tgz", + "integrity": "sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==", + "dependencies": { + "@ljharb/through": "^2.3.9" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/@ljharb/through": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", + "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@metamask/eth-sig-util/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@metamask/eth-sig-util/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/@metamask/safe-event-emitter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz", + "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==" + }, + "node_modules/@noble/curves": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz", + "integrity": "sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==", + "dependencies": { + "@noble/hashes": "1.3.1" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz", + "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/secp256k1": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz", + "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nomicfoundation/ethereumjs-block": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.2.tgz", + "integrity": "sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q==", + "dependencies": { + "@nomicfoundation/ethereumjs-common": "4.0.2", + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "@nomicfoundation/ethereumjs-trie": "6.0.2", + "@nomicfoundation/ethereumjs-tx": "5.0.2", + "@nomicfoundation/ethereumjs-util": "9.0.2", + "ethereum-cryptography": "0.1.3", + "ethers": "^5.7.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-blockchain": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.2.tgz", + "integrity": "sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w==", + "dependencies": { + "@nomicfoundation/ethereumjs-block": "5.0.2", + "@nomicfoundation/ethereumjs-common": "4.0.2", + "@nomicfoundation/ethereumjs-ethash": "3.0.2", + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "@nomicfoundation/ethereumjs-trie": "6.0.2", + "@nomicfoundation/ethereumjs-tx": "5.0.2", + "@nomicfoundation/ethereumjs-util": "9.0.2", + "abstract-level": "^1.0.3", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "level": "^8.0.0", + "lru-cache": "^5.1.1", + "memory-level": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-common": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.2.tgz", + "integrity": "sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg==", + "dependencies": { + "@nomicfoundation/ethereumjs-util": "9.0.2", + "crc-32": "^1.2.0" + } + }, + "node_modules/@nomicfoundation/ethereumjs-ethash": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.2.tgz", + "integrity": "sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg==", + "dependencies": { + "@nomicfoundation/ethereumjs-block": "5.0.2", + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "@nomicfoundation/ethereumjs-util": "9.0.2", + "abstract-level": "^1.0.3", + "bigint-crypto-utils": "^3.0.23", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-evm": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.2.tgz", + "integrity": "sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ==", + "dependencies": { + "@ethersproject/providers": "^5.7.1", + "@nomicfoundation/ethereumjs-common": "4.0.2", + "@nomicfoundation/ethereumjs-tx": "5.0.2", + "@nomicfoundation/ethereumjs-util": "9.0.2", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-rlp": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.2.tgz", + "integrity": "sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA==", + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-statemanager": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.2.tgz", + "integrity": "sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA==", + "dependencies": { + "@nomicfoundation/ethereumjs-common": "4.0.2", + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "ethers": "^5.7.1", + "js-sdsl": "^4.1.4" + } + }, + "node_modules/@nomicfoundation/ethereumjs-trie": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.2.tgz", + "integrity": "sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ==", + "dependencies": { + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "@nomicfoundation/ethereumjs-util": "9.0.2", + "@types/readable-stream": "^2.3.13", + "ethereum-cryptography": "0.1.3", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-tx": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.2.tgz", + "integrity": "sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g==", + "dependencies": { + "@chainsafe/ssz": "^0.9.2", + "@ethersproject/providers": "^5.7.2", + "@nomicfoundation/ethereumjs-common": "4.0.2", + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "@nomicfoundation/ethereumjs-util": "9.0.2", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-util": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.2.tgz", + "integrity": "sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ==", + "dependencies": { + "@chainsafe/ssz": "^0.10.0", + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-util/node_modules/@chainsafe/persistent-merkle-tree": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz", + "integrity": "sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==", + "dependencies": { + "@chainsafe/as-sha256": "^0.3.1" + } + }, + "node_modules/@nomicfoundation/ethereumjs-util/node_modules/@chainsafe/ssz": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.10.2.tgz", + "integrity": "sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==", + "dependencies": { + "@chainsafe/as-sha256": "^0.3.1", + "@chainsafe/persistent-merkle-tree": "^0.5.0" + } + }, + "node_modules/@nomicfoundation/ethereumjs-vm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.2.tgz", + "integrity": "sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA==", + "dependencies": { + "@nomicfoundation/ethereumjs-block": "5.0.2", + "@nomicfoundation/ethereumjs-blockchain": "7.0.2", + "@nomicfoundation/ethereumjs-common": "4.0.2", + "@nomicfoundation/ethereumjs-evm": "2.0.2", + "@nomicfoundation/ethereumjs-rlp": "5.0.2", + "@nomicfoundation/ethereumjs-statemanager": "2.0.2", + "@nomicfoundation/ethereumjs-trie": "6.0.2", + "@nomicfoundation/ethereumjs-tx": "5.0.2", + "@nomicfoundation/ethereumjs-util": "9.0.2", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "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==", + "dependencies": { + "ethereumjs-util": "^7.1.4" + }, + "peerDependencies": { + "hardhat": "^2.9.5" + } + }, + "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", + "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", + "engines": { + "node": ">= 12" + }, + "optionalDependencies": { + "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", + "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", + "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", + "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-freebsd-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", + "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", + "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", + "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", + "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", + "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", + "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", + "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", + "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "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, + "peerDependencies": { + "ethers": "^5.0.0", + "hardhat": "^2.0.0" + } + }, + "node_modules/@nomiclabs/hardhat-etherscan": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.7.tgz", + "integrity": "sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ==", + "deprecated": "The @nomiclabs/hardhat-etherscan package is deprecated, please use @nomicfoundation/hardhat-verify instead", + "dev": 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-waffle": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.6.tgz", + "integrity": "sha512-+Wz0hwmJGSI17B+BhU/qFRZ1l6/xMW82QGXE/Gi+WTmwgJrQefuBs1lIf7hzQ1hLk6hpkvb/zwcNkpVKRYTQYg==", + "dev": true, + "peerDependencies": { + "@nomiclabs/hardhat-ethers": "^2.0.0", + "@types/sinon-chai": "^3.2.3", + "ethereum-waffle": "*", + "ethers": "^5.0.0", + "hardhat": "^2.0.0" + } + }, + "node_modules/@nomiclabs/hardhat-web3": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-web3/-/hardhat-web3-2.0.0.tgz", + "integrity": "sha512-zt4xN+D+fKl3wW2YlTX3k9APR3XZgPkxJYf36AcliJn3oujnKEVRZaHu0PhgLjO+gR+F/kiYayo9fgd2L8970Q==", + "dev": true, + "dependencies": { + "@types/bignumber.js": "^5.0.0" + }, + "peerDependencies": { + "hardhat": "^2.0.0", + "web3": "^1.0.0-beta.36" + } + }, + "node_modules/@openzeppelin/contract-loader": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz", + "integrity": "sha512-cOFIjBjwbGgZhDZsitNgJl0Ye1rd5yu/Yx5LMgeq3u0ZYzldm4uObzHDFq4gjDdoypvyORjjJa3BlFA7eAnVIg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "fs-extra": "^8.1.0" + } + }, + "node_modules/@openzeppelin/contract-loader/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, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@openzeppelin/contracts": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.3.tgz", + "integrity": "sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg==" + }, + "node_modules/@openzeppelin/contracts-upgradeable": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.3.tgz", + "integrity": "sha512-jjaHAVRMrE4UuZNfDwjlLGDxTHWIOwTJS2ldnc278a0gevfXfPr8hxKEVBGFBE96kl2G3VHDZhUimw/+G3TG2A==" + }, + "node_modules/@openzeppelin/contracts-upgradeable-4.7.3": { + "name": "@openzeppelin/contracts-upgradeable", + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.7.3.tgz", + "integrity": "sha512-+wuegAMaLcZnLCJIvrVUDzA9z/Wp93f0Dla/4jJvIhijRrPabjQbZe6fWiECLaJyfn5ci9fqf9vTw3xpQOad2A==" + }, + "node_modules/@openzeppelin/contracts-v0.7": { + "name": "@openzeppelin/contracts", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.2.tgz", + "integrity": "sha512-z0zMCjyhhp4y7XKAcDAi3Vgms4T2PstwBdahiO0+9NaGICQKjynK3wduSRplTgk4LXmoO1yfDGO5RbjKYxtuxA==" + }, + "node_modules/@openzeppelin/test-helpers": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/@openzeppelin/test-helpers/-/test-helpers-0.5.16.tgz", + "integrity": "sha512-T1EvspSfH1qQO/sgGlskLfYVBbqzJR23SZzYl/6B2JnT4EhThcI85UpvDk0BkLWKaDScQTabGHt4GzHW+3SfZg==", + "dev": true, + "dependencies": { + "@openzeppelin/contract-loader": "^0.6.2", + "@truffle/contract": "^4.0.35", + "ansi-colors": "^3.2.3", + "chai": "^4.2.0", + "chai-bn": "^0.2.1", + "ethjs-abi": "^0.2.1", + "lodash.flatten": "^4.4.0", + "semver": "^5.6.0", + "web3": "^1.2.5", + "web3-utils": "^1.2.5" + } + }, + "node_modules/@openzeppelin/test-helpers/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "peer": true + }, + "node_modules/@openzeppelin/test-helpers/node_modules/chai-bn": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/chai-bn/-/chai-bn-0.2.2.tgz", + "integrity": "sha512-MzjelH0p8vWn65QKmEq/DLBG1Hle4WeyqT79ANhXZhn/UxRWO0OogkAxi5oGGtfzwU9bZR8mvbvYdoqNVWQwFg==", + "dev": true, + "peerDependencies": { + "bn.js": "^4.11.0", + "chai": "^4.0.0" + } + }, + "node_modules/@openzeppelin/test-helpers/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@rari-capital/solmate": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@rari-capital/solmate/-/solmate-6.4.0.tgz", + "integrity": "sha512-BXWIHHbG5Zbgrxi0qVYe0Zs+bfx+XgOciVUACjuIApV0KzC0kY8XdO1higusIei/ZKCC+GUKdcdQZflxYPUTKQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, + "node_modules/@resolver-engine/core": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@resolver-engine/core/-/core-0.3.3.tgz", + "integrity": "sha512-eB8nEbKDJJBi5p5SrvrvILn4a0h42bKtbCTri3ZxCGt6UvoQyp7HnGOfki944bUjBSHKK3RvgfViHn+kqdXtnQ==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "is-url": "^1.2.4", + "request": "^2.85.0" + } + }, + "node_modules/@resolver-engine/core/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@resolver-engine/fs": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.3.3.tgz", + "integrity": "sha512-wQ9RhPUcny02Wm0IuJwYMyAG8fXVeKdmhm8xizNByD4ryZlx6PP6kRen+t/haF43cMfmaV7T3Cx6ChOdHEhFUQ==", + "dev": true, + "dependencies": { + "@resolver-engine/core": "^0.3.3", + "debug": "^3.1.0" + } + }, + "node_modules/@resolver-engine/fs/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@resolver-engine/imports": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.3.3.tgz", + "integrity": "sha512-anHpS4wN4sRMwsAbMXhMfOD/y4a4Oo0Cw/5+rue7hSwGWsDOQaAU1ClK1OxjUC35/peazxEl8JaSRRS+Xb8t3Q==", + "dev": true, + "dependencies": { + "@resolver-engine/core": "^0.3.3", + "debug": "^3.1.0", + "hosted-git-info": "^2.6.0", + "path-browserify": "^1.0.0", + "url": "^0.11.0" + } + }, + "node_modules/@resolver-engine/imports-fs": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.3.3.tgz", + "integrity": "sha512-7Pjg/ZAZtxpeyCFlZR5zqYkz+Wdo84ugB5LApwriT8XFeQoLwGUj4tZFFvvCuxaNCcqZzCYbonJgmGObYBzyCA==", + "dev": true, + "dependencies": { + "@resolver-engine/fs": "^0.3.3", + "@resolver-engine/imports": "^0.3.3", + "debug": "^3.1.0" + } + }, + "node_modules/@resolver-engine/imports-fs/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@resolver-engine/imports/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@scure/base": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.3.tgz", + "integrity": "sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.1.tgz", + "integrity": "sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A==", + "dependencies": { + "@noble/curves": "~1.1.0", + "@noble/hashes": "~1.3.1", + "@scure/base": "~1.1.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", + "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", + "dependencies": { + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "dependencies": { + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "dependencies": { + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "dependencies": { + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "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/@solidity-parser/parser": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", + "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", + "dev": true, + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + } + }, + "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/abi-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-1.0.3.tgz", + "integrity": "sha512-AWhs01HCShaVKjml7Z4AbVREr/u4oiWxCcoR7Cktm0mEvtT04pvnxW5xB/cI4znRkrbPdFQlFt67kgrAjesYkw==", + "dev": true, + "dependencies": { + "change-case": "3.0.2", + "fast-check": "3.1.1", + "web3-utils": "1.10.0" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/abi-utils/node_modules/web3-utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", + "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/blockchain-utils": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.9.tgz", + "integrity": "sha512-RHfumgbIVo68Rv9ofDYfynjnYZIfP/f1vZy4RoqkfYAO+fqfc58PDRzB1WAGq2U6GPuOnipOJxQhnqNnffORZg==", + "dev": true, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/codec": { + "version": "0.17.3", + "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.17.3.tgz", + "integrity": "sha512-Ko/+dsnntNyrJa57jUD9u4qx9nQby+H4GsUO6yjiCPSX0TQnEHK08XWqBSg0WdmCH2+h0y1nr2CXSx8gbZapxg==", + "dev": true, + "dependencies": { + "@truffle/abi-utils": "^1.0.3", + "@truffle/compile-common": "^0.9.8", + "big.js": "^6.0.3", + "bn.js": "^5.1.3", + "cbor": "^5.2.0", + "debug": "^4.3.1", + "lodash": "^4.17.21", + "semver": "^7.5.4", + "utf8": "^3.0.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/codec/node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/@truffle/codec/node_modules/cbor": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", + "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", + "dev": true, + "dependencies": { + "bignumber.js": "^9.0.1", + "nofilter": "^1.0.4" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@truffle/codec/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/@truffle/codec/node_modules/nofilter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", + "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@truffle/codec/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@truffle/codec/node_modules/web3-utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", + "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/codec/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/@truffle/compile-common": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.8.tgz", + "integrity": "sha512-DTpiyo32t/YhLI1spn84D3MHYHrnoVqO+Gp7ZHrYNwDs86mAxtNiH5lsVzSb8cPgiqlvNsRCU9nm9R0YmKMTBQ==", + "dev": true, + "dependencies": { + "@truffle/error": "^0.2.2", + "colors": "1.4.0" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/contract": { + "version": "4.6.31", + "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.6.31.tgz", + "integrity": "sha512-s+oHDpXASnZosiCdzu+X1Tx5mUJUs1L1CYXIcgRmzMghzqJkaUFmR6NpNo7nJYliYbO+O9/aW8oCKqQ7rCHfmQ==", + "dev": true, + "dependencies": { + "@ensdomains/ensjs": "^2.1.0", + "@truffle/blockchain-utils": "^0.1.9", + "@truffle/contract-schema": "^3.4.16", + "@truffle/debug-utils": "^6.0.57", + "@truffle/error": "^0.2.2", + "@truffle/interface-adapter": "^0.5.37", + "bignumber.js": "^7.2.1", + "debug": "^4.3.1", + "ethers": "^4.0.32", + "web3": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/contract-schema": { + "version": "3.4.16", + "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.16.tgz", + "integrity": "sha512-g0WNYR/J327DqtJPI70ubS19K1Fth/1wxt2jFqLsPmz5cGZVjCwuhiie+LfBde4/Mc9QR8G+L3wtmT5cyoBxAg==", + "dev": true, + "dependencies": { + "ajv": "^6.10.0", + "debug": "^4.3.1" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/contract/node_modules/@ethereumjs/common": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", + "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "dev": true, + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.1" + } + }, + "node_modules/@truffle/contract/node_modules/@ethereumjs/tx": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", + "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "^2.5.0", + "ethereumjs-util": "^7.1.2" + } + }, + "node_modules/@truffle/contract/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/@truffle/contract/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==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/@truffle/contract/node_modules/eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/@truffle/contract/node_modules/eth-lib/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dev": true, + "dependencies": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "node_modules/@truffle/contract/node_modules/ethers/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/@truffle/contract/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==", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/web3": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", + "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "web3-bzz": "1.10.0", + "web3-core": "1.10.0", + "web3-eth": "1.10.0", + "web3-eth-personal": "1.10.0", + "web3-net": "1.10.0", + "web3-shh": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-bzz": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", + "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/node": "^12.12.6", + "got": "12.1.0", + "swarm-js": "^0.1.40" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", + "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.1", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-requestmanager": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-core-method": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", + "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", + "dev": true, + "dependencies": { + "@ethersproject/transactions": "^5.6.2", + "web3-core-helpers": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-core-requestmanager": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", + "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", + "dev": true, + "dependencies": { + "util": "^0.12.5", + "web3-core-helpers": "1.10.0", + "web3-providers-http": "1.10.0", + "web3-providers-ipc": "1.10.0", + "web3-providers-ws": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-core-subscriptions": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", + "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", + "dev": true, + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-core/node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/@truffle/contract/node_modules/web3-eth": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", + "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", + "dev": true, + "dependencies": { + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-eth-accounts": "1.10.0", + "web3-eth-contract": "1.10.0", + "web3-eth-ens": "1.10.0", + "web3-eth-iban": "1.10.0", + "web3-eth-personal": "1.10.0", + "web3-net": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-eth-accounts": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", + "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "2.5.0", + "@ethereumjs/tx": "3.3.2", + "eth-lib": "0.2.8", + "ethereumjs-util": "^7.1.5", + "scrypt-js": "^3.0.1", + "uuid": "^9.0.0", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-eth-accounts/node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/web3-eth-accounts/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@truffle/contract/node_modules/web3-eth-contract": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", + "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.1", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-eth-ens": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", + "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", + "dev": true, + "dependencies": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-eth-contract": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-eth-personal": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", + "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", + "dev": true, + "dependencies": { + "@types/node": "^12.12.6", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-net": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-net": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", + "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", + "dev": true, + "dependencies": { + "web3-core": "1.10.0", + "web3-core-method": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-providers-http": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", + "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", + "dev": true, + "dependencies": { + "abortcontroller-polyfill": "^1.7.3", + "cross-fetch": "^3.1.4", + "es6-promise": "^4.2.8", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-providers-ipc": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", + "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", + "dev": true, + "dependencies": { + "oboe": "2.1.5", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-providers-ws": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", + "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", + "dev": true, + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.0", + "websocket": "^1.0.32" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-shh": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", + "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "web3-core": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-net": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/web3-utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", + "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/debug-utils": { + "version": "6.0.57", + "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.57.tgz", + "integrity": "sha512-Q6oI7zLaeNLB69ixjwZk2UZEWBY6b2OD1sjLMGDKBGR7GaHYiw96GLR2PFgPH1uwEeLmV4N78LYaQCrDsHbNeA==", + "dev": true, + "dependencies": { + "@truffle/codec": "^0.17.3", + "@trufflesuite/chromafi": "^3.0.0", + "bn.js": "^5.1.3", + "chalk": "^2.4.2", + "debug": "^4.3.1", + "highlightjs-solidity": "^2.0.6" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/error": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.2.tgz", + "integrity": "sha512-TqbzJ0O8DHh34cu8gDujnYl4dUl6o2DE4PR6iokbybvnIm/L2xl6+Gv1VC+YJS45xfH83Yo3/Zyg/9Oq8/xZWg==", + "dev": true, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/hdwallet": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@truffle/hdwallet/-/hdwallet-0.1.4.tgz", + "integrity": "sha512-D3SN0iw3sMWUXjWAedP6RJtopo9qQXYi80inzbtcsoso4VhxFxCwFvCErCl4b27AEJ9pkAtgnxEFRaSKdMmi1Q==", + "dependencies": { + "ethereum-cryptography": "1.1.2", + "keccak": "3.0.2", + "secp256k1": "4.0.3" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/hdwallet-provider": { + "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==", + "dependencies": { + "@ethereumjs/common": "^2.4.0", + "@ethereumjs/tx": "^3.3.0", + "@metamask/eth-sig-util": "4.0.1", + "@truffle/hdwallet": "^0.1.4", + "@types/ethereum-protocol": "^1.0.0", + "@types/web3": "1.0.20", + "@types/web3-provider-engine": "^14.0.0", + "ethereum-cryptography": "1.1.2", + "ethereum-protocol": "^1.0.1", + "ethereumjs-util": "^7.1.5", + "web3": "1.10.0", + "web3-provider-engine": "16.0.3" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/@ethereumjs/common": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", + "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.1" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/@ethereumjs/tx": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", + "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", + "dependencies": { + "@ethereumjs/common": "^2.5.0", + "ethereumjs-util": "^7.1.2" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/@noble/hashes": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", + "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@truffle/hdwallet-provider/node_modules/@scure/bip32": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz", + "integrity": "sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.1.1", + "@noble/secp256k1": "~1.6.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/@scure/bip39": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", + "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.1.1", + "@scure/base": "~1.1.0" + } + }, + "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/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "engines": { + "node": "*" + } + }, + "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/eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/eth-lib/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/@truffle/hdwallet-provider/node_modules/ethereum-cryptography": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz", + "integrity": "sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ==", + "dependencies": { + "@noble/hashes": "1.1.2", + "@noble/secp256k1": "1.6.3", + "@scure/bip32": "1.1.0", + "@scure/bip39": "1.1.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/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==", + "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/@truffle/hdwallet-provider/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", + "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", + "hasInstallScript": true, + "dependencies": { + "web3-bzz": "1.10.0", + "web3-core": "1.10.0", + "web3-eth": "1.10.0", + "web3-eth-personal": "1.10.0", + "web3-net": "1.10.0", + "web3-shh": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-bzz": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", + "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", + "hasInstallScript": true, + "dependencies": { + "@types/node": "^12.12.6", + "got": "12.1.0", + "swarm-js": "^0.1.40" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", + "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", + "dependencies": { + "@types/bn.js": "^5.1.1", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-requestmanager": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-core-method": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", + "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", + "dependencies": { + "@ethersproject/transactions": "^5.6.2", + "web3-core-helpers": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-core-requestmanager": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", + "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", + "dependencies": { + "util": "^0.12.5", + "web3-core-helpers": "1.10.0", + "web3-providers-http": "1.10.0", + "web3-providers-ipc": "1.10.0", + "web3-providers-ws": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-core-subscriptions": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", + "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", + "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", + "dependencies": { + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-eth-accounts": "1.10.0", + "web3-eth-contract": "1.10.0", + "web3-eth-ens": "1.10.0", + "web3-eth-iban": "1.10.0", + "web3-eth-personal": "1.10.0", + "web3-net": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth-accounts": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", + "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", + "dependencies": { + "@ethereumjs/common": "2.5.0", + "@ethereumjs/tx": "3.3.2", + "eth-lib": "0.2.8", + "ethereumjs-util": "^7.1.5", + "scrypt-js": "^3.0.1", + "uuid": "^9.0.0", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth-contract": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", + "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", + "dependencies": { + "@types/bn.js": "^5.1.1", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth-ens": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", + "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", + "dependencies": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-eth-contract": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth-personal": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", + "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", + "dependencies": { + "@types/node": "^12.12.6", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-net": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-net": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", + "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", + "dependencies": { + "web3-core": "1.10.0", + "web3-core-method": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-providers-http": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", + "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", + "dependencies": { + "abortcontroller-polyfill": "^1.7.3", + "cross-fetch": "^3.1.4", + "es6-promise": "^4.2.8", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-providers-ipc": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", + "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", + "dependencies": { + "oboe": "2.1.5", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-providers-ws": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", + "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.0", + "websocket": "^1.0.32" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-shh": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", + "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", + "hasInstallScript": true, + "dependencies": { + "web3-core": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-net": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet-provider/node_modules/web3-utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", + "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/hdwallet/node_modules/@noble/hashes": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", + "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@truffle/hdwallet/node_modules/@scure/bip32": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz", + "integrity": "sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.1.1", + "@noble/secp256k1": "~1.6.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@truffle/hdwallet/node_modules/@scure/bip39": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", + "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.1.1", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@truffle/hdwallet/node_modules/ethereum-cryptography": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz", + "integrity": "sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ==", + "dependencies": { + "@noble/hashes": "1.1.2", + "@noble/secp256k1": "1.6.3", + "@scure/bip32": "1.1.0", + "@scure/bip39": "1.1.0" + } + }, + "node_modules/@truffle/hdwallet/node_modules/keccak": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", + "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@truffle/interface-adapter": { + "version": "0.5.37", + "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.37.tgz", + "integrity": "sha512-lPH9MDgU+7sNDlJSClwyOwPCfuOimqsCx0HfGkznL3mcFRymc1pukAR1k17zn7ErHqBwJjiKAZ6Ri72KkS+IWw==", + "dev": true, + "dependencies": { + "bn.js": "^5.1.3", + "ethers": "^4.0.32", + "web3": "1.10.0" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/@ethereumjs/common": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", + "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "dev": true, + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.1" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/@ethereumjs/tx": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", + "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "^2.5.0", + "ethereumjs-util": "^7.1.2" + } + }, + "node_modules/@truffle/interface-adapter/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/@truffle/interface-adapter/node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/@truffle/interface-adapter/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==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/eth-lib/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dev": true, + "dependencies": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/ethers/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/@truffle/interface-adapter/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==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/web3": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", + "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "web3-bzz": "1.10.0", + "web3-core": "1.10.0", + "web3-eth": "1.10.0", + "web3-eth-personal": "1.10.0", + "web3-net": "1.10.0", + "web3-shh": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-bzz": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", + "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/node": "^12.12.6", + "got": "12.1.0", + "swarm-js": "^0.1.40" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", + "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.1", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-requestmanager": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-core-method": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", + "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", + "dev": true, + "dependencies": { + "@ethersproject/transactions": "^5.6.2", + "web3-core-helpers": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-core-requestmanager": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", + "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", + "dev": true, + "dependencies": { + "util": "^0.12.5", + "web3-core-helpers": "1.10.0", + "web3-providers-http": "1.10.0", + "web3-providers-ipc": "1.10.0", + "web3-providers-ws": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-core-subscriptions": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", + "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", + "dev": true, + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-eth": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", + "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", + "dev": true, + "dependencies": { + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-eth-accounts": "1.10.0", + "web3-eth-contract": "1.10.0", + "web3-eth-ens": "1.10.0", + "web3-eth-iban": "1.10.0", + "web3-eth-personal": "1.10.0", + "web3-net": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", + "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "2.5.0", + "@ethereumjs/tx": "3.3.2", + "eth-lib": "0.2.8", + "ethereumjs-util": "^7.1.5", + "scrypt-js": "^3.0.1", + "uuid": "^9.0.0", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts/node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-contract": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", + "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.1", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-ens": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", + "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", + "dev": true, + "dependencies": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-eth-contract": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-eth-personal": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", + "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", + "dev": true, + "dependencies": { + "@types/node": "^12.12.6", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-net": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-net": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", + "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", + "dev": true, + "dependencies": { + "web3-core": "1.10.0", + "web3-core-method": "1.10.0", + "web3-utils": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-providers-http": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", + "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", + "dev": true, + "dependencies": { + "abortcontroller-polyfill": "^1.7.3", + "cross-fetch": "^3.1.4", + "es6-promise": "^4.2.8", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-providers-ipc": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", + "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", + "dev": true, + "dependencies": { + "oboe": "2.1.5", + "web3-core-helpers": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-providers-ws": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", + "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", + "dev": true, + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.0", + "websocket": "^1.0.32" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-shh": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", + "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "web3-core": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-net": "1.10.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/web3-utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", + "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@trufflesuite/bigint-buffer": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.9.tgz", + "integrity": "sha512-bdM5cEGCOhDSwminryHJbRmXc1x7dPKg6Pqns3qyTwFlxsqUgxE29lsERS3PlIW1HTjoIGMUqsk1zQQwST1Yxw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "node-gyp-build": "4.3.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@trufflesuite/chromafi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-3.0.0.tgz", + "integrity": "sha512-oqWcOqn8nT1bwlPPfidfzS55vqcIDdpfzo3HbU9EnUmcSTX+I8z0UyUFI3tZQjByVJulbzxHxUGS3ZJPwK/GPQ==", + "dev": true, + "dependencies": { + "camelcase": "^4.1.0", + "chalk": "^2.3.2", + "cheerio": "^1.0.0-rc.2", + "detect-indent": "^5.0.0", + "highlight.js": "^10.4.1", + "lodash.merge": "^4.6.2", + "strip-ansi": "^4.0.0", + "strip-indent": "^2.0.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "devOptional": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "devOptional": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "devOptional": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "devOptional": true + }, + "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==", + "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" + } + }, + "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==", + "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", + "hardhat": "^2.9.9", + "typechain": "^8.1.1" + } + }, + "node_modules/@typechain/hardhat/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "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.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@types/abstract-leveldown": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.3.tgz", + "integrity": "sha512-YAdL8tIYbiKoFjAf/0Ir3mvRJ/iFvBP/FK0I8Xa5rGWgVcq0xWOEInzlJfs6TIPWFweEOTKgNSBdxneUcHRvaw==", + "dev": true + }, + "node_modules/@types/bignumber.js": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/bignumber.js/-/bignumber.js-5.0.0.tgz", + "integrity": "sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA==", + "deprecated": "This is a stub types definition for bignumber.js (https://github.com/MikeMcl/bignumber.js/). bignumber.js provides its own type definitions, so you don't need @types/bignumber.js installed!", + "dev": true, + "dependencies": { + "bignumber.js": "*" + } + }, + "node_modules/@types/bn.js": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.2.tgz", + "integrity": "sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/chai": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==", + "dev": true + }, + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ethereum-protocol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/ethereum-protocol/-/ethereum-protocol-1.0.3.tgz", + "integrity": "sha512-peaCYb+wAT3Gnttt8Ep6+b3ciVK+mWX5wyVnJiDtmWXU1c9RXi5qDxEjGyZrjU/9EYdXPd3hMiXXBjDDPu96yQ==", + "dependencies": { + "bignumber.js": "7.2.1" + } + }, + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/hdkey": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@types/hdkey/-/hdkey-0.7.1.tgz", + "integrity": "sha512-4Kkr06hq+R8a9EzVNqXGOY2x1xA7dhY6qlp6OvaZ+IJy1BCca1Cv126RD9X7CMJoXoLo8WvAizy8gQHpqW6K0Q==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz", + "integrity": "sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", + "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/level-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/level-errors/-/level-errors-3.0.0.tgz", + "integrity": "sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ==", + "dev": true + }, + "node_modules/@types/levelup": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@types/levelup/-/levelup-4.3.3.tgz", + "integrity": "sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA==", + "dev": true, + "dependencies": { + "@types/abstract-leveldown": "*", + "@types/level-errors": "*", + "@types/node": "*" + } + }, + "node_modules/@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==" + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true + }, + "node_modules/@types/mkdirp": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", + "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/mocha": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", + "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.18.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.0.tgz", + "integrity": "sha512-3xA4X31gHT1F1l38ATDIL9GpRLdwVhnEFC8Uikv5ZLlXATwrCYyPq7ZWHxzxc3J/30SUiwiYT+bQe0/XvKlWbw==" + }, + "node_modules/@types/node-fetch": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.6.tgz", + "integrity": "sha512-95X8guJYhfqiuVVhRFxVQcf4hW/2bCuoPwDasMf/531STFoNoWTT7YDnWdXHEZKqAGUigmpG31r2FE70LwnzJw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/prettier": { + "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 + }, + "node_modules/@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + }, + "node_modules/@types/qs": { + "version": "6.9.8", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", + "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.2.47", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.47.tgz", + "integrity": "sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/readable-stream": { + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz", + "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==", + "dependencies": { + "@types/node": "*", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/@types/readable-stream/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/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + }, + "node_modules/@types/secp256k1": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.4.tgz", + "integrity": "sha512-oN0PFsYxDZnX/qSJ5S5OwaEDTYfekhvaM5vqui2bu1AA39pKofmgL104Q29KiOXizXS2yLjSzc5YdTyMKdcy4A==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", + "dev": true + }, + "node_modules/@types/sinon": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.3.tgz", + "integrity": "sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==", + "dev": true, + "peer": true, + "dependencies": { + "@types/sinonjs__fake-timers": "*" + } + }, + "node_modules/@types/sinon-chai": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.12.tgz", + "integrity": "sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ==", + "dev": true, + "peer": true, + "dependencies": { + "@types/chai": "*", + "@types/sinon": "*" + } + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz", + "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==", + "dev": true, + "peer": true + }, + "node_modules/@types/solidity-parser-antlr": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@types/solidity-parser-antlr/-/solidity-parser-antlr-0.2.3.tgz", + "integrity": "sha512-FoSyZT+1TTaofbEtGW1oC9wHND1YshvVeHerME/Jh6gIdHbBAWFW8A97YYqO/dpHcFjIwEPEepX0Efl2ckJgwA==" + }, + "node_modules/@types/underscore": { + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/@types/underscore/-/underscore-1.11.9.tgz", + "integrity": "sha512-M63wKUdsjDFUfyFt1TCUZHGFk9KDAa5JP0adNUErbm0U45Lr06HtANdYRP+GyleEopEoZ4UyBcdAC5TnW4Uz2w==" + }, + "node_modules/@types/web3": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/@types/web3/-/web3-1.0.20.tgz", + "integrity": "sha512-KTDlFuYjzCUlBDGt35Ir5QRtyV9klF84MMKUsEJK10sTWga/71V+8VYLT7yysjuBjaOx2uFYtIWNGoz3yrNDlg==", + "dependencies": { + "@types/bn.js": "*", + "@types/underscore": "*" + } + }, + "node_modules/@types/web3-provider-engine": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@types/web3-provider-engine/-/web3-provider-engine-14.0.2.tgz", + "integrity": "sha512-i+vgIh873kDu6MnYZkIqrho4JCan1c8TcPnYY6te2lq1ODD4SPA8JxFCyQjK+vwbLMr5F3N/I37AfK/wxiyuEA==", + "dependencies": { + "@types/ethereum-protocol": "*" + } + }, + "node_modules/@types/yargs": { + "version": "11.1.8", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-11.1.8.tgz", + "integrity": "sha512-49Pmk3GBUOrs/ZKJodGMJeEeiulv2VdfAYpGgkTCSXpNWx7KCX36+PbrkItwzrjTDHO2QoEZDpbhFoMN1lxe9A==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "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==", + "dev": true + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==" + }, + "node_modules/abortcontroller-polyfill": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", + "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==" + }, + "node_modules/abstract-level": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", + "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", + "dependencies": { + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/abstract-level/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "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.2.1" + } + }, + "node_modules/abstract-leveldown": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", + "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "immediate": "^3.2.3", + "level-concat-iterator": "~2.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/abstract-leveldown/node_modules/level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "dev": true, + "dependencies": { + "xtend": "^4.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "devOptional": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "devOptional": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "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==", + "optional": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "devOptional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/antlr4": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.13.1.tgz", + "integrity": "sha512-kiXTspaRYvnIArgE97z5YVVf/cDVQABr3abFRR6mE7yesLMkgu4ujuyV/sgxafQ8wgve0DJQUJ38Z8tkgA2izA==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/antlr4ts": { + "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 + }, + "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==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "optional": true + }, + "node_modules/are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/are-we-there-yet/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "optional": true + }, + "node_modules/are-we-there-yet/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==", + "optional": 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" + } + }, + "node_modules/are-we-there-yet/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==", + "optional": true + }, + "node_modules/are-we-there-yet/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==", + "optional": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "devOptional": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", + "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "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==", + "engines": { + "node": "*" + } + }, + "node_modules/ast-parents": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz", + "integrity": "sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==", + "dev": true + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-eventemitter": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", + "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", + "dependencies": { + "async": "^2.4.0" + } + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "node_modules/async-mutex": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz", + "integrity": "sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/async-mutex/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "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, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" + }, + "node_modules/babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "dependencies": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "node_modules/babel-code-frame/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==" + }, + "node_modules/babel-code-frame/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "node_modules/babel-core/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/babel-core/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/babel-core/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/babel-core/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/babel-core/node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-core/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dependencies": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "node_modules/babel-generator/node_modules/detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-generator/node_modules/jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/babel-generator/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q==", + "dependencies": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ==", + "dependencies": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA==", + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ==", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q==", + "dependencies": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng==", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw==", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA==", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg==", + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha512-RYqaPD0mQyQIFRu7Ho5wE2yvA/5jxqCIj/Lv4BXNq23mHYu/vxikOy2JueLiBxQknwapwrJeNCesvY0ZcfnlHg==", + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw==", + "dependencies": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA==", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz", + "integrity": "sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.2", + "core-js-compat": "^3.32.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw==" + }, + "node_modules/babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ==" + }, + "node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ==" + }, + "node_modules/babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw==", + "dependencies": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg==", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A==", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw==", + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag==", + "dependencies": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw==", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA==", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug==", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw==", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg==", + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ==", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA==", + "dependencies": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dependencies": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg==", + "dependencies": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw==", + "dependencies": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA==", + "dependencies": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ==", + "dependencies": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw==", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg==", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ==", + "dependencies": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg==", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw==", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ==", + "dependencies": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "node_modules/babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ==", + "dependencies": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg==", + "dependencies": { + "regenerator-transform": "^0.10.0" + } + }, + "node_modules/babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw==", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "dependencies": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "node_modules/babel-preset-env/node_modules/browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "dependencies": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/babel-preset-env/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==", + "dependencies": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "node_modules/babel-register/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-register/node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-runtime/node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "node_modules/babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-traverse/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/babel-traverse/node_modules/globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-traverse/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", + "dependencies": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "node_modules/babel-types/node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babelify": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", + "integrity": "sha512-vID8Fz6pPN5pJMdlUnNFSfrlcx5MUule4k9aKs/zbZPyXxMTcRrB0M4Tarw22L8afr8eYSWxDPYCob3TdrqtlA==", + "dependencies": { + "babel-core": "^6.0.14", + "object-assign": "^4.0.0" + } + }, + "node_modules/babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "bin": { + "babylon": "bin/babylon.js" + } + }, + "node_modules/backoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", + "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", + "dependencies": { + "precond": "0.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "node_modules/big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/big.js": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", + "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bigjs" + } + }, + "node_modules/bigint-crypto-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz", + "integrity": "sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/bignumber.js": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", + "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", + "engines": { + "node": "*" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "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==", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bip39": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz", + "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==", + "dev": true, + "dependencies": { + "@types/node": "11.11.6", + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1" + } + }, + "node_modules/bip39/node_modules/@types/node": { + "version": "11.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", + "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==", + "dev": true + }, + "node_modules/bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "optional": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "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/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browser-level": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", + "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", + "dependencies": { + "abstract-level": "^1.0.2", + "catering": "^2.1.1", + "module-error": "^1.0.2", + "run-parallel-limit": "^1.1.0" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-aes/node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "node_modules/browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "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/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-reverse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz", + "integrity": "sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==" + }, + "node_modules/buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==" + }, + "node_modules/buffer-xor": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", + "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.1" + } + }, + "node_modules/bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/bufio": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bufio/-/bufio-1.2.1.tgz", + "integrity": "sha512-9oR3zNdupcg/Ge2sSHQF3GX+kmvL/fTPvD0nd5AGLq8SjUYnTz+SlFjK/GXidndbZtIj+pVKXiWeR9w6e9wKCA==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "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": ">=10" + } + }, + "node_modules/builtins/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "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/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "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": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", + "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", + "engines": { + "node": ">=10.6.0" + } + }, + "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/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/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/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001576", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", + "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/case": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz", + "integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/catering": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", + "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cbor": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", + "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", + "dev": true, + "dependencies": { + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=12.19" + } + }, + "node_modules/chai": { + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.8.tgz", + "integrity": "sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dependencies": { + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 5" + } + }, + "node_modules/chai-bignumber": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/chai-bignumber/-/chai-bignumber-3.1.0.tgz", + "integrity": "sha512-omxEc80jAU+pZwRmoWr3aEzeLad4JW3iBhLRQlgISvghBdIxrMT7mVAGsDz4WSyCkKowENshH2j9OABAhld7QQ==" + }, + "node_modules/chainlink": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/chainlink/-/chainlink-0.8.2.tgz", + "integrity": "sha512-9gaLoChlo1A72ygESilIheULjHLpZPtie7451GF89ywtdn6V1NDVIjktgsKOFDIjr7jHsmyOwKBYv4VVNvtn0Q==", + "dependencies": { + "@chainlink/test-helpers": "0.0.1", + "cbor": "^5.0.1", + "ethers": "^4.0.41", + "link_token": "^1.0.6", + "openzeppelin-solidity": "^1.12.0" + } + }, + "node_modules/chainlink/node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "engines": { + "node": "*" + } + }, + "node_modules/chainlink/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/chainlink/node_modules/cbor": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", + "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", + "dependencies": { + "bignumber.js": "^9.0.1", + "nofilter": "^1.0.4" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/chainlink/node_modules/ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dependencies": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "node_modules/chainlink/node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/chainlink/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==" + }, + "node_modules/chainlink/node_modules/nofilter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", + "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/chainlink/node_modules/scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" + }, + "node_modules/chainlink/node_modules/setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" + }, + "node_modules/chainlink/node_modules/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details." + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/change-case": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz", + "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==", + "dev": true, + "dependencies": { + "camel-case": "^3.0.0", + "constant-case": "^2.0.0", + "dot-case": "^2.1.0", + "header-case": "^1.0.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "no-case": "^2.3.2", + "param-case": "^2.1.0", + "pascal-case": "^2.0.0", + "path-case": "^2.1.0", + "sentence-case": "^2.1.0", + "snake-case": "^2.1.0", + "swap-case": "^1.1.0", + "title-case": "^2.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.0" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "engines": { + "node": "*" + } + }, + "node_modules/checkpoint-store": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", + "integrity": "sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg==", + "dependencies": { + "functional-red-black-tree": "^1.0.1" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dev": true, + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "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" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/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/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "node_modules/cids": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", + "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", + "deprecated": "This module has been superseded by the multiformats module", + "dependencies": { + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "^1.0.0", + "multihashes": "~0.4.15" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/cids/node_modules/multicodec": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", + "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", + "deprecated": "This module has been superseded by the multiformats module", + "dependencies": { + "buffer": "^5.6.0", + "varint": "^5.0.0" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/class-is": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", + "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" + }, + "node_modules/classic-level": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz", + "integrity": "sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==", + "hasInstallScript": true, + "dependencies": { + "abstract-level": "^1.0.2", + "catering": "^2.1.0", + "module-error": "^1.0.1", + "napi-macros": "^2.2.2", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/coinstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/coinstring/-/coinstring-2.3.1.tgz", + "integrity": "sha512-gLvivqtntteG2kOd7jpVQzKbIirJP7ijDEU+boVZTLj6V4tjVLBlUXGlijhBOcoWM7S/epqHVikQCD6x2J+E/Q==", + "dependencies": { + "bs58": "^2.0.1", + "create-hash": "^1.1.1" + } + }, + "node_modules/coinstring/node_modules/bs58": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-2.0.1.tgz", + "integrity": "sha512-77ld2g7Hn1GyIUpuUVfbZdhO1q9R9gv/GYam4HAeAW/tzhQDrbJ2ZttN1tIe4hmKrWFE+oUtAhBNx/EA5SVdTg==" + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dev": true, + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "dev": true, + "dependencies": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/concat-stream/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==", + "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" + } + }, + "node_modules/concat-stream/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/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==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "optional": true + }, + "node_modules/constant-case": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", + "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==", + "dev": true, + "dependencies": { + "snake-case": "^2.1.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-hash": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", + "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", + "dependencies": { + "cids": "^0.7.1", + "multicodec": "^0.5.5", + "multihashes": "^0.4.15" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "peer": true + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true + }, + "node_modules/core-js-compat": { + "version": "3.32.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz", + "integrity": "sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==", + "dependencies": { + "browserslist": "^4.21.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.32.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.32.2.tgz", + "integrity": "sha512-Y2rxThOuNywTjnX/PgA5vWM6CZ9QB9sz9oGeCixV8MqXZO70z/5SHzf9EeBrEBK0PN36DnEBBu9O/aGWzKuMZQ==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "devOptional": true + }, + "node_modules/cross-fetch": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", + "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==", + "dependencies": { + "node-fetch": "^2.6.7", + "whatwg-fetch": "^2.0.4" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/crypto-addr-codec": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.8.tgz", + "integrity": "sha512-GqAK90iLLgP3FvhNmHbpT3wR6dEdaM8hZyZtLX29SPardh3OA13RFLHDR6sntGCgRWOfiHqW6sIyohpNqOtV/g==", + "dev": true, + "dependencies": { + "base-x": "^3.0.8", + "big-integer": "1.6.36", + "blakejs": "^1.1.0", + "bs58": "^4.0.1", + "ripemd160-min": "0.0.6", + "safe-buffer": "^5.2.0", + "sha3": "^2.1.1" + } + }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/death": { + "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 + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "engines": { + "node": ">=0.10" + } + }, + "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/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": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-equal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", + "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", + "dependencies": { + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.5.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "devOptional": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "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==" + }, + "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_modules/deferred-leveldown": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", + "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", + "dev": true, + "dependencies": { + "abstract-leveldown": "~6.2.1", + "inherits": "^2.0.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deferred-leveldown/node_modules/abstract-leveldown": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", + "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "immediate": "^3.2.3", + "level-concat-iterator": "~2.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deferred-leveldown/node_modules/level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "dev": true, + "dependencies": { + "xtend": "^4.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "optional": true + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-indent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/detect-node": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", + "integrity": "sha512-64uDTOK+fKEa6XoSbkkDoeAX8Ep1XhwxwZtL1aw1En5p5UOK/ekJoFqd5BB1o+uOvF1iHVv6qDUxdOQ/VgWEQg==" + }, + "node_modules/detect-port": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", + "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "dev": true, + "dependencies": { + "address": "^1.0.1", + "debug": "4" + }, + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" + } + }, + "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==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/difflib": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", + "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", + "dev": true, + "dependencies": { + "heap": ">= 0.2.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dirty-chai": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/dirty-chai/-/dirty-chai-2.0.1.tgz", + "integrity": "sha512-ys79pWKvDMowIDEPC6Fig8d5THiC0DJ2gmTeGzVAoEH18J8OzLud0Jh7I9IWg3NSk8x2UocznUuFmfHCXYZx9w==", + "peerDependencies": { + "chai": ">=2.2.1 <5" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, + "node_modules/dotignore": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", + "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", + "dependencies": { + "minimatch": "^3.0.4" + }, + "bin": { + "ignored": "bin/ignored" + } + }, + "node_modules/drbg.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", + "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==", + "dependencies": { + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.628", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.628.tgz", + "integrity": "sha512-2k7t5PHvLsufpP6Zwk0nof62yLOsCf032wZx7/q0mv8gwlXjhcxI3lz6f0jBr0GrnWKcm3burXzI3t5IrcdUxw==" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/emittery": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz", + "integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding-down": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", + "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", + "dev": true, + "dependencies": { + "abstract-leveldown": "^6.2.1", + "inherits": "^2.0.3", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/enquirer/node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/enquirer/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/enquirer/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", + "dependencies": { + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.12.0" + }, + "optionalDependencies": { + "source-map": "~0.2.0" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", + "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.50.0", + "@humanwhocodes/config-array": "^0.11.11", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "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" + } + ], + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-es-x": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.2.0.tgz", + "integrity": "sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.6.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.8.0", + "has": "^1.0.3", + "is-core-module": "^2.13.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", + "object.values": "^1.1.6", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-n": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.1.0.tgz", + "integrity": "sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "builtins": "^5.0.1", + "eslint-plugin-es-x": "^7.1.0", + "get-tsconfig": "^4.7.0", + "ignore": "^5.2.4", + "is-core-module": "^2.12.1", + "minimatch": "^3.1.2", + "resolve": "^1.22.2", + "semver": "^7.5.3" + }, + "engines": { + "node": ">=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-n/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/eslint-plugin-n/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-n/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/eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "dev": true, + "dependencies": { + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/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==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eth-block-tracker": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", + "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", + "dependencies": { + "@babel/plugin-transform-runtime": "^7.5.5", + "@babel/runtime": "^7.5.5", + "eth-query": "^2.1.0", + "json-rpc-random-id": "^1.0.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/eth-block-tracker/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "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==" + }, + "node_modules/eth-gas-reporter": { + "version": "0.2.25", + "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.25.tgz", + "integrity": "sha512-1fRgyE4xUB8SoqLgN3eDfpDfwEfRxh2Sz1b7wzFbyQA+9TekMmvSjjoRu9SKcSVyK+vLkLIsVbJDsTWjw195OQ==", + "dev": true, + "dependencies": { + "@ethersproject/abi": "^5.0.0-beta.146", + "@solidity-parser/parser": "^0.14.0", + "cli-table3": "^0.5.0", + "colors": "1.4.0", + "ethereum-cryptography": "^1.0.3", + "ethers": "^4.0.40", + "fs-readdir-recursive": "^1.1.0", + "lodash": "^4.17.14", + "markdown-table": "^1.1.3", + "mocha": "^7.1.1", + "req-cwd": "^2.0.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.5", + "sha1": "^1.1.1", + "sync-request": "^6.0.0" + }, + "peerDependencies": { + "@codechecks/client": "^0.1.0" + }, + "peerDependenciesMeta": { + "@codechecks/client": { + "optional": true + } + } + }, + "node_modules/eth-gas-reporter/node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/eth-gas-reporter/node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/eth-gas-reporter/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/eth-gas-reporter/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/eth-gas-reporter/node_modules/ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/eth-gas-reporter/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/eth-gas-reporter/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.1" + } + }, + "node_modules/eth-gas-reporter/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eth-gas-reporter/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/eth-gas-reporter/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/eth-gas-reporter/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eth-gas-reporter/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/eth-gas-reporter/node_modules/ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dev": true, + "dependencies": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/flat": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", + "dev": true, + "dependencies": { + "is-buffer": "~2.0.3" + }, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/eth-gas-reporter/node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "deprecated": "\"Please update to latest v2.3 or v2.2\"", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eth-gas-reporter/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/eth-gas-reporter/node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/eth-gas-reporter/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==", + "dev": true + }, + "node_modules/eth-gas-reporter/node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eth-gas-reporter/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eth-gas-reporter/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eth-gas-reporter/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/eth-gas-reporter/node_modules/mocha": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", + "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", + "dev": true, + "dependencies": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.5", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/eth-gas-reporter/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/eth-gas-reporter/node_modules/object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eth-gas-reporter/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eth-gas-reporter/node_modules/readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eth-gas-reporter/node_modules/scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", + "dev": true + }, + "node_modules/eth-gas-reporter/node_modules/setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", + "dev": true + }, + "node_modules/eth-gas-reporter/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true + }, + "node_modules/eth-gas-reporter/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/eth-gas-reporter/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-gas-reporter/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/eth-gas-reporter/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/eth-gas-reporter/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "dependencies": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eth-json-rpc-filters": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz", + "integrity": "sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw==", + "dependencies": { + "@metamask/safe-event-emitter": "^2.0.0", + "async-mutex": "^0.2.6", + "eth-json-rpc-middleware": "^6.0.0", + "eth-query": "^2.1.2", + "json-rpc-engine": "^6.1.0", + "pify": "^5.0.0" + } + }, + "node_modules/eth-json-rpc-filters/node_modules/pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eth-json-rpc-infura": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-5.1.0.tgz", + "integrity": "sha512-THzLye3PHUSGn1EXMhg6WTLW9uim7LQZKeKaeYsS9+wOBcamRiCQVGHa6D2/4P0oS0vSaxsBnU/J6qvn0MPdow==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "eth-json-rpc-middleware": "^6.0.0", + "eth-rpc-errors": "^3.0.0", + "json-rpc-engine": "^5.3.0", + "node-fetch": "^2.6.0" + } + }, + "node_modules/eth-json-rpc-infura/node_modules/json-rpc-engine": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", + "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", + "dependencies": { + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/eth-json-rpc-middleware": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz", + "integrity": "sha512-qqBfLU2Uq1Ou15Wox1s+NX05S9OcAEL4JZ04VZox2NS0U+RtCMjSxzXhLFWekdShUPZ+P8ax3zCO2xcPrp6XJQ==", + "dependencies": { + "btoa": "^1.2.1", + "clone": "^2.1.1", + "eth-query": "^2.1.2", + "eth-rpc-errors": "^3.0.0", + "eth-sig-util": "^1.4.2", + "ethereumjs-util": "^5.1.2", + "json-rpc-engine": "^5.3.0", + "json-stable-stringify": "^1.0.1", + "node-fetch": "^2.6.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/eth-json-rpc-middleware/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/eth-json-rpc-middleware/node_modules/json-rpc-engine": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", + "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", + "dependencies": { + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/eth-json-rpc-middleware/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/eth-lib": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", + "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/eth-lib/node_modules/bn.js": { + "version": "4.12.0", + "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", + "integrity": "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==", + "dependencies": { + "json-rpc-random-id": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "node_modules/eth-rpc-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", + "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", + "dependencies": { + "fast-safe-stringify": "^2.0.6" + } + }, + "node_modules/eth-sig-util": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", + "integrity": "sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw==", + "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", + "dependencies": { + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-util": "^5.1.1" + } + }, + "node_modules/eth-sig-util/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/eth-sig-util/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/eth-tx-summary": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz", + "integrity": "sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg==", + "dependencies": { + "async": "^2.1.2", + "clone": "^2.0.0", + "concat-stream": "^1.5.1", + "end-of-stream": "^1.1.0", + "eth-query": "^2.0.2", + "ethereumjs-block": "^1.4.1", + "ethereumjs-tx": "^1.1.1", + "ethereumjs-util": "^5.0.1", + "ethereumjs-vm": "^2.6.0", + "through2": "^2.0.3" + } + }, + "node_modules/eth-tx-summary/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/eth-tx-summary/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereum-bloom-filters": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", + "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "dependencies": { + "js-sha3": "^0.8.0" + } + }, + "node_modules/ethereum-common": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" + }, + "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==", + "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/ethereum-protocol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz", + "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg==" + }, + "node_modules/ethereum-types": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/ethereum-types/-/ethereum-types-3.7.1.tgz", + "integrity": "sha512-EBQwTGnGZQ9oHK7Za3DFEOxiElksRCoZECkk418vHiE2d59lLSejDZ1hzRVphtFjAu5YqONz4/XuAYdMBg+gWA==", + "dependencies": { + "@types/node": "12.12.54", + "bignumber.js": "~9.0.2" + }, + "engines": { + "node": ">=6.12" + } + }, + "node_modules/ethereum-types/node_modules/@types/node": { + "version": "12.12.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", + "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" + }, + "node_modules/ethereum-types/node_modules/bignumber.js": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", + "engines": { + "node": "*" + } + }, + "node_modules/ethereum-waffle": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/ethereum-waffle/-/ethereum-waffle-4.0.10.tgz", + "integrity": "sha512-iw9z1otq7qNkGDNcMoeNeLIATF9yKl1M8AIeu42ElfNBplq0e+5PeasQmm8ybY/elkZ1XyRO0JBQxQdVRb8bqQ==", + "dev": true, + "dependencies": { + "@ethereum-waffle/chai": "4.0.10", + "@ethereum-waffle/compiler": "4.0.3", + "@ethereum-waffle/mock-contract": "4.0.4", + "@ethereum-waffle/provider": "4.0.5", + "solc": "0.8.15", + "typechain": "^8.0.0" + }, + "bin": { + "waffle": "bin/waffle" + }, + "engines": { + "node": ">=10.0" + }, + "peerDependencies": { + "ethers": "*" + } + }, + "node_modules/ethereum-waffle/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ethereum-waffle/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ethereum-waffle/node_modules/solc": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.15.tgz", + "integrity": "sha512-Riv0GNHNk/SddN/JyEuFKwbcWcEeho15iyupTSHw5Np6WuXA5D8kEHbyzDHi6sqmvLzu2l+8b1YmL8Ytple+8w==", + "dev": true, + "dependencies": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solc.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git", + "integrity": "sha512-qs8G5KwnIO/thOQjv1RvR/4oiTsy6IaCsN+ory5dbiqFXz8sd239aWJH0wmsVNPimL5X1KzQheUpi6xAo6FU4w==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ethereumjs-abi/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ethereumjs-abi/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ethereumjs-account": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", + "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", + "dependencies": { + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-account/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-account/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-block": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", + "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", + "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", + "dependencies": { + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + } + }, + "node_modules/ethereumjs-block/node_modules/abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ethereumjs-block/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-block/node_modules/deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "dependencies": { + "abstract-leveldown": "~2.6.0" + } + }, + "node_modules/ethereumjs-block/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-block/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/ethereumjs-block/node_modules/level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" + }, + "node_modules/ethereumjs-block/node_modules/level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "dependencies": { + "errno": "~0.1.1" + } + }, + "node_modules/ethereumjs-block/node_modules/level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", + "dependencies": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + } + }, + "node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/ethereumjs-block/node_modules/level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", + "dependencies": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + } + }, + "node_modules/ethereumjs-block/node_modules/level-ws/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/ethereumjs-block/node_modules/level-ws/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ethereumjs-block/node_modules/level-ws/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/ethereumjs-block/node_modules/level-ws/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/ethereumjs-block/node_modules/levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "dependencies": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + } + }, + "node_modules/ethereumjs-block/node_modules/memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", + "dependencies": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/ethereumjs-block/node_modules/memdown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ethereumjs-block/node_modules/merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "dependencies": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + } + }, + "node_modules/ethereumjs-block/node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" + }, + "node_modules/ethereumjs-block/node_modules/object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==" + }, + "node_modules/ethereumjs-block/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==", + "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" + } + }, + "node_modules/ethereumjs-block/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/ethereumjs-block/node_modules/semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ethereumjs-block/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==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/ethereumjs-common": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", + "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==", + "deprecated": "New package name format for new versions: @ethereumjs/common. Please update." + }, + "node_modules/ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", + "dependencies": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "node_modules/ethereumjs-tx/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-tx/node_modules/ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ==" + }, + "node_modules/ethereumjs-tx/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-util": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz", + "integrity": "sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ethereumjs-vm": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", + "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", + "deprecated": "New package name format for new versions: @ethereumjs/vm. Please update.", + "dependencies": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-vm/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ethereumjs-vm/node_modules/abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ethereumjs-vm/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-vm/node_modules/deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "dependencies": { + "abstract-leveldown": "~2.6.0" + } + }, + "node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", + "dependencies": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + } + }, + "node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", + "dependencies": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ethereumjs-vm/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ethereumjs-vm/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/ethereumjs-vm/node_modules/level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" + }, + "node_modules/ethereumjs-vm/node_modules/level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "dependencies": { + "errno": "~0.1.1" + } + }, + "node_modules/ethereumjs-vm/node_modules/level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", + "dependencies": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + } + }, + "node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/ethereumjs-vm/node_modules/level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", + "dependencies": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + } + }, + "node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/ethereumjs-vm/node_modules/levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "dependencies": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + } + }, + "node_modules/ethereumjs-vm/node_modules/memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", + "dependencies": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/ethereumjs-vm/node_modules/memdown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "dependencies": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + } + }, + "node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" + }, + "node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethereumjs-vm/node_modules/object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==" + }, + "node_modules/ethereumjs-vm/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==", + "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" + } + }, + "node_modules/ethereumjs-vm/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/ethereumjs-vm/node_modules/semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ethereumjs-vm/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==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "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/bignumber": "^5.7.0" + "@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/ethers-eip712": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ethers-eip712/-/ethers-eip712-0.2.0.tgz", + "integrity": "sha512-fgS196gCIXeiLwhsWycJJuxI9nL/AoUPGSQ+yvd+8wdWR+43G+J1n69LmWVWvAON0M6qNaf2BF4/M159U8fujQ==", + "peerDependencies": { + "ethers": "^4.0.47 || ^5.0.8" + } + }, + "node_modules/ethjs-abi": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz", + "integrity": "sha512-g2AULSDYI6nEJyJaEVEXtTimRY2aPC2fi7ddSy0W+LXvEVL8Fe1y76o43ecbgdUKwZD+xsmEgX1yJr1Ia3r1IA==", + "dev": true, + "dependencies": { + "bn.js": "4.11.6", + "js-sha3": "0.5.5", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ethjs-abi/node_modules/bn.js": { + "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 + }, + "node_modules/ethjs-abi/node_modules/js-sha3": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz", + "integrity": "sha512-yLLwn44IVeunwjpDVTDZmQeVbB0h+dZpY2eO68B/Zik8hu6dH+rKeLxwua79GGIvW6xr8NBAcrtiUbYrTjEFTA==", + "dev": true + }, + "node_modules/ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", + "dependencies": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "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.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fake-merkle-patricia-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", + "integrity": "sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==", + "dependencies": { + "checkpoint-store": "^1.1.0" + } + }, + "node_modules/fast-check": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz", + "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==", + "dev": true, + "dependencies": { + "pure-rand": "^5.0.1" + }, + "engines": { + "node": ">=8.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + }, + "node_modules/fast-deep-equal": { + "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==" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fetch-ponyfill": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", + "integrity": "sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g==", + "dependencies": { + "node-fetch": "~1.7.1" + } + }, + "node_modules/fetch-ponyfill/node_modules/node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dependencies": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "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==" + }, + "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/@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", + "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "dev": true, + "dependencies": { + "flatted": "^3.2.7", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", "funding": [ { "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data-encoder": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", + "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==" + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "optional": true + }, + "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==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/fs-readdir-recursive": { + "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 + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/ganache/-/ganache-7.4.3.tgz", + "integrity": "sha512-RpEDUiCkqbouyE7+NMXG26ynZ+7sGiODU84Kz+FVoXUnQ4qQM4M8wif3Y4qUCt+D/eM1RVeGq0my62FPD6Y1KA==", + "bundleDependencies": [ + "@trufflesuite/bigint-buffer", + "emittery", + "keccak", + "leveldown", + "secp256k1", + "@types/bn.js", + "@types/lru-cache", + "@types/seedrandom" ], + "hasShrinkwrap": true, "dependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" + "@trufflesuite/bigint-buffer": "1.1.10", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "5.1.1", + "@types/seedrandom": "3.0.1", + "emittery": "0.10.0", + "keccak": "3.0.2", + "leveldown": "6.1.0", + "secp256k1": "4.0.3" + }, + "bin": { + "ganache": "dist/node/cli.js", + "ganache-cli": "dist/node/cli.js" + }, + "optionalDependencies": { + "bufferutil": "4.0.5", + "utf-8-validate": "5.0.7" } }, - "node_modules/@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } + "node_modules/ganache-core": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2.tgz", + "integrity": "sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw==", + "bundleDependencies": [ + "keccak" ], + "deprecated": "ganache-core is now ganache; visit https://trfl.io/g7 for details", + "hasShrinkwrap": true, "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "abstract-leveldown": "3.0.0", + "async": "2.6.2", + "bip39": "2.5.0", + "cachedown": "1.0.0", + "clone": "2.1.2", + "debug": "3.2.6", + "encoding-down": "5.0.4", + "eth-sig-util": "3.0.0", + "ethereumjs-abi": "0.6.8", + "ethereumjs-account": "3.0.0", + "ethereumjs-block": "2.2.2", + "ethereumjs-common": "1.5.0", + "ethereumjs-tx": "2.1.2", + "ethereumjs-util": "6.2.1", + "ethereumjs-vm": "4.2.0", + "heap": "0.2.6", + "keccak": "3.0.1", + "level-sublevel": "6.6.4", + "levelup": "3.1.1", + "lodash": "4.17.20", + "lru-cache": "5.1.1", + "merkle-patricia-tree": "3.0.0", + "patch-package": "6.2.2", + "seedrandom": "3.0.1", + "source-map-support": "0.5.12", + "tmp": "0.1.0", + "web3-provider-engine": "14.2.1", + "websocket": "1.0.32" + }, + "engines": { + "node": ">=8.9.0" + }, + "optionalDependencies": { + "ethereumjs-wallet": "0.6.5", + "web3": "1.2.11" } }, - "node_modules/@ethersproject/hdnode": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/ganache-core/node_modules/@ethersproject/abi": { + "version": "5.0.0-beta.153", + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" + "@ethersproject/address": ">=5.0.0-beta.128", + "@ethersproject/bignumber": ">=5.0.0-beta.130", + "@ethersproject/bytes": ">=5.0.0-beta.129", + "@ethersproject/constants": ">=5.0.0-beta.128", + "@ethersproject/hash": ">=5.0.0-beta.128", + "@ethersproject/keccak256": ">=5.0.0-beta.127", + "@ethersproject/logger": ">=5.0.0-beta.129", + "@ethersproject/properties": ">=5.0.0-beta.131", + "@ethersproject/strings": ">=5.0.0-beta.130" } }, - "node_modules/@ethersproject/json-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "node_modules/ganache-core/node_modules/@ethersproject/abstract-provider": { + "version": "5.0.8", "funding": [ { "type": "individual", @@ -1199,26 +13605,20 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/networks": "^5.0.7", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/transactions": "^5.0.9", + "@ethersproject/web": "^5.0.12" } }, - "node_modules/@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "node_modules/ganache-core/node_modules/@ethersproject/abstract-signer": { + "version": "5.0.10", "funding": [ { "type": "individual", @@ -1229,30 +13629,18 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" + "@ethersproject/abstract-provider": "^5.0.8", + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7" } }, - "node_modules/@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] - }, - "node_modules/@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "node_modules/ganache-core/node_modules/@ethersproject/address": { + "version": "5.0.9", "funding": [ { "type": "individual", @@ -1263,14 +13651,18 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/logger": "^5.7.0" + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/keccak256": "^5.0.7", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/rlp": "^5.0.7" } }, - "node_modules/@ethersproject/pbkdf2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "node_modules/ganache-core/node_modules/@ethersproject/base64": { + "version": "5.0.7", "funding": [ { "type": "individual", @@ -1281,15 +13673,14 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/sha2": "^5.7.0" + "@ethersproject/bytes": "^5.0.9" } }, - "node_modules/@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "node_modules/ganache-core/node_modules/@ethersproject/bignumber": { + "version": "5.0.13", "funding": [ { "type": "individual", @@ -1300,14 +13691,16 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/logger": "^5.7.0" + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "bn.js": "^4.4.0" } }, - "node_modules/@ethersproject/providers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "node_modules/ganache-core/node_modules/@ethersproject/bytes": { + "version": "5.0.9", "funding": [ { "type": "individual", @@ -1318,33 +13711,14 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@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/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0", - "bech32": "1.1.4", - "ws": "7.4.6" + "@ethersproject/logger": "^5.0.8" } }, - "node_modules/@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "node_modules/ganache-core/node_modules/@ethersproject/constants": { + "version": "5.0.8", "funding": [ { "type": "individual", @@ -1355,15 +13729,14 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@ethersproject/bignumber": "^5.0.13" } }, - "node_modules/@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "node_modules/ganache-core/node_modules/@ethersproject/hash": { + "version": "5.0.10", "funding": [ { "type": "individual", @@ -1374,15 +13747,21 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@ethersproject/abstract-signer": "^5.0.10", + "@ethersproject/address": "^5.0.9", + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/keccak256": "^5.0.7", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/strings": "^5.0.8" } }, - "node_modules/@ethersproject/sha2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "node_modules/ganache-core/node_modules/@ethersproject/keccak256": { + "version": "5.0.7", "funding": [ { "type": "individual", @@ -1393,16 +13772,15 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "hash.js": "1.1.7" + "@ethersproject/bytes": "^5.0.9", + "js-sha3": "0.5.7" } }, - "node_modules/@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "node_modules/ganache-core/node_modules/@ethersproject/logger": { + "version": "5.0.8", "funding": [ { "type": "individual", @@ -1413,19 +13791,11 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } + "license": "MIT", + "optional": true }, - "node_modules/@ethersproject/solidity": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "node_modules/ganache-core/node_modules/@ethersproject/networks": { + "version": "5.0.7", "funding": [ { "type": "individual", @@ -1436,19 +13806,14 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "@ethersproject/logger": "^5.0.8" } }, - "node_modules/@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "node_modules/ganache-core/node_modules/@ethersproject/properties": { + "version": "5.0.7", "funding": [ { "type": "individual", @@ -1459,16 +13824,14 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@ethersproject/logger": "^5.0.8" } }, - "node_modules/@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "node_modules/ganache-core/node_modules/@ethersproject/rlp": { + "version": "5.0.7", "funding": [ { "type": "individual", @@ -1479,22 +13842,15 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8" } }, - "node_modules/@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "node_modules/ganache-core/node_modules/@ethersproject/signing-key": { + "version": "5.0.8", "funding": [ { "type": "individual", @@ -1505,16 +13861,17 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "elliptic": "6.5.3" } }, - "node_modules/@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "node_modules/ganache-core/node_modules/@ethersproject/strings": { + "version": "5.0.8", "funding": [ { "type": "individual", @@ -1525,28 +13882,16 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^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/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/constants": "^5.0.8", + "@ethersproject/logger": "^5.0.8" } }, - "node_modules/@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "node_modules/ganache-core/node_modules/@ethersproject/transactions": { + "version": "5.0.9", "funding": [ { "type": "individual", @@ -1557,18 +13902,22 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "@ethersproject/address": "^5.0.9", + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/constants": "^5.0.8", + "@ethersproject/keccak256": "^5.0.7", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/rlp": "^5.0.7", + "@ethersproject/signing-key": "^5.0.8" } }, - "node_modules/@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "node_modules/ganache-core/node_modules/@ethersproject/web": { + "version": "5.0.12", "funding": [ { "type": "individual", @@ -1579,8980 +13928,8845 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ganache/ethereum-address": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@ganache/ethereum-address/-/ethereum-address-0.1.4.tgz", - "integrity": "sha512-sTkU0M9z2nZUzDeHRzzGlW724xhMLXo2LeX1hixbnjHWY1Zg1hkqORywVfl+g5uOO8ht8T0v+34IxNxAhmWlbw==", - "dev": true, - "dependencies": { - "@ganache/utils": "0.1.4" - } - }, - "node_modules/@ganache/ethereum-options": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@ganache/ethereum-options/-/ethereum-options-0.1.4.tgz", - "integrity": "sha512-i4l46taoK2yC41FPkcoDlEVoqHS52wcbHPqJtYETRWqpOaoj9hAg/EJIHLb1t6Nhva2CdTO84bG+qlzlTxjAHw==", - "dev": true, - "dependencies": { - "@ganache/ethereum-address": "0.1.4", - "@ganache/ethereum-utils": "0.1.4", - "@ganache/options": "0.1.4", - "@ganache/utils": "0.1.4", - "bip39": "3.0.4", - "seedrandom": "3.0.5" - } - }, - "node_modules/@ganache/ethereum-utils": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@ganache/ethereum-utils/-/ethereum-utils-0.1.4.tgz", - "integrity": "sha512-FKXF3zcdDrIoCqovJmHLKZLrJ43234Em2sde/3urUT/10gSgnwlpFmrv2LUMAmSbX3lgZhW/aSs8krGhDevDAg==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "2.6.0", - "@ethereumjs/tx": "3.4.0", - "@ethereumjs/vm": "5.6.0", - "@ganache/ethereum-address": "0.1.4", - "@ganache/rlp": "0.1.4", - "@ganache/utils": "0.1.4", - "emittery": "0.10.0", - "ethereumjs-abi": "0.6.8", - "ethereumjs-util": "7.1.3" - } - }, - "node_modules/@ganache/options": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@ganache/options/-/options-0.1.4.tgz", - "integrity": "sha512-zAe/craqNuPz512XQY33MOAG6Si1Xp0hCvfzkBfj2qkuPcbJCq6W/eQ5MB6SbXHrICsHrZOaelyqjuhSEmjXRw==", - "dev": true, - "dependencies": { - "@ganache/utils": "0.1.4", - "bip39": "3.0.4", - "seedrandom": "3.0.5" - } - }, - "node_modules/@ganache/rlp": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@ganache/rlp/-/rlp-0.1.4.tgz", - "integrity": "sha512-Do3D1H6JmhikB+6rHviGqkrNywou/liVeFiKIpOBLynIpvZhRCgn3SEDxyy/JovcaozTo/BynHumfs5R085MFQ==", - "dev": true, - "dependencies": { - "@ganache/utils": "0.1.4", - "rlp": "2.2.6" - } - }, - "node_modules/@ganache/utils": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@ganache/utils/-/utils-0.1.4.tgz", - "integrity": "sha512-oatUueU3XuXbUbUlkyxeLLH3LzFZ4y5aSkNbx6tjSIhVTPeh+AuBKYt4eQ73FFcTB3nj/gZoslgAh5CN7O369w==", - "dev": true, - "dependencies": { - "emittery": "0.10.0", - "keccak": "3.0.1", - "seedrandom": "3.0.5" - }, - "optionalDependencies": { - "@trufflesuite/bigint-buffer": "1.1.9" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "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==", - "peer": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" + "@ethersproject/base64": "^5.0.7", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/strings": "^5.0.8" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "node_modules/ganache-core/node_modules/@sindresorhus/is": { + "version": "0.14.0", + "license": "MIT", + "optional": true, "engines": { - "node": ">=6.0.0" + "node": ">=6" } }, - "node_modules/@jridgewell/set-array": { + "node_modules/ganache-core/node_modules/@szmarczak/http-timer": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "peer": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@metamask/eth-sig-util": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", - "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "license": "MIT", + "optional": true, "dependencies": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^6.2.1", - "ethjs-util": "^0.1.6", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.1" + "defer-to-connect": "^1.0.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=6" } }, - "node_modules/@metamask/eth-sig-util/node_modules/@types/bn.js": { + "node_modules/ganache-core/node_modules/@types/bn.js": { "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, - "node_modules/@metamask/eth-sig-util/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "node_modules/ganache-core/node_modules/@types/node": { + "version": "14.14.20", + "license": "MIT" }, - "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "node_modules/ganache-core/node_modules/@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "license": "MIT", "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" + "@types/node": "*" } }, - "node_modules/@metamask/safe-event-emitter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz", - "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==" + "node_modules/ganache-core/node_modules/@types/secp256k1": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } }, - "node_modules/@noble/curves": { + "node_modules/ganache-core/node_modules/@yarnpkg/lockfile": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz", - "integrity": "sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==", + "license": "BSD-2-Clause" + }, + "node_modules/ganache-core/node_modules/abstract-leveldown": { + "version": "3.0.0", + "license": "MIT", "dependencies": { - "@noble/hashes": "1.3.1" + "xtend": "~4.0.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=4" } }, - "node_modules/@noble/hashes": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz", - "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==", + "node_modules/ganache-core/node_modules/accepts": { + "version": "1.3.7", + "license": "MIT", + "optional": true, + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, "engines": { - "node": ">= 16" + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/aes-js": { + "version": "3.1.2", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@noble/secp256k1": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz", - "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, + "node_modules/ganache-core/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "color-convert": "^1.9.0" }, "engines": { - "node": ">= 8" + "node": ">=4" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, + "node_modules/ganache-core/node_modules/arr-diff": { + "version": "4.0.0", + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=0.10.0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, + "node_modules/ganache-core/node_modules/arr-flatten": { + "version": "1.1.0", + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=0.10.0" } }, - "node_modules/@nomicfoundation/ethereumjs-block": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.2.tgz", - "integrity": "sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q==", - "dependencies": { - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-trie": "6.0.2", - "@nomicfoundation/ethereumjs-tx": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "ethereum-cryptography": "0.1.3", - "ethers": "^5.7.1" - }, + "node_modules/ganache-core/node_modules/arr-union": { + "version": "3.1.0", + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=0.10.0" } }, - "node_modules/@nomicfoundation/ethereumjs-blockchain": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.2.tgz", - "integrity": "sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w==", - "dependencies": { - "@nomicfoundation/ethereumjs-block": "5.0.2", - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-ethash": "3.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-trie": "6.0.2", - "@nomicfoundation/ethereumjs-tx": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "abstract-level": "^1.0.3", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "level": "^8.0.0", - "lru-cache": "^5.1.1", - "memory-level": "^1.0.0" - }, + "node_modules/ganache-core/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/array-unique": { + "version": "0.3.2", + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=0.10.0" } }, - "node_modules/@nomicfoundation/ethereumjs-common": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.2.tgz", - "integrity": "sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg==", + "node_modules/ganache-core/node_modules/asn1": { + "version": "0.2.4", + "license": "MIT", "dependencies": { - "@nomicfoundation/ethereumjs-util": "9.0.2", - "crc-32": "^1.2.0" + "safer-buffer": "~2.1.0" } }, - "node_modules/@nomicfoundation/ethereumjs-ethash": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.2.tgz", - "integrity": "sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg==", + "node_modules/ganache-core/node_modules/asn1.js": { + "version": "5.4.1", + "license": "MIT", + "optional": true, "dependencies": { - "@nomicfoundation/ethereumjs-block": "5.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "abstract-level": "^1.0.3", - "bigint-crypto-utils": "^3.0.23", - "ethereum-cryptography": "0.1.3" - }, - "engines": { - "node": ">=14" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" } }, - "node_modules/@nomicfoundation/ethereumjs-evm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.2.tgz", - "integrity": "sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ==", - "dependencies": { - "@ethersproject/providers": "^5.7.1", - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-tx": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "mcl-wasm": "^0.7.1", - "rustbn.js": "~0.2.0" - }, + "node_modules/ganache-core/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=0.8" } }, - "node_modules/@nomicfoundation/ethereumjs-rlp": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.2.tgz", - "integrity": "sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA==", - "bin": { - "rlp": "bin/rlp" - }, + "node_modules/ganache-core/node_modules/assign-symbols": { + "version": "1.0.0", + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=0.10.0" } }, - "node_modules/@nomicfoundation/ethereumjs-statemanager": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.2.tgz", - "integrity": "sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA==", + "node_modules/ganache-core/node_modules/async": { + "version": "2.6.2", + "license": "MIT", "dependencies": { - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "ethers": "^5.7.1", - "js-sdsl": "^4.1.4" + "lodash": "^4.17.11" } }, - "node_modules/@nomicfoundation/ethereumjs-trie": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.2.tgz", - "integrity": "sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ==", + "node_modules/ganache-core/node_modules/async-eventemitter": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", + "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", + "license": "MIT", "dependencies": { - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "@types/readable-stream": "^2.3.13", - "ethereum-cryptography": "0.1.3", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=14" + "async": "^2.4.0" } }, - "node_modules/@nomicfoundation/ethereumjs-tx": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.2.tgz", - "integrity": "sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g==", - "dependencies": { - "@chainsafe/ssz": "^0.9.2", - "@ethersproject/providers": "^5.7.2", - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "ethereum-cryptography": "0.1.3" + "node_modules/ganache-core/node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/atob": { + "version": "2.1.2", + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" }, "engines": { - "node": ">=14" + "node": ">= 4.5.0" } }, - "node_modules/@nomicfoundation/ethereumjs-util": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.2.tgz", - "integrity": "sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ==", - "dependencies": { - "@chainsafe/ssz": "^0.10.0", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "ethereum-cryptography": "0.1.3" - }, + "node_modules/ganache-core/node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "license": "Apache-2.0", "engines": { - "node": ">=14" + "node": "*" } }, - "node_modules/@nomicfoundation/ethereumjs-util/node_modules/@chainsafe/persistent-merkle-tree": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz", - "integrity": "sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==", - "dependencies": { - "@chainsafe/as-sha256": "^0.3.1" - } + "node_modules/ganache-core/node_modules/aws4": { + "version": "1.11.0", + "license": "MIT" }, - "node_modules/@nomicfoundation/ethereumjs-util/node_modules/@chainsafe/ssz": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.10.2.tgz", - "integrity": "sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==", + "node_modules/ganache-core/node_modules/babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "license": "MIT", "dependencies": { - "@chainsafe/as-sha256": "^0.3.1", - "@chainsafe/persistent-merkle-tree": "^0.5.0" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, - "node_modules/@nomicfoundation/ethereumjs-vm": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.2.tgz", - "integrity": "sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA==", - "dependencies": { - "@nomicfoundation/ethereumjs-block": "5.0.2", - "@nomicfoundation/ethereumjs-blockchain": "7.0.2", - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-evm": "2.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-statemanager": "2.0.2", - "@nomicfoundation/ethereumjs-trie": "6.0.2", - "@nomicfoundation/ethereumjs-tx": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "mcl-wasm": "^0.7.1", - "rustbn.js": "~0.2.0" - }, + "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=0.10.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==", - "dependencies": { - "ethereumjs-util": "^7.1.4" - }, - "peerDependencies": { - "hardhat": "^2.9.5" + "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "license": "MIT", "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=0.10.0" } }, - "node_modules/@nomicfoundation/solidity-analyzer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", - "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", - "engines": { - "node": ">= 12" - }, - "optionalDependencies": { - "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", - "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1", - "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1" - } + "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "license": "MIT" }, - "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", - "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], + "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, "engines": { - "node": ">= 10" + "node": ">=0.10.0" } }, - "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", - "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], + "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "license": "MIT", "engines": { - "node": ">= 10" + "node": ">=0.8.0" } }, - "node_modules/@nomicfoundation/solidity-analyzer-freebsd-x64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", - "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" + "node_modules/ganache-core/node_modules/babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "license": "MIT", + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" } }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", - "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" + "node_modules/ganache-core/node_modules/babel-core/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", - "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" + "node_modules/ganache-core/node_modules/babel-core/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", - "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } + "node_modules/ganache-core/node_modules/babel-core/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", - "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/ganache-core/node_modules/babel-core/node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "license": "MIT", "engines": { - "node": ">= 10" + "node": ">=0.10.0" } }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", - "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" + "node_modules/ganache-core/node_modules/babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "license": "MIT", + "dependencies": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", - "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" + "node_modules/ganache-core/node_modules/babel-generator/node_modules/jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" } }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", - "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" + "node_modules/ganache-core/node_modules/babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q==", + "license": "MIT", + "dependencies": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, - "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, - "peerDependencies": { - "ethers": "^5.0.0", - "hardhat": "^2.0.0" + "node_modules/ganache-core/node_modules/babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ==", + "license": "MIT", + "dependencies": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, - "node_modules/@nomiclabs/hardhat-etherscan": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.7.tgz", - "integrity": "sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ==", - "deprecated": "The @nomiclabs/hardhat-etherscan package is deprecated, please use @nomicfoundation/hardhat-verify instead", - "dev": true, + "node_modules/ganache-core/node_modules/babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA==", + "license": "MIT", "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" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, - "node_modules/@nomiclabs/hardhat-waffle": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.6.tgz", - "integrity": "sha512-+Wz0hwmJGSI17B+BhU/qFRZ1l6/xMW82QGXE/Gi+WTmwgJrQefuBs1lIf7hzQ1hLk6hpkvb/zwcNkpVKRYTQYg==", - "dev": true, - "peerDependencies": { - "@nomiclabs/hardhat-ethers": "^2.0.0", - "@types/sinon-chai": "^3.2.3", - "ethereum-waffle": "*", - "ethers": "^5.0.0", - "hardhat": "^2.0.0" + "node_modules/ganache-core/node_modules/babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ==", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, - "node_modules/@nomiclabs/hardhat-web3": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-web3/-/hardhat-web3-2.0.0.tgz", - "integrity": "sha512-zt4xN+D+fKl3wW2YlTX3k9APR3XZgPkxJYf36AcliJn3oujnKEVRZaHu0PhgLjO+gR+F/kiYayo9fgd2L8970Q==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q==", + "license": "MIT", "dependencies": { - "@types/bignumber.js": "^5.0.0" - }, - "peerDependencies": { - "hardhat": "^2.0.0", - "web3": "^1.0.0-beta.36" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, - "node_modules/@openzeppelin/contract-loader": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz", - "integrity": "sha512-cOFIjBjwbGgZhDZsitNgJl0Ye1rd5yu/Yx5LMgeq3u0ZYzldm4uObzHDFq4gjDdoypvyORjjJa3BlFA7eAnVIg==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng==", + "license": "MIT", "dependencies": { - "find-up": "^4.1.0", - "fs-extra": "^8.1.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, - "node_modules/@openzeppelin/contract-loader/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, + "node_modules/ganache-core/node_modules/babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw==", + "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, - "node_modules/@openzeppelin/contracts": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.3.tgz", - "integrity": "sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg==" + "node_modules/ganache-core/node_modules/babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA==", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } }, - "node_modules/@openzeppelin/contracts-upgradeable-4.7.3": { - "name": "@openzeppelin/contracts-upgradeable", - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.7.3.tgz", - "integrity": "sha512-+wuegAMaLcZnLCJIvrVUDzA9z/Wp93f0Dla/4jJvIhijRrPabjQbZe6fWiECLaJyfn5ci9fqf9vTw3xpQOad2A==" + "node_modules/ganache-core/node_modules/babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg==", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } }, - "node_modules/@openzeppelin/contracts-v0.7": { - "name": "@openzeppelin/contracts", - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.2.tgz", - "integrity": "sha512-z0zMCjyhhp4y7XKAcDAi3Vgms4T2PstwBdahiO0+9NaGICQKjynK3wduSRplTgk4LXmoO1yfDGO5RbjKYxtuxA==" + "node_modules/ganache-core/node_modules/babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha512-RYqaPD0mQyQIFRu7Ho5wE2yvA/5jxqCIj/Lv4BXNq23mHYu/vxikOy2JueLiBxQknwapwrJeNCesvY0ZcfnlHg==", + "license": "MIT", + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } }, - "node_modules/@openzeppelin/test-helpers": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/@openzeppelin/test-helpers/-/test-helpers-0.5.16.tgz", - "integrity": "sha512-T1EvspSfH1qQO/sgGlskLfYVBbqzJR23SZzYl/6B2JnT4EhThcI85UpvDk0BkLWKaDScQTabGHt4GzHW+3SfZg==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw==", + "license": "MIT", "dependencies": { - "@openzeppelin/contract-loader": "^0.6.2", - "@truffle/contract": "^4.0.35", - "ansi-colors": "^3.2.3", - "chai": "^4.2.0", - "chai-bn": "^0.2.1", - "ethjs-abi": "^0.2.1", - "lodash.flatten": "^4.4.0", - "semver": "^5.6.0", - "web3": "^1.2.5", - "web3-utils": "^1.2.5" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, - "node_modules/@openzeppelin/test-helpers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "peer": true + "node_modules/ganache-core/node_modules/babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } }, - "node_modules/@openzeppelin/test-helpers/node_modules/chai-bn": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/chai-bn/-/chai-bn-0.2.2.tgz", - "integrity": "sha512-MzjelH0p8vWn65QKmEq/DLBG1Hle4WeyqT79ANhXZhn/UxRWO0OogkAxi5oGGtfzwU9bZR8mvbvYdoqNVWQwFg==", - "dev": true, - "peerDependencies": { - "bn.js": "^4.11.0", - "chai": "^4.0.0" + "node_modules/ganache-core/node_modules/babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0" } }, - "node_modules/@openzeppelin/test-helpers/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" + "node_modules/ganache-core/node_modules/babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA==", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0" } }, - "node_modules/@rari-capital/solmate": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@rari-capital/solmate/-/solmate-6.4.0.tgz", - "integrity": "sha512-BXWIHHbG5Zbgrxi0qVYe0Zs+bfx+XgOciVUACjuIApV0KzC0kY8XdO1higusIei/ZKCC+GUKdcdQZflxYPUTKQ==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + "node_modules/ganache-core/node_modules/babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw==", + "license": "MIT" }, - "node_modules/@resolver-engine/core": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@resolver-engine/core/-/core-0.3.3.tgz", - "integrity": "sha512-eB8nEbKDJJBi5p5SrvrvILn4a0h42bKtbCTri3ZxCGt6UvoQyp7HnGOfki944bUjBSHKK3RvgfViHn+kqdXtnQ==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw==", + "license": "MIT", "dependencies": { - "debug": "^3.1.0", - "is-url": "^1.2.4", - "request": "^2.85.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, - "node_modules/@resolver-engine/core/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg==", + "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "babel-runtime": "^6.22.0" } }, - "node_modules/@resolver-engine/fs": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.3.3.tgz", - "integrity": "sha512-wQ9RhPUcny02Wm0IuJwYMyAG8fXVeKdmhm8xizNByD4ryZlx6PP6kRen+t/haF43cMfmaV7T3Cx6ChOdHEhFUQ==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A==", + "license": "MIT", "dependencies": { - "@resolver-engine/core": "^0.3.3", - "debug": "^3.1.0" + "babel-runtime": "^6.22.0" } }, - "node_modules/@resolver-engine/fs/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw==", + "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, - "node_modules/@resolver-engine/imports": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.3.3.tgz", - "integrity": "sha512-anHpS4wN4sRMwsAbMXhMfOD/y4a4Oo0Cw/5+rue7hSwGWsDOQaAU1ClK1OxjUC35/peazxEl8JaSRRS+Xb8t3Q==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag==", + "license": "MIT", "dependencies": { - "@resolver-engine/core": "^0.3.3", - "debug": "^3.1.0", - "hosted-git-info": "^2.6.0", - "path-browserify": "^1.0.0", - "url": "^0.11.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw==", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, - "node_modules/@resolver-engine/imports-fs": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.3.3.tgz", - "integrity": "sha512-7Pjg/ZAZtxpeyCFlZR5zqYkz+Wdo84ugB5LApwriT8XFeQoLwGUj4tZFFvvCuxaNCcqZzCYbonJgmGObYBzyCA==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA==", + "license": "MIT", "dependencies": { - "@resolver-engine/fs": "^0.3.3", - "@resolver-engine/imports": "^0.3.3", - "debug": "^3.1.0" + "babel-runtime": "^6.22.0" } }, - "node_modules/@resolver-engine/imports-fs/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug==", + "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, - "node_modules/@resolver-engine/imports/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw==", + "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "babel-runtime": "^6.22.0" } }, - "node_modules/@scure/base": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.3.tgz", - "integrity": "sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==", - "funding": { - "url": "https://paulmillr.com/funding/" + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg==", + "license": "MIT", + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, - "node_modules/@scure/bip32": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.1.tgz", - "integrity": "sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A==", + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ==", + "license": "MIT", "dependencies": { - "@noble/curves": "~1.1.0", - "@noble/hashes": "~1.3.1", - "@scure/base": "~1.1.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "babel-runtime": "^6.22.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA==", + "license": "MIT", + "dependencies": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, - "node_modules/@scure/bip39": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", - "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "license": "MIT", "dependencies": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, - "node_modules/@sentry/core": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", - "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg==", + "license": "MIT", "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, - "node_modules/@sentry/hub": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", - "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw==", + "license": "MIT", "dependencies": { - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, - "node_modules/@sentry/minimal": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", - "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA==", + "license": "MIT", "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, - "node_modules/@sentry/node": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", - "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ==", + "license": "MIT", "dependencies": { - "@sentry/core": "5.30.0", - "@sentry/hub": "5.30.0", - "@sentry/tracing": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, - "node_modules/@sentry/tracing": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", - "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw==", + "license": "MIT", "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, - "node_modules/@sentry/types": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", - "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", - "engines": { - "node": ">=6" + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg==", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0" } }, - "node_modules/@sentry/utils": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", - "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ==", + "license": "MIT", "dependencies": { - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, - "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/ganache-core/node_modules/babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg==", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0" } }, - "node_modules/@solidity-parser/parser": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", - "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw==", + "license": "MIT", "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" + "babel-runtime": "^6.22.0" } }, - "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==", + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ==", + "license": "MIT", "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, - "node_modules/@truffle/abi-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-1.0.3.tgz", - "integrity": "sha512-AWhs01HCShaVKjml7Z4AbVREr/u4oiWxCcoR7Cktm0mEvtT04pvnxW5xB/cI4znRkrbPdFQlFt67kgrAjesYkw==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ==", + "license": "MIT", "dependencies": { - "change-case": "3.0.2", - "fast-check": "3.1.1", - "web3-utils": "1.10.0" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, - "node_modules/@truffle/abi-utils/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg==", + "license": "MIT", "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" + "regenerator-transform": "^0.10.0" } }, - "node_modules/@truffle/blockchain-utils": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.9.tgz", - "integrity": "sha512-RHfumgbIVo68Rv9ofDYfynjnYZIfP/f1vZy4RoqkfYAO+fqfc58PDRzB1WAGq2U6GPuOnipOJxQhnqNnffORZg==", - "dev": true, - "engines": { - "node": "^16.20 || ^18.16 || >=20" + "node_modules/ganache-core/node_modules/babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw==", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, - "node_modules/@truffle/codec": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.17.3.tgz", - "integrity": "sha512-Ko/+dsnntNyrJa57jUD9u4qx9nQby+H4GsUO6yjiCPSX0TQnEHK08XWqBSg0WdmCH2+h0y1nr2CXSx8gbZapxg==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "license": "MIT", "dependencies": { - "@truffle/abi-utils": "^1.0.3", - "@truffle/compile-common": "^0.9.8", - "big.js": "^6.0.3", - "bn.js": "^5.1.3", - "cbor": "^5.2.0", - "debug": "^4.3.1", - "lodash": "^4.17.21", - "semver": "^7.5.4", - "utf8": "^3.0.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "node_modules/ganache-core/node_modules/babel-preset-env/node_modules/semver": { + "version": "5.7.1", + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "node_modules/@truffle/codec/node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "dev": true, - "engines": { - "node": "*" + "node_modules/ganache-core/node_modules/babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==", + "license": "MIT", + "dependencies": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" } }, - "node_modules/@truffle/codec/node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-register/node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "license": "MIT", "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" + "source-map": "^0.5.6" } }, - "node_modules/@truffle/codec/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, + "node_modules/ganache-core/node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, - "node_modules/@truffle/codec/node_modules/nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/ganache-core/node_modules/babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, - "node_modules/@truffle/codec/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, - "node_modules/@truffle/codec/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-traverse/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, + "ms": "2.0.0" + } + }, + "node_modules/ganache-core/node_modules/babel-traverse/node_modules/globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/codec/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/ganache-core/node_modules/babel-traverse/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, - "node_modules/@truffle/compile-common": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.8.tgz", - "integrity": "sha512-DTpiyo32t/YhLI1spn84D3MHYHrnoVqO+Gp7ZHrYNwDs86mAxtNiH5lsVzSb8cPgiqlvNsRCU9nm9R0YmKMTBQ==", - "dev": true, + "node_modules/ganache-core/node_modules/babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", + "license": "MIT", "dependencies": { - "@truffle/error": "^0.2.2", - "colors": "1.4.0" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, - "node_modules/@truffle/contract": { - "version": "4.6.31", - "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.6.31.tgz", - "integrity": "sha512-s+oHDpXASnZosiCdzu+X1Tx5mUJUs1L1CYXIcgRmzMghzqJkaUFmR6NpNo7nJYliYbO+O9/aW8oCKqQ7rCHfmQ==", - "dev": true, - "dependencies": { - "@ensdomains/ensjs": "^2.1.0", - "@truffle/blockchain-utils": "^0.1.9", - "@truffle/contract-schema": "^3.4.16", - "@truffle/debug-utils": "^6.0.57", - "@truffle/error": "^0.2.2", - "@truffle/interface-adapter": "^0.5.37", - "bignumber.js": "^7.2.1", - "debug": "^4.3.1", - "ethers": "^4.0.32", - "web3": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" - }, + "node_modules/ganache-core/node_modules/babel-types/node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", + "license": "MIT", "engines": { - "node": "^16.20 || ^18.16 || >=20" + "node": ">=0.10.0" } }, - "node_modules/@truffle/contract-schema": { - "version": "3.4.16", - "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.16.tgz", - "integrity": "sha512-g0WNYR/J327DqtJPI70ubS19K1Fth/1wxt2jFqLsPmz5cGZVjCwuhiie+LfBde4/Mc9QR8G+L3wtmT5cyoBxAg==", - "dev": true, + "node_modules/ganache-core/node_modules/babelify": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", + "integrity": "sha512-vID8Fz6pPN5pJMdlUnNFSfrlcx5MUule4k9aKs/zbZPyXxMTcRrB0M4Tarw22L8afr8eYSWxDPYCob3TdrqtlA==", + "license": "MIT", "dependencies": { - "ajv": "^6.10.0", - "debug": "^4.3.1" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" + "babel-core": "^6.0.14", + "object-assign": "^4.0.0" } }, - "node_modules/@truffle/contract/node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" + "node_modules/ganache-core/node_modules/babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "license": "MIT", + "bin": { + "babylon": "bin/babylon.js" } }, - "node_modules/@truffle/contract/node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dev": true, + "node_modules/ganache-core/node_modules/backoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", + "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", + "license": "MIT", "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" + "precond": "0.2" + }, + "engines": { + "node": ">= 0.6" } }, - "node_modules/@truffle/contract/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/ganache-core/node_modules/balanced-match": { + "version": "1.0.0", + "license": "MIT" }, - "node_modules/@truffle/contract/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==", - "dev": true, + "node_modules/ganache-core/node_modules/base": { + "version": "0.11.2", + "license": "MIT", "dependencies": { - "node-fetch": "^2.6.12" + "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/@truffle/contract/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, + "node_modules/ganache-core/node_modules/base-x": { + "version": "3.0.8", + "license": "MIT", "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "safe-buffer": "^5.0.1" } }, - "node_modules/@truffle/contract/node_modules/eth-lib/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/@truffle/contract/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, + "node_modules/ganache-core/node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "license": "MIT", "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" + "is-descriptor": "^1.0.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/contract/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, + "node_modules/ganache-core/node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "license": "BSD-3-Clause", "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" + "tweetnacl": "^0.14.3" } }, - "node_modules/@truffle/contract/node_modules/ethers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "node_modules/ganache-core/node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "license": "Unlicense" }, - "node_modules/@truffle/contract/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "node_modules/ganache-core/node_modules/bignumber.js": { + "version": "9.0.1", + "license": "MIT", + "optional": true, + "engines": { + "node": "*" } }, - "node_modules/@truffle/contract/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==", - "dev": true + "node_modules/ganache-core/node_modules/bip39": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", + "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", + "license": "ISC", + "dependencies": { + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" + } }, - "node_modules/@truffle/contract/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true + "node_modules/ganache-core/node_modules/blakejs": { + "version": "1.1.0", + "license": "CC0-1.0" }, - "node_modules/@truffle/contract/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", - "dev": true + "node_modules/ganache-core/node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "license": "MIT", + "optional": true }, - "node_modules/@truffle/contract/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true + "node_modules/ganache-core/node_modules/bn.js": { + "version": "4.11.9", + "license": "MIT" }, - "node_modules/@truffle/contract/node_modules/web3": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", - "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", - "dev": true, - "hasInstallScript": true, + "node_modules/ganache-core/node_modules/body-parser": { + "version": "1.19.0", + "license": "MIT", + "optional": true, "dependencies": { - "web3-bzz": "1.10.0", - "web3-core": "1.10.0", - "web3-eth": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-shh": "1.10.0", - "web3-utils": "1.10.0" + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.8" + } + }, + "node_modules/ganache-core/node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/ganache-core/node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/body-parser/node_modules/qs": { + "version": "6.7.0", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.6" } }, - "node_modules/@truffle/contract/node_modules/web3-bzz": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", - "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", - "dev": true, - "hasInstallScript": true, + "node_modules/ganache-core/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@truffle/contract/node_modules/web3-core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", - "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", - "dev": true, + "node_modules/ganache-core/node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "license": "MIT", "dependencies": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-requestmanager": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/@truffle/contract/node_modules/web3-core-method": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", - "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", - "dev": true, + "node_modules/ganache-core/node_modules/browserify-cipher": { + "version": "1.0.1", + "license": "MIT", + "optional": true, "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, - "node_modules/@truffle/contract/node_modules/web3-core-requestmanager": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", - "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", - "dev": true, + "node_modules/ganache-core/node_modules/browserify-des": { + "version": "1.0.2", + "license": "MIT", + "optional": true, "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.0", - "web3-providers-http": "1.10.0", - "web3-providers-ipc": "1.10.0", - "web3-providers-ws": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "node_modules/@truffle/contract/node_modules/web3-core-subscriptions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", - "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", - "dev": true, + "node_modules/ganache-core/node_modules/browserify-rsa": { + "version": "4.1.0", + "license": "MIT", + "optional": true, "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" } }, - "node_modules/@truffle/contract/node_modules/web3-core/node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "dev": true, - "engines": { - "node": "*" + "node_modules/ganache-core/node_modules/browserify-rsa/node_modules/bn.js": { + "version": "5.1.3", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/browserify-sign": { + "version": "4.2.1", + "license": "ISC", + "optional": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" } }, - "node_modules/@truffle/contract/node_modules/web3-eth": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", - "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", - "dev": true, + "node_modules/ganache-core/node_modules/browserify-sign/node_modules/bn.js": { + "version": "5.1.3", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "license": "MIT", + "optional": true, "dependencies": { - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-accounts": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-eth-ens": "1.10.0", - "web3-eth-iban": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">= 6" } }, - "node_modules/@truffle/contract/node_modules/web3-eth-accounts": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", - "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", - "dev": true, + "node_modules/ganache-core/node_modules/browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "license": "MIT", "dependencies": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" }, - "engines": { - "node": ">=8.0.0" + "bin": { + "browserslist": "cli.js" } }, - "node_modules/@truffle/contract/node_modules/web3-eth-accounts/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "node_modules/@truffle/contract/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" + "node_modules/ganache-core/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" } }, - "node_modules/@truffle/contract/node_modules/web3-eth-contract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", - "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", - "dev": true, + "node_modules/ganache-core/node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "license": "MIT", "dependencies": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" } }, - "node_modules/@truffle/contract/node_modules/web3-eth-ens": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", - "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", - "dev": true, + "node_modules/ganache-core/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" + } + ], + "license": "MIT", "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/@truffle/contract/node_modules/web3-eth-personal": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", - "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", - "dev": true, + "node_modules/ganache-core/node_modules/buffer-from": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/bufferutil": { + "version": "4.0.3", + "hasInstallScript": true, + "license": "MIT", "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, + "node-gyp-build": "^4.2.0" + } + }, + "node_modules/ganache-core/node_modules/bytes": { + "version": "3.1.0", + "license": "MIT", + "optional": true, "engines": { - "node": ">=8.0.0" + "node": ">= 0.8" } }, - "node_modules/@truffle/contract/node_modules/web3-net": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", - "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", - "dev": true, + "node_modules/ganache-core/node_modules/bytewise": { + "version": "1.1.0", + "license": "MIT", "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "bytewise-core": "^1.2.2", + "typewise": "^1.0.3" } }, - "node_modules/@truffle/contract/node_modules/web3-providers-http": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", - "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", - "dev": true, + "node_modules/ganache-core/node_modules/bytewise-core": { + "version": "1.2.3", + "license": "MIT", "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "typewise-core": "^1.2" } }, - "node_modules/@truffle/contract/node_modules/web3-providers-ipc": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", - "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", - "dev": true, + "node_modules/ganache-core/node_modules/cache-base": { + "version": "1.0.1", + "license": "MIT", "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.0" + "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" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/contract/node_modules/web3-providers-ws": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", - "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", - "dev": true, + "node_modules/ganache-core/node_modules/cacheable-request": { + "version": "6.1.0", + "license": "MIT", + "optional": true, "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0", - "websocket": "^1.0.32" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/@truffle/contract/node_modules/web3-shh": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", - "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-net": "1.10.0" - }, + "node_modules/ganache-core/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==", + "license": "MIT", + "optional": true, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/@truffle/contract/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dev": true, + "node_modules/ganache-core/node_modules/cachedown": { + "version": "1.0.0", + "license": "MIT", "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" + "abstract-leveldown": "^2.4.1", + "lru-cache": "^3.2.0" } }, - "node_modules/@truffle/debug-utils": { - "version": "6.0.57", - "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.57.tgz", - "integrity": "sha512-Q6oI7zLaeNLB69ixjwZk2UZEWBY6b2OD1sjLMGDKBGR7GaHYiw96GLR2PFgPH1uwEeLmV4N78LYaQCrDsHbNeA==", - "dev": true, + "node_modules/ganache-core/node_modules/cachedown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "license": "MIT", "dependencies": { - "@truffle/codec": "^0.17.3", - "@trufflesuite/chromafi": "^3.0.0", - "bn.js": "^5.1.3", - "chalk": "^2.4.2", - "debug": "^4.3.1", - "highlightjs-solidity": "^2.0.6" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" + "xtend": "~4.0.0" } }, - "node_modules/@truffle/error": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.2.tgz", - "integrity": "sha512-TqbzJ0O8DHh34cu8gDujnYl4dUl6o2DE4PR6iokbybvnIm/L2xl6+Gv1VC+YJS45xfH83Yo3/Zyg/9Oq8/xZWg==", - "dev": true, - "engines": { - "node": "^16.20 || ^18.16 || >=20" + "node_modules/ganache-core/node_modules/cachedown/node_modules/lru-cache": { + "version": "3.2.0", + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.1" } }, - "node_modules/@truffle/hdwallet": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@truffle/hdwallet/-/hdwallet-0.1.4.tgz", - "integrity": "sha512-D3SN0iw3sMWUXjWAedP6RJtopo9qQXYi80inzbtcsoso4VhxFxCwFvCErCl4b27AEJ9pkAtgnxEFRaSKdMmi1Q==", + "node_modules/ganache-core/node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "license": "MIT", "dependencies": { - "ethereum-cryptography": "1.1.2", - "keccak": "3.0.2", - "secp256k1": "4.0.3" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@truffle/hdwallet-provider": { - "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==", + "node_modules/ganache-core/node_modules/caniuse-lite": { + "version": "1.0.30001174", + "license": "CC-BY-4.0" + }, + "node_modules/ganache-core/node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "license": "Apache-2.0" + }, + "node_modules/ganache-core/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { - "@ethereumjs/common": "^2.4.0", - "@ethereumjs/tx": "^3.3.0", - "@metamask/eth-sig-util": "4.0.1", - "@truffle/hdwallet": "^0.1.4", - "@types/ethereum-protocol": "^1.0.0", - "@types/web3": "1.0.20", - "@types/web3-provider-engine": "^14.0.0", - "ethereum-cryptography": "1.1.2", - "ethereum-protocol": "^1.0.1", - "ethereumjs-util": "^7.1.5", - "web3": "1.10.0", - "web3-provider-engine": "16.0.3" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": "^16.20 || ^18.16 || >=20" + "node": ">=4" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "node_modules/ganache-core/node_modules/checkpoint-store": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", + "integrity": "sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg==", + "license": "ISC", "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" + "functional-red-black-tree": "^1.0.1" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", + "node_modules/ganache-core/node_modules/chownr": { + "version": "1.1.4", + "license": "ISC", + "optional": true + }, + "node_modules/ganache-core/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/cids": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", + "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", + "license": "MIT", + "optional": true, "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "^1.0.0", + "multihashes": "~0.4.15" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/@noble/hashes": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", - "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] + "node_modules/ganache-core/node_modules/cids/node_modules/multicodec": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", + "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.6.0", + "varint": "^5.0.0" + } }, - "node_modules/@truffle/hdwallet-provider/node_modules/@scure/bip32": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz", - "integrity": "sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "node_modules/ganache-core/node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "license": "MIT", "dependencies": { - "@noble/hashes": "~1.1.1", - "@noble/secp256k1": "~1.6.0", - "@scure/base": "~1.1.0" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/@scure/bip39": { + "node_modules/ganache-core/node_modules/class-is": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", + "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/class-utils": { + "version": "0.3.6", + "license": "MIT", "dependencies": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" + "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/@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/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "node_modules/ganache-core/node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "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==", + "node_modules/ganache-core/node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "license": "MIT", "dependencies": { - "node-fetch": "^2.6.12" + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "node_modules/ganache-core/node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/eth-lib/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "node_modules/ganache-core/node_modules/class-utils/node_modules/is-buffer": { + "version": "1.1.6", + "license": "MIT" }, - "node_modules/@truffle/hdwallet-provider/node_modules/ethereum-cryptography": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz", - "integrity": "sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ==", + "node_modules/ganache-core/node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "license": "MIT", "dependencies": { - "@noble/hashes": "1.1.2", - "@noble/secp256k1": "1.6.3", - "@scure/bip32": "1.1.0", - "@scure/bip39": "1.1.0" + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "node_modules/ganache-core/node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=10.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/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==", + "node_modules/ganache-core/node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "license": "MIT", "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" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" + "node_modules/ganache-core/node_modules/class-utils/node_modules/kind-of": { + "version": "5.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", - "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.10.0", - "web3-core": "1.10.0", - "web3-eth": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-shh": "1.10.0", - "web3-utils": "1.10.0" - }, + "node_modules/ganache-core/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=0.8" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-bzz": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", - "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", - "hasInstallScript": true, + "node_modules/ganache-core/node_modules/clone-response": { + "version": "1.0.2", + "license": "MIT", + "optional": true, "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" + "mimic-response": "^1.0.0" + } + }, + "node_modules/ganache-core/node_modules/collection-visit": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", - "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", + "node_modules/ganache-core/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", "dependencies": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-requestmanager": "1.10.0", - "web3-utils": "1.10.0" + "color-name": "1.1.3" + } + }, + "node_modules/ganache-core/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.8" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-core-method": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", - "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", + "node_modules/ganache-core/node_modules/component-emitter": { + "version": "1.3.0", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-utils": "1.10.0" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/ganache-core/node_modules/content-disposition": { + "version": "0.5.3", + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "5.1.2" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.6" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-core-requestmanager": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", - "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", + "node_modules/ganache-core/node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/content-hash": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", + "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", + "license": "ISC", + "optional": true, "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.0", - "web3-providers-http": "1.10.0", - "web3-providers-ipc": "1.10.0", - "web3-providers-ws": "1.10.0" - }, + "cids": "^0.7.1", + "multicodec": "^0.5.5", + "multihashes": "^0.4.15" + } + }, + "node_modules/ganache-core/node_modules/content-type": { + "version": "1.0.4", + "license": "MIT", + "optional": true, "engines": { - "node": ">=8.0.0" + "node": ">= 0.6" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-core-subscriptions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", - "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", + "node_modules/ganache-core/node_modules/convert-source-map": { + "version": "1.7.0", + "license": "MIT", "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "safe-buffer": "~5.1.1" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", - "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", - "dependencies": { - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-accounts": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-eth-ens": "1.10.0", - "web3-eth-iban": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, + "node_modules/ganache-core/node_modules/convert-source-map/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==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/cookie": { + "version": "0.4.0", + "license": "MIT", + "optional": true, "engines": { - "node": ">=8.0.0" + "node": ">= 0.6" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth-accounts": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", - "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", - "dependencies": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, + "node_modules/ganache-core/node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/cookiejar": { + "version": "2.1.2", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/copy-descriptor": { + "version": "0.1.1", + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth-contract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", - "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", - "dependencies": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "node_modules/ganache-core/node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "hasInstallScript": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/core-js-pure": { + "version": "3.8.2", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth-ens": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", - "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", + "node_modules/ganache-core/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "license": "MIT", + "optional": true, "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-utils": "1.10.0" + "object-assign": "^4", + "vary": "^1" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.10" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth-personal": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", - "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", + "node_modules/ganache-core/node_modules/create-ecdh": { + "version": "4.0.4", + "license": "MIT", + "optional": true, "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-net": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", - "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", + "node_modules/ganache-core/node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "license": "MIT", "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-providers-http": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", - "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", + "node_modules/ganache-core/node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "license": "MIT", "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-providers-ipc": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", - "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", + "node_modules/ganache-core/node_modules/cross-fetch": { + "version": "2.2.3", + "license": "MIT", "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "node-fetch": "2.1.2", + "whatwg-fetch": "2.0.4" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-providers-ws": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", - "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", + "node_modules/ganache-core/node_modules/crypto-browserify": { + "version": "3.12.0", + "license": "MIT", + "optional": true, "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0", - "websocket": "^1.0.32" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" }, "engines": { - "node": ">=8.0.0" + "node": "*" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-shh": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", - "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", - "hasInstallScript": true, + "node_modules/ganache-core/node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "license": "ISC", "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-net": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "es5-ext": "^0.10.50", + "type": "^1.0.1" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "node_modules/ganache-core/node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "license": "MIT", "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "assert-plus": "^1.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10" } - }, - "node_modules/@truffle/hdwallet/node_modules/@noble/hashes": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", - "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@truffle/hdwallet/node_modules/@scure/bip32": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz", - "integrity": "sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + }, + "node_modules/ganache-core/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "license": "MIT", "dependencies": { - "@noble/hashes": "~1.1.1", - "@noble/secp256k1": "~1.6.0", - "@scure/base": "~1.1.0" + "ms": "^2.1.1" } }, - "node_modules/@truffle/hdwallet/node_modules/@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "node_modules/ganache-core/node_modules/decode-uri-component": { + "version": "0.2.0", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/ganache-core/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==", + "license": "MIT", + "optional": true, "dependencies": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/@truffle/hdwallet/node_modules/ethereum-cryptography": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz", - "integrity": "sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ==", + "node_modules/ganache-core/node_modules/deep-equal": { + "version": "1.1.1", + "license": "MIT", "dependencies": { - "@noble/hashes": "1.1.2", - "@noble/secp256k1": "1.6.3", - "@scure/bip32": "1.1.0", - "@scure/bip39": "1.1.0" + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@truffle/hdwallet/node_modules/keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "hasInstallScript": true, + "node_modules/ganache-core/node_modules/defer-to-connect": { + "version": "1.1.3", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/deferred-leveldown": { + "version": "4.0.2", + "license": "MIT", "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" + "abstract-leveldown": "~5.0.0", + "inherits": "^2.0.3" }, "engines": { - "node": ">=10.0.0" + "node": ">=6" } }, - "node_modules/@truffle/interface-adapter": { - "version": "0.5.37", - "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.37.tgz", - "integrity": "sha512-lPH9MDgU+7sNDlJSClwyOwPCfuOimqsCx0HfGkznL3mcFRymc1pukAR1k17zn7ErHqBwJjiKAZ6Ri72KkS+IWw==", - "dev": true, + "node_modules/ganache-core/node_modules/deferred-leveldown/node_modules/abstract-leveldown": { + "version": "5.0.0", + "license": "MIT", "dependencies": { - "bn.js": "^5.1.3", - "ethers": "^4.0.32", - "web3": "1.10.0" + "xtend": "~4.0.0" }, "engines": { - "node": "^16.20 || ^18.16 || >=20" + "node": ">=6" } }, - "node_modules/@truffle/interface-adapter/node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dev": true, + "node_modules/ganache-core/node_modules/define-properties": { + "version": "1.1.3", + "license": "MIT", "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/@truffle/interface-adapter/node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dev": true, + "node_modules/ganache-core/node_modules/define-property": { + "version": "2.0.2", + "license": "MIT", "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@truffle/interface-adapter/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/ganache-core/node_modules/defined": { + "version": "1.0.0", + "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "dev": true, + "node_modules/ganache-core/node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { - "node": "*" + "node": ">=0.4.0" } }, - "node_modules/@truffle/interface-adapter/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==", - "dev": true, - "dependencies": { - "node-fetch": "^2.6.12" + "node_modules/ganache-core/node_modules/depd": { + "version": "1.1.2", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" } }, - "node_modules/@truffle/interface-adapter/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, + "node_modules/ganache-core/node_modules/des.js": { + "version": "1.0.1", + "license": "MIT", + "optional": true, "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/eth-lib/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "node_modules/ganache-core/node_modules/destroy": { + "version": "1.0.4", + "license": "MIT", + "optional": true }, - "node_modules/@truffle/interface-adapter/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, + "node_modules/ganache-core/node_modules/detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", + "license": "MIT", "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" + "repeating": "^2.0.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, + "node_modules/ganache-core/node_modules/diffie-hellman": { + "version": "5.0.3", + "license": "MIT", + "optional": true, "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/ethers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "node_modules/ganache-core/node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" }, - "node_modules/@truffle/interface-adapter/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, + "node_modules/ganache-core/node_modules/dotignore": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", + "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", + "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "minimatch": "^3.0.4" + }, + "bin": { + "ignored": "bin/ignored" } }, - "node_modules/@truffle/interface-adapter/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==", - "dev": true + "node_modules/ganache-core/node_modules/duplexer3": { + "version": "0.1.4", + "license": "BSD-3-Clause", + "optional": true }, - "node_modules/@truffle/interface-adapter/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true + "node_modules/ganache-core/node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } }, - "node_modules/@truffle/interface-adapter/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", - "dev": true + "node_modules/ganache-core/node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT", + "optional": true }, - "node_modules/@truffle/interface-adapter/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true + "node_modules/ganache-core/node_modules/electron-to-chromium": { + "version": "1.3.636", + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/elliptic": { + "version": "6.5.3", + "license": "MIT", + "dependencies": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "node_modules/ganache-core/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } }, - "node_modules/@truffle/interface-adapter/node_modules/web3": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", - "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", - "dev": true, - "hasInstallScript": true, + "node_modules/ganache-core/node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "license": "MIT", "dependencies": { - "web3-bzz": "1.10.0", - "web3-core": "1.10.0", - "web3-eth": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-shh": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "iconv-lite": "^0.6.2" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-bzz": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", - "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", - "dev": true, - "hasInstallScript": true, + "node_modules/ganache-core/node_modules/encoding-down": { + "version": "5.0.4", + "license": "MIT", "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" + "abstract-leveldown": "^5.0.0", + "inherits": "^2.0.3", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0", + "xtend": "^4.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=6" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", - "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", - "dev": true, + "node_modules/ganache-core/node_modules/encoding-down/node_modules/abstract-leveldown": { + "version": "5.0.0", + "license": "MIT", "dependencies": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-requestmanager": "1.10.0", - "web3-utils": "1.10.0" + "xtend": "~4.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=6" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-method": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", - "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", - "dev": true, + "node_modules/ganache-core/node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.2", + "license": "MIT", "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-utils": "1.10.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-requestmanager": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", - "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", - "dev": true, + "node_modules/ganache-core/node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.0", - "web3-providers-http": "1.10.0", - "web3-providers-ipc": "1.10.0", - "web3-providers-ws": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "once": "^1.4.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-subscriptions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", - "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", - "dev": true, + "node_modules/ganache-core/node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "license": "MIT", "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0" + "prr": "~1.0.1" }, - "engines": { - "node": ">=8.0.0" + "bin": { + "errno": "cli.js" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", - "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", - "dev": true, + "node_modules/ganache-core/node_modules/es-abstract": { + "version": "1.18.0-next.1", + "license": "MIT", "dependencies": { - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-accounts": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-eth-ens": "1.10.0", - "web3-eth-iban": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", - "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", - "dev": true, + "node_modules/ganache-core/node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "license": "MIT", "dependencies": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true + "node_modules/ganache-core/node_modules/es5-ext": { + "version": "0.10.53", + "license": "ISC", + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" + "node_modules/ganache-core/node_modules/es6-iterator": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-contract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", - "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", - "dev": true, + "node_modules/ganache-core/node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "license": "ISC", "dependencies": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" - }, + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/ganache-core/node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=0.8.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-ens": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", - "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", - "dev": true, - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-utils": "1.10.0" - }, + "node_modules/ganache-core/node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/eth-block-tracker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-3.0.1.tgz", + "integrity": "sha512-WUVxWLuhMmsfenfZvFO5sbl1qFY2IqUlw/FPVmjjdElpqLsZtSG+wPe9Dz7W/sB6e80HgFKknOmKk2eNlznHug==", + "license": "MIT", + "dependencies": { + "eth-query": "^2.1.0", + "ethereumjs-tx": "^1.3.3", + "ethereumjs-util": "^5.1.3", + "ethjs-util": "^0.1.3", + "json-rpc-engine": "^3.6.0", + "pify": "^2.3.0", + "tape": "^4.6.3" + } + }, + "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "license": "MPL-2.0", + "dependencies": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-personal": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", - "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", - "dev": true, - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, + "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-net": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", - "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", - "dev": true, + "node_modules/ganache-core/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==", + "license": "ISC", + "optional": true, "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "idna-uts46-hx": "^2.3.1", + "js-sha3": "^0.5.7" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-providers-http": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", - "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-json-rpc-infura": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz", + "integrity": "sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw==", + "license": "ISC", "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "cross-fetch": "^2.1.1", + "eth-json-rpc-middleware": "^1.5.0", + "json-rpc-engine": "^3.4.0", + "json-rpc-error": "^2.0.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-providers-ipc": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", - "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz", + "integrity": "sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q==", + "license": "ISC", "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "async": "^2.5.0", + "eth-query": "^2.1.2", + "eth-tx-summary": "^3.1.2", + "ethereumjs-block": "^1.6.0", + "ethereumjs-tx": "^1.3.3", + "ethereumjs-util": "^5.1.2", + "ethereumjs-vm": "^2.1.0", + "fetch-ponyfill": "^4.0.0", + "json-rpc-engine": "^3.6.0", + "json-rpc-error": "^2.0.0", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "tape": "^4.6.3" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-providers-ws": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", - "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "license": "MIT", "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" + "xtend": "~4.0.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-shh": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", - "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", - "dev": true, - "hasInstallScript": true, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "license": "MIT", "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-net": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "abstract-leveldown": "~2.6.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-account": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", + "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", + "license": "MPL-2.0", "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/@trufflesuite/bigint-buffer": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.9.tgz", - "integrity": "sha512-bdM5cEGCOhDSwminryHJbRmXc1x7dPKg6Pqns3qyTwFlxsqUgxE29lsERS3PlIW1HTjoIGMUqsk1zQQwST1Yxw==", - "dev": true, - "hasInstallScript": true, - "optional": true, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-block": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", + "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", + "license": "MPL-2.0", "dependencies": { - "node-gyp-build": "4.3.0" - }, - "engines": { - "node": ">= 10.0.0" + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" } }, - "node_modules/@trufflesuite/chromafi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-3.0.0.tgz", - "integrity": "sha512-oqWcOqn8nT1bwlPPfidfzS55vqcIDdpfzo3HbU9EnUmcSTX+I8z0UyUFI3tZQjByVJulbzxHxUGS3ZJPwK/GPQ==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-block/node_modules/ethereum-common": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "license": "MPL-2.0", "dependencies": { - "camelcase": "^4.1.0", - "chalk": "^2.3.2", - "cheerio": "^1.0.0-rc.2", - "detect-indent": "^5.0.0", - "highlight.js": "^10.4.1", - "lodash.merge": "^4.6.2", - "strip-ansi": "^4.0.0", - "strip-indent": "^2.0.0" + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "devOptional": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "devOptional": true + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "devOptional": true + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", + "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", + "license": "MPL-2.0", + "dependencies": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" + } }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "devOptional": true + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "license": "MPL-2.0", + "dependencies": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + } }, - "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==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "license": "MPL-2.0", "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" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "license": "MPL-2.0", + "dependencies": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.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==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "license": "MPL-2.0", "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", - "hardhat": "^2.9.9", - "typechain": "^8.1.1" + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" } }, - "node_modules/@typechain/hardhat/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "license": "MIT", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" + "errno": "~0.1.1" } }, - "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, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", + "license": "MIT", "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" } }, - "node_modules/@typechain/hardhat/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-iterator-stream/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "node_modules/@types/abstract-leveldown": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.3.tgz", - "integrity": "sha512-YAdL8tIYbiKoFjAf/0Ir3mvRJ/iFvBP/FK0I8Xa5rGWgVcq0xWOEInzlJfs6TIPWFweEOTKgNSBdxneUcHRvaw==", - "dev": true - }, - "node_modules/@types/bignumber.js": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/bignumber.js/-/bignumber.js-5.0.0.tgz", - "integrity": "sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA==", - "deprecated": "This is a stub types definition for bignumber.js (https://github.com/MikeMcl/bignumber.js/). bignumber.js provides its own type definitions, so you don't need @types/bignumber.js installed!", - "dev": true, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", + "license": "MIT", "dependencies": { - "bignumber.js": "*" + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" } }, - "node_modules/@types/bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg==", + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "license": "MIT", "dependencies": { - "@types/node": "*" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" } }, - "node_modules/@types/chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==", - "dev": true - }, - "node_modules/@types/concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "license": "MIT", "dependencies": { - "@types/node": "*" + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" } }, - "node_modules/@types/ethereum-protocol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/ethereum-protocol/-/ethereum-protocol-1.0.3.tgz", - "integrity": "sha512-peaCYb+wAT3Gnttt8Ep6+b3ciVK+mWX5wyVnJiDtmWXU1c9RXi5qDxEjGyZrjU/9EYdXPd3hMiXXBjDDPu96yQ==", + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", + "license": "MIT", "dependencies": { - "bignumber.js": "7.2.1" + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" } }, - "node_modules/@types/form-data": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/memdown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "license": "MIT", "dependencies": { - "@types/node": "*" + "xtend": "~4.0.0" } }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "license": "MPL-2.0", "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" } }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz", - "integrity": "sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw==" + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "license": "MIT" }, - "node_modules/@types/json-schema": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", - "dev": true + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", + "license": "MIT" }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/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==", + "license": "MIT" }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-lib": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", + "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/ganache-core/node_modules/eth-query": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", + "integrity": "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==", + "license": "ISC", "dependencies": { - "@types/node": "*" + "json-rpc-random-id": "^1.0.0", + "xtend": "^4.0.1" } }, - "node_modules/@types/level-errors": { + "node_modules/ganache-core/node_modules/eth-sig-util": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/level-errors/-/level-errors-3.0.0.tgz", - "integrity": "sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ==", - "dev": true - }, - "node_modules/@types/levelup": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@types/levelup/-/levelup-4.3.3.tgz", - "integrity": "sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA==", - "dev": true, + "license": "ISC", "dependencies": { - "@types/abstract-leveldown": "*", - "@types/level-errors": "*", - "@types/node": "*" + "buffer": "^5.2.1", + "elliptic": "^6.4.0", + "ethereumjs-abi": "0.6.5", + "ethereumjs-util": "^5.1.1", + "tweetnacl": "^1.0.0", + "tweetnacl-util": "^0.15.0" } }, - "node_modules/@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==" - }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, - "node_modules/@types/mkdirp": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", - "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-abi": { + "version": "0.6.5", + "license": "MIT", "dependencies": { - "@types/node": "*" + "bn.js": "^4.10.0", + "ethereumjs-util": "^4.3.0" } }, - "node_modules/@types/mocha": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", - "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.18.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.0.tgz", - "integrity": "sha512-3xA4X31gHT1F1l38ATDIL9GpRLdwVhnEFC8Uikv5ZLlXATwrCYyPq7ZWHxzxc3J/30SUiwiYT+bQe0/XvKlWbw==" - }, - "node_modules/@types/node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-95X8guJYhfqiuVVhRFxVQcf4hW/2bCuoPwDasMf/531STFoNoWTT7YDnWdXHEZKqAGUigmpG31r2FE70LwnzJw==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { + "version": "4.5.1", + "license": "MPL-2.0", "dependencies": { - "@types/node": "*", - "form-data": "^4.0.0" + "bn.js": "^4.8.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.0.0" } }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "license": "MPL-2.0", "dependencies": { - "@types/node": "*" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/@types/prettier": { - "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 - }, - "node_modules/@types/qs": { - "version": "6.9.8", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", - "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==", - "dev": true + "node_modules/ganache-core/node_modules/eth-tx-summary": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz", + "integrity": "sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg==", + "license": "ISC", + "dependencies": { + "async": "^2.1.2", + "clone": "^2.0.0", + "concat-stream": "^1.5.1", + "end-of-stream": "^1.1.0", + "eth-query": "^2.0.2", + "ethereumjs-block": "^1.4.1", + "ethereumjs-tx": "^1.1.1", + "ethereumjs-util": "^5.0.1", + "ethereumjs-vm": "^2.6.0", + "through2": "^2.0.3" + } }, - "node_modules/@types/readable-stream": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz", - "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==", + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "license": "MIT", "dependencies": { - "@types/node": "*", - "safe-buffer": "~5.1.1" + "xtend": "~4.0.0" } }, - "node_modules/@types/readable-stream/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/ganache-core/node_modules/eth-tx-summary/node_modules/deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~2.6.0" + } }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-account": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", + "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", + "license": "MPL-2.0", "dependencies": { - "@types/node": "*" + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/@types/secp256k1": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.4.tgz", - "integrity": "sha512-oN0PFsYxDZnX/qSJ5S5OwaEDTYfekhvaM5vqui2bu1AA39pKofmgL104Q29KiOXizXS2yLjSzc5YdTyMKdcy4A==", + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-block": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", + "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", + "license": "MPL-2.0", "dependencies": { - "@types/node": "*" + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" } }, - "node_modules/@types/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", - "dev": true + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-block/node_modules/ethereum-common": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", + "license": "MIT" }, - "node_modules/@types/sinon": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.3.tgz", - "integrity": "sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==", - "dev": true, - "peer": true, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "license": "MPL-2.0", "dependencies": { - "@types/sinonjs__fake-timers": "*" + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" } }, - "node_modules/@types/sinon-chai": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.12.tgz", - "integrity": "sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ==", - "dev": true, - "peer": true, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "license": "MPL-2.0", "dependencies": { - "@types/chai": "*", - "@types/sinon": "*" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz", - "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==", - "dev": true, - "peer": true - }, - "node_modules/@types/underscore": { - "version": "1.11.9", - "resolved": "https://registry.npmjs.org/@types/underscore/-/underscore-1.11.9.tgz", - "integrity": "sha512-M63wKUdsjDFUfyFt1TCUZHGFk9KDAa5JP0adNUErbm0U45Lr06HtANdYRP+GyleEopEoZ4UyBcdAC5TnW4Uz2w==" - }, - "node_modules/@types/web3": { - "version": "1.0.20", - "resolved": "https://registry.npmjs.org/@types/web3/-/web3-1.0.20.tgz", - "integrity": "sha512-KTDlFuYjzCUlBDGt35Ir5QRtyV9klF84MMKUsEJK10sTWga/71V+8VYLT7yysjuBjaOx2uFYtIWNGoz3yrNDlg==", + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", + "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", + "license": "MPL-2.0", "dependencies": { - "@types/bn.js": "*", - "@types/underscore": "*" + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/@types/web3-provider-engine": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/@types/web3-provider-engine/-/web3-provider-engine-14.0.2.tgz", - "integrity": "sha512-i+vgIh873kDu6MnYZkIqrho4JCan1c8TcPnYY6te2lq1ODD4SPA8JxFCyQjK+vwbLMr5F3N/I37AfK/wxiyuEA==", + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "license": "MPL-2.0", "dependencies": { - "@types/ethereum-protocol": "*" + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "license": "MPL-2.0", "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "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==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "license": "MPL-2.0", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "license": "MPL-2.0", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" } }, - "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==", - "dev": true + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "errno": "~0.1.1" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-iterator-stream/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", + "license": "MIT", + "dependencies": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "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==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", "dependencies": { - "yallist": "^4.0.0" + "object-keys": "~0.4.0" }, "engines": { - "node": ">=10" + "node": ">=0.4" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" } }, - "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==", - "dev": true - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" } }, - "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==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/memdown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "xtend": "~4.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "license": "MPL-2.0", "dependencies": { - "lru-cache": "^6.0.0" - }, + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/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==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "license": "ISC", "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "semver": "bin/semver" } }, - "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==", - "dev": true + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "license": "MIT" }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, + "node_modules/ganache-core/node_modules/ethashjs": { + "version": "0.0.8", + "license": "MPL-2.0", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "async": "^2.1.2", + "buffer-xor": "^2.0.1", + "ethereumjs-util": "^7.0.2", + "miller-rabin": "^4.0.0" } }, - "node_modules/abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", - "dev": true + "node_modules/ganache-core/node_modules/ethashjs/node_modules/bn.js": { + "version": "5.1.3", + "license": "MIT" }, - "node_modules/abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==" + "node_modules/ganache-core/node_modules/ethashjs/node_modules/buffer-xor": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", + "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.1" + } }, - "node_modules/abstract-level": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", - "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", + "node_modules/ganache-core/node_modules/ethashjs/node_modules/ethereumjs-util": { + "version": "7.0.7", + "license": "MPL-2.0", "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.1.0", - "is-buffer": "^2.0.5", - "level-supports": "^4.0.0", - "level-transcoder": "^1.0.1", - "module-error": "^1.0.1", - "queue-microtask": "^1.2.3" + "@types/bn.js": "^4.11.3", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" }, "engines": { - "node": ">=12" + "node": ">=10.0.0" } }, - "node_modules/abstract-level/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "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/ganache-core/node_modules/ethereum-bloom-filters": { + "version": "1.0.7", + "license": "MIT", + "optional": true, "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "js-sha3": "^0.8.0" } }, - "node_modules/abstract-leveldown": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", - "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } + "node_modules/ganache-core/node_modules/ethereum-bloom-filters/node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "license": "MIT", + "optional": true }, - "node_modules/abstract-leveldown/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, + "node_modules/ganache-core/node_modules/ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ==", + "license": "MIT" + }, + "node_modules/ganache-core/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==", + "license": "MIT", "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" + "@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/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "node_modules/ganache-core/node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git", + "integrity": "sha512-qs8G5KwnIO/thOQjv1RvR/4oiTsy6IaCsN+ory5dbiqFXz8sd239aWJH0wmsVNPimL5X1KzQheUpi6xAo6FU4w==", + "license": "MIT", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" } }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "devOptional": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" + "node_modules/ganache-core/node_modules/ethereumjs-account": { + "version": "3.0.0", + "license": "MPL-2.0", + "dependencies": { + "ethereumjs-util": "^6.0.0", + "rlp": "^2.2.1", + "safe-buffer": "^5.1.1" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "node_modules/ganache-core/node_modules/ethereumjs-block": { + "version": "2.2.2", + "license": "MPL-2.0", + "dependencies": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" } }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "devOptional": true, - "engines": { - "node": ">=0.4.0" + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" } }, - "node_modules/address": { + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/deferred-leveldown": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "dev": true, - "engines": { - "node": ">= 10.0.0" + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~2.6.0" } }, - "node_modules/adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "engines": { - "node": ">=0.3.0" + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "license": "MIT", "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" + "errno": "~0.1.1" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", + "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "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, - "optional": true, - "engines": { - "node": ">=0.4.2" + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", + "license": "MIT", + "dependencies": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" } }, - "node_modules/ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true, - "engines": { - "node": ">=6" + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", "dependencies": { - "type-fest": "^0.21.3" + "object-keys": "~0.4.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.4" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "license": "MIT", + "dependencies": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" } }, - "node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true, - "engines": { - "node": ">=4" - } + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", + "license": "MIT" }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", + "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" } }, - "node_modules/antlr4": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.13.1.tgz", - "integrity": "sha512-kiXTspaRYvnIArgE97z5YVVf/cDVQABr3abFRR6mE7yesLMkgu4ujuyV/sgxafQ8wgve0DJQUJ38Z8tkgA2izA==", - "dev": true, - "engines": { - "node": ">=16" + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/memdown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" } }, - "node_modules/antlr4ts": { - "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 - }, - "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==", + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "license": "MPL-2.0", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" } }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "devOptional": true + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "license": "MIT" }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", + "license": "MIT" }, - "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, - "engines": { - "node": ">=6" + "node_modules/ganache-core/node_modules/ethereumjs-block/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==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-blockchain": { + "version": "4.0.4", + "license": "MPL-2.0", "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "async": "^2.6.1", + "ethashjs": "~0.0.7", + "ethereumjs-block": "~2.2.2", + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.1.0", + "flow-stoplight": "^1.0.0", + "level-mem": "^3.0.1", + "lru-cache": "^5.1.1", + "rlp": "^2.2.2", + "semaphore": "^1.1.0" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + "node_modules/ganache-core/node_modules/ethereumjs-common": { + "version": "1.5.0", + "license": "MIT" }, - "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "dev": true, + "node_modules/ganache-core/node_modules/ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "license": "MPL-2.0", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/ganache-core/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "license": "MPL-2.0", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" } }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node_modules/ganache-core/node_modules/ethereumjs-vm": { + "version": "4.2.0", + "license": "MPL-2.0", + "dependencies": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "core-js-pure": "^3.0.1", + "ethereumjs-account": "^3.0.0", + "ethereumjs-block": "^2.2.2", + "ethereumjs-blockchain": "^4.0.3", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.2", + "ethereumjs-util": "^6.2.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1", + "util.promisify": "^1.0.0" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", - "dev": true, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "xtend": "~4.0.0" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "abstract-leveldown": "~2.6.0" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "errno": "~0.1.1" } }, - "node_modules/array.prototype.reduce": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", - "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==", - "dev": true, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dev": true, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", + "license": "MIT", + "dependencies": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + } }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "license": "MIT", "dependencies": { - "safer-buffer": "~2.1.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", + "dependencies": { + "object-keys": "~0.4.0" + }, "engines": { - "node": ">=0.8" + "node": ">=0.4" } }, - "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==", - "engines": { - "node": "*" + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "license": "MIT", + "dependencies": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" } }, - "node_modules/ast-parents": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz", - "integrity": "sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==", - "dev": true + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", + "license": "MIT" }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" } }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/memdown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "license": "MIT", "dependencies": { - "lodash": "^4.17.14" + "xtend": "~4.0.0" } }, - "node_modules/async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "license": "MPL-2.0", "dependencies": { - "async": "^2.4.0" + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" } }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "license": "MIT" }, - "node_modules/async-mutex": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz", - "integrity": "sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==", + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "license": "MPL-2.0", "dependencies": { - "tslib": "^2.0.0" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/async-mutex/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/asynckit": { + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/object-keys": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "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, - "engines": { - "node": ">= 4.0.0" - } + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", + "license": "MIT" }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/ganache-core/node_modules/ethereumjs-vm/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==", + "license": "MIT" }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "engines": { - "node": "*" + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "license": "MIT" }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", - "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", + "node_modules/ganache-core/node_modules/ethereumjs-wallet": { + "version": "0.6.5", + "license": "MIT", + "optional": true, "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.2", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "aes-js": "^3.1.1", + "bs58check": "^2.1.2", + "ethereum-cryptography": "^0.1.3", + "ethereumjs-util": "^6.0.0", + "randombytes": "^2.0.6", + "safe-buffer": "^5.1.2", + "scryptsy": "^1.2.1", + "utf8": "^3.0.0", + "uuid": "^3.3.2" } }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz", - "integrity": "sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg==", + "node_modules/ganache-core/node_modules/ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", + "license": "MIT", + "optional": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2", - "core-js-compat": "^3.32.2" + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", - "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } + "node_modules/ganache-core/node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "license": "MIT", + "optional": true }, - "node_modules/backoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", - "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", + "node_modules/ganache-core/node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "license": "MIT", "dependencies": { - "precond": "0.2" + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "node_modules/ganache-core/node_modules/eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", + "license": "MIT", + "optional": true }, - "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" + "node_modules/ganache-core/node_modules/events": { + "version": "3.2.0", + "license": "MIT", + "engines": { + "node": ">=0.8.x" } }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "node_modules/ganache-core/node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "license": "MIT", "dependencies": { - "tweetnacl": "^0.14.3" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + "node_modules/ganache-core/node_modules/expand-brackets": { + "version": "2.1.4", + "license": "MIT", + "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/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } }, - "node_modules/big-integer": { - "version": "1.6.36", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", - "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", - "dev": true, + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, "engines": { - "node": ">=0.6" + "node": ">=0.10.0" } }, - "node_modules/big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", - "dev": true, - "engines": { - "node": "*" + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bigjs" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/bigint-crypto-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz", - "integrity": "sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==", + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, "engines": { - "node": ">=14.0.0" + "node": ">=0.10.0" } }, - "node_modules/bignumber.js": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", - "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "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==", + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-buffer": { + "version": "1.1.6", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/bip39": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz", - "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==", - "dev": true, + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", "dependencies": { - "@types/node": "11.11.6", - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1" + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/bip39/node_modules/@types/node": { - "version": "11.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", - "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==", - "dev": true + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "node_modules/ganache-core/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==", + "license": "MIT" }, - "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "node_modules/ganache-core/node_modules/express": { + "version": "4.17.1", + "license": "MIT", + "optional": true, "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", "type-is": "~1.6.18", - "unpipe": "1.0.0" + "utils-merge": "1.0.1", + "vary": "~1.1.2" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">= 0.10.0" } }, - "node_modules/body-parser/node_modules/debug": { + "node_modules/ganache-core/node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "optional": true, "dependencies": { "ms": "2.0.0" } }, - "node_modules/body-parser/node_modules/ms": { + "node_modules/ganache-core/node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT", + "optional": true }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, + "node_modules/ganache-core/node_modules/express/node_modules/qs": { + "version": "6.7.0", + "license": "BSD-3-Clause", + "optional": true, "engines": { "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "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/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + "node_modules/ganache-core/node_modules/express/node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT", + "optional": true }, - "node_modules/browser-level": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", - "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", + "node_modules/ganache-core/node_modules/ext": { + "version": "1.4.0", + "license": "ISC", "dependencies": { - "abstract-level": "^1.0.2", - "catering": "^2.1.1", - "module-error": "^1.0.2", - "run-parallel-limit": "^1.1.0" + "type": "^2.0.0" } }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } + "node_modules/ganache-core/node_modules/ext/node_modules/type": { + "version": "2.1.0", + "license": "ISC" }, - "node_modules/browserify-aes/node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + "node_modules/ganache-core/node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" }, - "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/ganache-core/node_modules/extend-shallow": { + "version": "3.0.2", + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">=0.10.0" } }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "node_modules/ganache-core/node_modules/extglob": { + "version": "2.0.4", + "license": "MIT", "dependencies": { - "base-x": "^3.0.2" + "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/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "node_modules/ganache-core/node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "license": "MIT", "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "bin": { - "btoa": "bin/btoa.js" + "node_modules/ganache-core/node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" }, "engines": { - "node": ">= 0.4.0" + "node": ">=0.10.0" } }, - "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/ganache-core/node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "node_modules/ganache-core/node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" }, - "node_modules/buffer-reverse": { + "node_modules/ganache-core/node_modules/fake-merkle-patricia-tree": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz", - "integrity": "sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==" - }, - "node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==" - }, - "node_modules/buffer-xor": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", - "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", - "dev": true, + "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", + "integrity": "sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==", + "license": "ISC", "dependencies": { - "safe-buffer": "^5.1.1" + "checkpoint-store": "^1.1.0" } }, - "node_modules/bufferutil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", - "hasInstallScript": true, + "node_modules/ganache-core/node_modules/fast-deep-equal": { + "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==", + "license": "MIT" + }, + "node_modules/ganache-core/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==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/fetch-ponyfill": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", + "integrity": "sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g==", + "license": "MIT", "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" + "node-fetch": "~1.7.1" } }, - "node_modules/bufio": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bufio/-/bufio-1.2.1.tgz", - "integrity": "sha512-9oR3zNdupcg/Ge2sSHQF3GX+kmvL/fTPvD0nd5AGLq8SjUYnTz+SlFjK/GXidndbZtIj+pVKXiWeR9w6e9wKCA==", + "node_modules/ganache-core/node_modules/fetch-ponyfill/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "license": "MIT", "engines": { - "node": ">=14.0.0" + "node": ">=0.10.0" } }, - "node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, + "node_modules/ganache-core/node_modules/fetch-ponyfill/node_modules/node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "license": "MIT", "dependencies": { - "semver": "^7.0.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, - "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, + "node_modules/ganache-core/node_modules/finalhandler": { + "version": "1.1.2", + "license": "MIT", + "optional": true, "dependencies": { - "yallist": "^4.0.0" + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.8" } }, - "node_modules/builtins/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, + "node_modules/ganache-core/node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "optional": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "ms": "2.0.0" } }, - "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/ganache-core/node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT", + "optional": true }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "node_modules/ganache-core/node_modules/find-yarn-workspace-root": { + "version": "1.2.1", + "license": "Apache-2.0", "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "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": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", - "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", - "engines": { - "node": ">=10.6.0" + "fs-extra": "^4.0.3", + "micromatch": "^3.1.4" } }, - "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/ganache-core/node_modules/find-yarn-workspace-root/node_modules/braces": { + "version": "2.3.2", + "license": "MIT", "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" + "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" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "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==", + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "license": "MIT", "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" + "is-extendable": "^0.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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": ">=0.10.0" } }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fill-range": { + "version": "4.0.0", + "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", - "dev": true, - "engines": { - "node": ">=4" + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fs-extra": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001576", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", - "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-buffer": { + "version": "1.1.6", + "license": "MIT" }, - "node_modules/case": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz", - "integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==", + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-extendable": { + "version": "0.1.1", + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, - "node_modules/catering": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-number": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/cbor": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", - "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", - "dev": true, + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", "dependencies": { - "nofilter": "^3.1.0" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=12.19" + "node": ">=0.10.0" } }, - "node_modules/chai": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.8.tgz", - "integrity": "sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==", + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/micromatch": { + "version": "3.1.10", + "license": "MIT", "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "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": ">=4" + "node": ">=0.10.0" } }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/to-regex-range": { + "version": "2.1.1", + "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/change-case": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz", - "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==", - "dev": true, + "node_modules/ganache-core/node_modules/flow-stoplight": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "license": "MIT", "dependencies": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" + "is-callable": "^1.1.3" } }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", - "dev": true, + "node_modules/ganache-core/node_modules/for-in": { + "version": "1.0.2", + "license": "MIT", "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "node_modules/ganache-core/node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "license": "Apache-2.0", "engines": { "node": "*" } }, - "node_modules/checkpoint-store": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", - "integrity": "sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg==", + "node_modules/ganache-core/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "license": "MIT", "dependencies": { - "functional-red-black-tree": "^1.0.1" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" } }, - "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "dev": true, - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" - }, + "node_modules/ganache-core/node_modules/forwarded": { + "version": "0.1.2", + "license": "MIT", + "optional": true, "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + "node": ">= 0.6" } }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "dev": true, + "node_modules/ganache-core/node_modules/fragment-cache": { + "version": "0.2.1", + "license": "MIT", "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" + "map-cache": "^0.2.2" }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "node_modules/ganache-core/node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/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==", + "license": "MIT", "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" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "node": ">=6 <7 || >=8" } }, - "node_modules/chokidar/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==", + "node_modules/ganache-core/node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/get-intrinsic": { + "version": "1.0.2", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" }, - "engines": { - "node": ">= 6" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "node_modules/cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "deprecated": "This module has been superseded by the multiformats module", + "node_modules/ganache-core/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==", + "license": "MIT", + "optional": true, "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" + "pump": "^3.0.0" }, "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" + "node_modules/ganache-core/node_modules/get-value": { + "version": "2.0.6", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "node_modules/ganache-core/node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "assert-plus": "^1.0.0" } }, - "node_modules/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "node_modules/classic-level": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz", - "integrity": "sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==", - "hasInstallScript": true, + "node_modules/ganache-core/node_modules/glob": { + "version": "7.1.3", + "license": "ISC", "dependencies": { - "abstract-level": "^1.0.2", - "catering": "^2.1.0", - "module-error": "^1.0.1", - "napi-macros": "^2.2.2", - "node-gyp-build": "^4.3.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=12" + "node": "*" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" + "node_modules/ganache-core/node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "license": "MIT", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" } }, - "node_modules/cli-table3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", - "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", - "dev": true, + "node_modules/ganache-core/node_modules/got": { + "version": "9.6.0", + "license": "MIT", + "optional": true, "dependencies": { - "object-assign": "^4.1.0", - "string-width": "^2.1.1" + "@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" }, "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "colors": "^1.1.2" + "node": ">=8.6" } }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/ganache-core/node_modules/got/node_modules/get-stream": { + "version": "4.1.0", + "license": "MIT", + "optional": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "pump": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/ganache-core/node_modules/graceful-fs": { + "version": "4.2.4", + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "license": "ISC", "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/ganache-core/node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "ajv": "^6.12.3", + "har-schema": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/ganache-core/node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "function-bind": "^1.1.1" }, "engines": { - "node": ">=8" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "engines": { - "node": ">=0.8" + "node": ">= 0.4.0" } }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "node_modules/ganache-core/node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "license": "MIT", "dependencies": { - "mimic-response": "^1.0.0" + "ansi-regex": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true, + "node_modules/ganache-core/node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "license": "MIT", "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", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" + "node_modules/ganache-core/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" } }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "node_modules/ganache-core/node_modules/has-symbol-support-x": { + "version": "1.4.2", + "license": "MIT", + "optional": true, + "engines": { + "node": "*" + } }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, + "node_modules/ganache-core/node_modules/has-symbols": { + "version": "1.0.1", + "license": "MIT", "engines": { - "node": ">=0.1.90" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/ganache-core/node_modules/has-to-string-tag-x": { + "version": "1.4.1", + "license": "MIT", + "optional": true, "dependencies": { - "delayed-stream": "~1.0.0" + "has-symbol-support-x": "^1.4.1" }, "engines": { - "node": ">= 0.8" + "node": "*" } }, - "node_modules/command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" - }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, + "node_modules/ganache-core/node_modules/has-value": { + "version": "1.0.0", + "license": "MIT", "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" }, "engines": { - "node": ">=4.0.0" + "node": ">=0.10.0" } }, - "node_modules/command-line-usage": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", - "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", - "dev": true, + "node_modules/ganache-core/node_modules/has-values": { + "version": "1.0.0", + "license": "MIT", "dependencies": { - "array-back": "^4.0.2", - "chalk": "^2.4.2", - "table-layout": "^1.0.2", - "typical": "^5.2.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, + "node_modules/ganache-core/node_modules/has-values/node_modules/is-buffer": { + "version": "1.1.6", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, + "node_modules/ganache-core/node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "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, + "node_modules/ganache-core/node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, "engines": { - "node": ">=14" + "node": ">=0.10.0" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "node_modules/ganache-core/node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], + "node_modules/ganache-core/node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/concat-stream/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/concat-stream/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, + "node_modules/ganache-core/node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", "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" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "node_modules/concat-stream/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/ganache-core/node_modules/heap": { + "version": "0.2.6" }, - "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, + "node_modules/ganache-core/node_modules/hmac-drbg": { + "version": "1.0.1", + "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/constant-case": { + "node_modules/ganache-core/node_modules/home-or-tmp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==", - "dev": true, + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==", + "license": "MIT", "dependencies": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "node_modules/ganache-core/node_modules/http-cache-semantics": { + "version": "4.1.0", + "license": "BSD-2-Clause", + "optional": true + }, + "node_modules/ganache-core/node_modules/http-errors": { + "version": "1.7.2", + "license": "MIT", + "optional": true, "dependencies": { - "safe-buffer": "5.2.1" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" }, "engines": { "node": ">= 0.6" } }, - "node_modules/content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", + "node_modules/ganache-core/node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "license": "ISC", + "optional": true + }, + "node_modules/ganache-core/node_modules/http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==", + "license": "ISC", + "optional": true + }, + "node_modules/ganache-core/node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "license": "MIT", "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" } }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "node_modules/ganache-core/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "peer": true + "node_modules/ganache-core/node_modules/idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "license": "MIT", + "optional": true, + "dependencies": { + "punycode": "2.1.0" + }, + "engines": { + "node": ">=4.0.0" + } }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "node_modules/ganache-core/node_modules/idna-uts46-hx/node_modules/punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==", + "license": "MIT", + "optional": true, "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + "node_modules/ganache-core/node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" }, - "node_modules/core-js-compat": { - "version": "3.32.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz", - "integrity": "sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==", + "node_modules/ganache-core/node_modules/immediate": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", + "integrity": "sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "license": "ISC", "dependencies": { - "browserslist": "^4.21.10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/core-js-pure": { - "version": "3.32.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.32.2.tgz", - "integrity": "sha512-Y2rxThOuNywTjnX/PgA5vWM6CZ9QB9sz9oGeCixV8MqXZO70z/5SHzf9EeBrEBK0PN36DnEBBu9O/aGWzKuMZQ==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "node_modules/ganache-core/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" } }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + "node_modules/ganache-core/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.10" + } }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "node_modules/ganache-core/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "license": "MIT", "dependencies": { - "object-assign": "^4", - "vary": "^1" + "kind-of": "^6.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=0.10.0" } }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dev": true, + "node_modules/ganache-core/node_modules/is-arguments": { + "version": "1.1.0", + "license": "MIT", "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" + "call-bind": "^1.0.0" }, "engines": { - "node": ">=14" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/crc-32": { + "node_modules/ganache-core/node_modules/is-callable": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "bin": { - "crc32": "bin/crc32.njs" - }, + "license": "MIT", "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "devOptional": true - }, - "node_modules/cross-fetch": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", - "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==", + "node_modules/ganache-core/node_modules/is-ci": { + "version": "2.0.0", + "license": "MIT", "dependencies": { - "node-fetch": "^2.6.7", - "whatwg-fetch": "^2.0.4" + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, + "node_modules/ganache-core/node_modules/is-data-descriptor": { + "version": "1.0.0", + "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "kind-of": "^6.0.0" }, "engines": { - "node": ">= 8" + "node": ">=0.10.0" } }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", - "dev": true, + "node_modules/ganache-core/node_modules/is-date-object": { + "version": "1.0.2", + "license": "MIT", "engines": { - "node": "*" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/crypto-addr-codec": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.8.tgz", - "integrity": "sha512-GqAK90iLLgP3FvhNmHbpT3wR6dEdaM8hZyZtLX29SPardh3OA13RFLHDR6sntGCgRWOfiHqW6sIyohpNqOtV/g==", - "dev": true, + "node_modules/ganache-core/node_modules/is-descriptor": { + "version": "1.0.2", + "license": "MIT", "dependencies": { - "base-x": "^3.0.8", - "big-integer": "1.6.36", - "blakejs": "^1.1.0", - "bs58": "^4.0.1", - "ripemd160-min": "0.0.6", - "safe-buffer": "^5.2.0", - "sha3": "^2.1.1" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/crypto-js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", - "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, + "node_modules/ganache-core/node_modules/is-extendable": { + "version": "1.0.1", + "license": "MIT", "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" + "is-plain-object": "^2.0.4" }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, + "node_modules/ganache-core/node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=0.10.0" }, "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dependencies": { - "assert-plus": "^1.0.0" - }, + "node_modules/ganache-core/node_modules/is-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", + "integrity": "sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg==", + "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=0.10.0" } }, - "node_modules/death": { - "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 + "node_modules/ganache-core/node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "license": "MIT" }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, + "node_modules/ganache-core/node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "license": "MIT", "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "node_modules/ganache-core/node_modules/is-negative-zero": { + "version": "2.0.1", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/is-object": { + "version": "1.0.2", + "license": "MIT", + "optional": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/is-plain-obj": { + "version": "1.1.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "node_modules/ganache-core/node_modules/is-plain-object": { + "version": "2.0.4", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, "engines": { - "node": ">=0.10" + "node": ">=0.10.0" } }, - "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/ganache-core/node_modules/is-regex": { + "version": "1.1.1", + "license": "MIT", "dependencies": { - "mimic-response": "^3.1.0" + "has-symbols": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/ganache-core/node_modules/is-retry-allowed": { + "version": "1.2.0", + "license": "MIT", + "optional": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "node_modules/ganache-core/node_modules/is-symbol": { + "version": "1.0.3", + "license": "MIT", "dependencies": { - "type-detect": "^4.0.0" + "has-symbols": "^1.0.1" }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, + "node_modules/ganache-core/node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/is-windows": { + "version": "1.0.2", + "license": "MIT", "engines": { - "node": ">=4.0.0" + "node": ">=0.10.0" } }, - "node_modules/deep-is": { - "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 + "node_modules/ganache-core/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, - "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/ganache-core/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/isobject": { + "version": "3.0.1", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, + "node_modules/ganache-core/node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/isurl": { + "version": "1.0.0", + "license": "MIT", + "optional": true, "dependencies": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" }, "engines": { - "node": ">=6" + "node": ">= 4" } }, - "node_modules/deferred-leveldown/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, + "node_modules/ganache-core/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==", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/json-buffer": { + "version": "3.0.0", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/json-rpc-engine": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz", + "integrity": "sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA==", + "license": "ISC", "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" + "async": "^2.0.1", + "babel-preset-env": "^1.7.0", + "babelify": "^7.3.0", + "json-rpc-error": "^2.0.0", + "promise-to-callback": "^1.0.0", + "safe-event-emitter": "^1.0.1" } }, - "node_modules/deferred-leveldown/node_modules/level-supports": { + "node_modules/ganache-core/node_modules/json-rpc-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/json-rpc-error/-/json-rpc-error-2.0.0.tgz", + "integrity": "sha512-EwUeWP+KgAZ/xqFpaP6YDAXMtCJi+o/QQpCQFIYyxr01AdADi2y413eM8hSqJcoQym9WMePAJWoaODEJufC4Ug==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1" + } + }, + "node_modules/ganache-core/node_modules/json-rpc-random-id": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, + "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", + "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==", + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/json-schema": { + "version": "0.2.3" + }, + "node_modules/ganache-core/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/json-stable-stringify": { + "version": "1.0.1", + "license": "MIT", "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" + "jsonify": "~0.0.0" } }, - "node_modules/define-data-property": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", - "dev": true, + "node_modules/ganache-core/node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/ganache-core/node_modules/jsonify": { + "version": "0.0.0", + "license": "Public Domain" + }, + "node_modules/ganache-core/node_modules/jsprim": { + "version": "1.4.1", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, + "node_modules/ganache-core/node_modules/keccak": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", + "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", + "hasInstallScript": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10.0.0" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" + "node_modules/ganache-core/node_modules/keyv": { + "version": "3.1.0", + "license": "MIT", + "optional": true, + "dependencies": { + "json-buffer": "3.0.0" } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "node_modules/ganache-core/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==", + "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node_modules/ganache-core/node_modules/klaw-sync": { + "version": "6.0.0", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11" } }, - "node_modules/detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", - "dev": true, + "node_modules/ganache-core/node_modules/level-codec": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", + "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", + "license": "MIT", + "dependencies": { + "buffer": "^5.6.0" + }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", - "dev": true, + "node_modules/ganache-core/node_modules/level-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", + "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", + "license": "MIT", "dependencies": { - "address": "^1.0.1", - "debug": "4" + "errno": "~0.1.1" }, - "bin": { - "detect": "bin/detect-port.js", - "detect-port": "bin/detect-port.js" + "engines": { + "node": ">=6" } }, - "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==", + "node_modules/ganache-core/node_modules/level-iterator-stream": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.5", + "xtend": "^4.0.0" + }, "engines": { - "node": ">=0.3.1" + "node": ">=4" } }, - "node_modules/difflib": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", - "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", - "dev": true, + "node_modules/ganache-core/node_modules/level-mem": { + "version": "3.0.1", + "license": "MIT", "dependencies": { - "heap": ">= 0.2.0" + "level-packager": "~4.0.0", + "memdown": "~3.0.0" }, "engines": { - "node": "*" + "node": ">=6" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, + "node_modules/ganache-core/node_modules/level-mem/node_modules/abstract-leveldown": { + "version": "5.0.0", + "license": "MIT", "dependencies": { - "path-type": "^4.0.0" + "xtend": "~4.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/doctrine": { + "node_modules/ganache-core/node_modules/level-mem/node_modules/ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/level-mem/node_modules/memdown": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, + "license": "MIT", "dependencies": { - "esutils": "^2.0.2" + "abstract-leveldown": "~5.0.0", + "functional-red-black-tree": "~1.0.1", + "immediate": "~3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" }, "engines": { - "node": ">=6.0.0" + "node": ">=6" } }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, + "node_modules/ganache-core/node_modules/level-mem/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==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/level-packager": { + "version": "4.0.1", + "license": "MIT", "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" + "encoding-down": "~5.0.0", + "levelup": "^3.0.0" }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + "engines": { + "node": ">=6" } }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + "node_modules/ganache-core/node_modules/level-post": { + "version": "1.0.7", + "license": "MIT", + "dependencies": { + "ltgt": "^2.1.2" + } }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] + "node_modules/ganache-core/node_modules/level-sublevel": { + "version": "6.6.4", + "license": "MIT", + "dependencies": { + "bytewise": "~1.1.0", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0", + "level-iterator-stream": "^2.0.3", + "ltgt": "~2.1.1", + "pull-defer": "^0.2.2", + "pull-level": "^2.0.3", + "pull-stream": "^3.6.8", + "typewiselite": "~1.0.0", + "xtend": "~4.0.0" + } }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, + "node_modules/ganache-core/node_modules/level-ws": { + "version": "1.0.0", + "license": "MIT", "dependencies": { - "domelementtype": "^2.3.0" + "inherits": "^2.0.3", + "readable-stream": "^2.2.8", + "xtend": "^4.0.1" }, "engines": { - "node": ">= 4" + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/levelup": { + "version": "3.1.1", + "license": "MIT", + "dependencies": { + "deferred-leveldown": "~4.0.0", + "level-errors": "~2.0.0", + "level-iterator-stream": "~3.0.0", + "xtend": "~4.0.0" }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "engines": { + "node": ">=6" } }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, + "node_modules/ganache-core/node_modules/levelup/node_modules/level-iterator-stream": { + "version": "3.0.1", + "license": "MIT", "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "xtend": "^4.0.0" }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" + "engines": { + "node": ">=6" } }, - "node_modules/dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==", - "dev": true, + "node_modules/ganache-core/node_modules/lodash": { + "version": "4.17.20", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/looper": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { - "no-case": "^2.2.0" + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" } }, - "node_modules/dotenv": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", - "dev": true, + "node_modules/ganache-core/node_modules/lowercase-keys": { + "version": "1.0.1", + "license": "MIT", + "optional": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "node_modules/ganache-core/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==", + "license": "ISC", "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "yallist": "^3.0.2" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "node_modules/ganache-core/node_modules/ltgt": { + "version": "2.1.3", + "license": "MIT" }, - "node_modules/electron-to-chromium": { - "version": "1.4.628", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.628.tgz", - "integrity": "sha512-2k7t5PHvLsufpP6Zwk0nof62yLOsCf032wZx7/q0mv8gwlXjhcxI3lz6f0jBr0GrnWKcm3burXzI3t5IrcdUxw==" + "node_modules/ganache-core/node_modules/map-cache": { + "version": "0.2.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "node_modules/ganache-core/node_modules/map-visit": { + "version": "1.0.0", + "license": "MIT", "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "node_modules/ganache-core/node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } }, - "node_modules/emittery": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz", - "integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==", - "dev": true, + "node_modules/ganache-core/node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "optional": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "node": ">= 0.6" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "node_modules/ganache-core/node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "license": "MIT", + "optional": true }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" + "node_modules/ganache-core/node_modules/merkle-patricia-tree": { + "version": "3.0.0", + "license": "MPL-2.0", + "dependencies": { + "async": "^2.6.1", + "ethereumjs-util": "^5.2.0", + "level-mem": "^3.0.1", + "level-ws": "^1.0.0", + "readable-stream": "^3.0.6", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + } + }, + "node_modules/ganache-core/node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { + "version": "5.2.1", + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/encoding-down": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", - "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", - "dev": true, + "node_modules/ganache-core/node_modules/merkle-patricia-tree/node_modules/readable-stream": { + "version": "3.6.0", + "license": "MIT", "dependencies": { - "abstract-leveldown": "^6.2.1", "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0" + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=6" + "node": ">= 6" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" + "node_modules/ganache-core/node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" } }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "node_modules/ganache-core/node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "license": "MIT", "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" }, - "engines": { - "node": ">=8.6" + "bin": { + "miller-rabin": "bin/miller-rabin" } }, - "node_modules/enquirer/node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "node_modules/ganache-core/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/enquirer/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/ganache-core/node_modules/mime-db": { + "version": "1.45.0", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/enquirer/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/ganache-core/node_modules/mime-types": { + "version": "2.1.28", + "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "mime-db": "1.45.0" }, "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, + "node_modules/ganache-core/node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "license": "MIT", + "optional": true, "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "node": ">=4" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "engines": { - "node": ">=6" + "node_modules/ganache-core/node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dependencies": { + "dom-walk": "^0.1.0" } }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "node_modules/ganache-core/node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/minimatch": { + "version": "3.0.4", + "license": "ISC", "dependencies": { - "prr": "~1.0.1" + "brace-expansion": "^1.1.7" }, - "bin": { - "errno": "cli.js" + "engines": { + "node": "*" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, + "node_modules/ganache-core/node_modules/minimist": { + "version": "1.2.5", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/minizlib": { + "version": "1.3.3", + "license": "MIT", + "optional": true, "dependencies": { - "is-arrayish": "^0.2.1" + "minipass": "^2.9.0" } }, - "node_modules/es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", - "dev": true, + "node_modules/ganache-core/node_modules/minizlib/node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "license": "ISC", + "optional": true, "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/ganache-core/node_modules/mixin-deep": { + "version": "1.3.2", + "license": "MIT", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true + "node_modules/ganache-core/node_modules/mkdirp": { + "version": "0.5.5", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, + "node_modules/ganache-core/node_modules/mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", + "license": "ISC", + "optional": true, "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "mkdirp": "*" }, "engines": { - "node": ">= 0.4" + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/mock-fs": { + "version": "4.13.0", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/ms": { + "version": "2.1.3", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/multibase": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", + "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", + "license": "MIT", + "optional": true, + "dependencies": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + }, + "node_modules/ganache-core/node_modules/multicodec": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", + "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", + "license": "MIT", + "optional": true, + "dependencies": { + "varint": "^5.0.0" + } + }, + "node_modules/ganache-core/node_modules/multihashes": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", + "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, + "node_modules/ganache-core/node_modules/multihashes/node_modules/multibase": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", + "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", + "license": "MIT", + "optional": true, "dependencies": { - "has": "^1.0.3" + "base-x": "^3.0.8", + "buffer": "^5.5.0" } }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, + "node_modules/ganache-core/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", + "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/nanomatch": { + "version": "1.2.13", + "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "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.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "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==", - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, + "node_modules/ganache-core/node_modules/negotiator": { + "version": "0.6.2", + "license": "MIT", + "optional": true, "engines": { - "node": ">=0.10" + "node": ">= 0.6" } }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } + "node_modules/ganache-core/node_modules/next-tick": { + "version": "1.0.0", + "license": "MIT" }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + "node_modules/ganache-core/node_modules/nice-try": { + "version": "1.0.5", + "license": "MIT" }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } + "node_modules/ganache-core/node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "inBundle": true, + "license": "MIT" }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "node_modules/ganache-core/node_modules/node-fetch": { + "version": "2.1.2", + "license": "MIT", "engines": { - "node": ">=6" + "node": "4.x || >=6.0.0" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "node_modules/ganache-core/node_modules/node-gyp-build": { + "version": "4.2.3", + "inBundle": true, + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/ganache-core/node_modules/normalize-url": { + "version": "4.5.0", + "license": "MIT", + "optional": true, "engines": { - "node": ">=0.8.0" + "node": ">=8" } }, - "node_modules/escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", - "dev": true, + "node_modules/ganache-core/node_modules/number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", + "license": "MIT", + "optional": true, "dependencies": { - "esprima": "^2.7.1", - "estraverse": "^1.9.1", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" }, "engines": { - "node": ">=0.12.0" - }, - "optionalDependencies": { - "source-map": "~0.2.0" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", - "dev": true, + "node_modules/ganache-core/node_modules/number-to-bn/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "license": "Apache-2.0", "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, + "node_modules/ganache-core/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==", + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, + "node_modules/ganache-core/node_modules/object-copy": { + "version": "0.1.0", + "license": "MIT", "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, + "node_modules/ganache-core/node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, + "node_modules/ganache-core/node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "license": "MIT", "dependencies": { - "prelude-ls": "~1.1.2" + "kind-of": "^3.0.2" }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", - "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.50.0", - "@humanwhocodes/config-array": "^0.11.11", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" + "node_modules/ganache-core/node_modules/object-copy/node_modules/is-buffer": { + "version": "1.1.6", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=0.10.0" } }, - "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" + "node_modules/ganache-core/node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, - "peerDependencies": { - "eslint": ">=7.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eslint-config-standard": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", - "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", - "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" - } - ], + "node_modules/ganache-core/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "license": "MIT", "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": "^8.0.1", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", - "eslint-plugin-promise": "^6.0.0" + "node": ">=0.10.0" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, + "node_modules/ganache-core/node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" + "node_modules/ganache-core/node_modules/object-inspect": { + "version": "1.9.0", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dev": true, + "node_modules/ganache-core/node_modules/object-is": { + "version": "1.1.4", + "license": "MIT", "dependencies": { - "debug": "^3.2.7" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" }, "engines": { - "node": ">=4" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, + "node_modules/ganache-core/node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ganache-core/node_modules/object-visit": { + "version": "1.0.1", + "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, + "node_modules/ganache-core/node_modules/object.assign": { + "version": "4.1.2", + "license": "MIT", "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=8.10.0" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-es-x": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.2.0.tgz", - "integrity": "sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==", - "dev": true, + "node_modules/ganache-core/node_modules/object.getownpropertydescriptors": { + "version": "2.1.1", + "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.1.2", - "@eslint-community/regexpp": "^4.6.0" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": ">= 0.8" }, "funding": { - "url": "https://github.com/sponsors/ota-meshi" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/object.pick": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" }, - "peerDependencies": { - "eslint": ">=8" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-import": { - "version": "2.28.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", - "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", - "dev": true, + "node_modules/ganache-core/node_modules/oboe": { + "version": "2.1.4", + "license": "BSD", + "optional": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.findlastindex": "^1.2.2", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.8.0", - "has": "^1.0.3", - "is-core-module": "^2.13.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.6", - "object.groupby": "^1.0.0", - "object.values": "^1.1.6", - "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" + "http-https": "^1.0.0" + } + }, + "node_modules/ganache-core/node_modules/on-finished": { + "version": "2.3.0", + "license": "MIT", + "optional": true, + "dependencies": { + "ee-first": "1.1.1" }, "engines": { - "node": ">=4" + "node": ">= 0.8" + } + }, + "node_modules/ganache-core/node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/ganache-core/node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/p-cancelable": { + "version": "1.1.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/p-timeout": { + "version": "1.2.1", + "license": "MIT", + "optional": true, + "dependencies": { + "p-finally": "^1.0.0" }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "engines": { + "node": ">=4" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, + "node_modules/ganache-core/node_modules/p-timeout/node_modules/p-finally": { + "version": "1.0.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/parse-asn1": { + "version": "5.1.6", + "license": "ISC", + "optional": true, "dependencies": { - "ms": "^2.1.1" + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/parse-headers": { + "version": "2.0.3", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ganache-core/node_modules/pascalcase": { + "version": "0.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, + "node_modules/ganache-core/node_modules/patch-package": { + "version": "6.2.2", + "license": "MIT", "dependencies": { - "esutils": "^2.0.2" + "@yarnpkg/lockfile": "^1.1.0", + "chalk": "^2.4.2", + "cross-spawn": "^6.0.5", + "find-yarn-workspace-root": "^1.2.1", + "fs-extra": "^7.0.1", + "is-ci": "^2.0.0", + "klaw-sync": "^6.0.0", + "minimist": "^1.2.0", + "rimraf": "^2.6.3", + "semver": "^5.6.0", + "slash": "^2.0.0", + "tmp": "^0.0.33" + }, + "bin": { + "patch-package": "index.js" }, "engines": { - "node": ">=0.10.0" + "npm": ">5" } }, - "node_modules/eslint-plugin-n": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.1.0.tgz", - "integrity": "sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg==", - "dev": true, + "node_modules/ganache-core/node_modules/patch-package/node_modules/cross-spawn": { + "version": "6.0.5", + "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "builtins": "^5.0.1", - "eslint-plugin-es-x": "^7.1.0", - "get-tsconfig": "^4.7.0", - "ignore": "^5.2.4", - "is-core-module": "^2.12.1", - "minimatch": "^3.1.2", - "resolve": "^1.22.2", - "semver": "^7.5.3" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "engines": { - "node": ">=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=7.0.0" + "node": ">=4.8" } }, - "node_modules/eslint-plugin-n/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" - }, + "node_modules/ganache-core/node_modules/patch-package/node_modules/path-key": { + "version": "2.0.1", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/eslint-plugin-n/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "node_modules/ganache-core/node_modules/patch-package/node_modules/semver": { + "version": "5.7.1", + "license": "ISC", "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" + } + }, + "node_modules/ganache-core/node_modules/patch-package/node_modules/shebang-command": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-n/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/ganache-core/node_modules/patch-package/node_modules/shebang-regex": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "dependencies": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, + "node_modules/ganache-core/node_modules/patch-package/node_modules/slash": { + "version": "2.0.0", + "license": "MIT", "engines": { - "node": ">=8.10.0" - }, - "peerDependencies": { - "eslint": ">=5.16.0" + "node": ">=6" } }, - "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", - "dev": true, + "node_modules/ganache-core/node_modules/patch-package/node_modules/tmp": { + "version": "0.0.33", + "license": "MIT", "dependencies": { - "prettier-linter-helpers": "^1.0.0" + "os-tmpdir": "~1.0.2" }, "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" + "node": ">=0.6.0" + } + }, + "node_modules/ganache-core/node_modules/patch-package/node_modules/which": { + "version": "1.3.1", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } + "bin": { + "which": "bin/which" } }, - "node_modules/eslint-plugin-promise": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", - "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", - "dev": true, + "node_modules/ganache-core/node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "node": ">=0.10.0" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, + "node_modules/ganache-core/node_modules/path-parse": { + "version": "1.0.6", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/pbkdf2": { + "version": "3.1.1", + "license": "MIT", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.12" } }, - "node_modules/eslint-utils": { + "node_modules/ganache-core/node_modules/performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/posix-character-classes": { + "version": "0.1.1", + "license": "MIT", "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "node": ">=0.10.0" } }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, + "node_modules/ganache-core/node_modules/precond": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", + "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/prepend-http": { + "version": "2.0.0", + "license": "MIT", + "optional": true, "engines": { "node": ">=4" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, + "node_modules/ganache-core/node_modules/private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">= 0.6" } }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, + "node_modules/ganache-core/node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.6.0" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "node_modules/ganache-core/node_modules/process-nextick-args": { + "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==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/promise-to-callback": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", + "integrity": "sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA==", + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "is-fn": "^1.0.0", + "set-immediate-shim": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/proxy-addr": { + "version": "2.0.6", + "license": "MIT", + "optional": true, + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ganache-core/node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/pseudomap": { + "version": "1.0.2", + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/psl": { + "version": "1.8.0", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/public-encrypt": { + "version": "4.0.3", + "license": "MIT", + "optional": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/ganache-core/node_modules/pull-cat": { + "version": "1.1.11", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/pull-defer": { + "version": "0.2.3", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/pull-level": { + "version": "2.0.4", + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "level-post": "^1.0.7", + "pull-cat": "^1.1.9", + "pull-live": "^1.0.1", + "pull-pushable": "^2.0.0", + "pull-stream": "^3.4.0", + "pull-window": "^2.1.4", + "stream-to-pull-stream": "^1.7.1" } }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "node_modules/ganache-core/node_modules/pull-live": { + "version": "1.0.1", + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "pull-cat": "^1.1.9", + "pull-stream": "^3.4.0" } }, - "node_modules/eslint/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==", - "dev": true + "node_modules/ganache-core/node_modules/pull-pushable": { + "version": "2.2.0", + "license": "MIT" }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/ganache-core/node_modules/pull-stream": { + "version": "3.6.14", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/pull-window": { + "version": "2.1.4", + "license": "MIT", + "dependencies": { + "looper": "^2.0.0" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, + "node_modules/ganache-core/node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "license": "MIT", + "optional": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/ganache-core/node_modules/punycode": { + "version": "2.1.1", + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=6" } }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, + "node_modules/ganache-core/node_modules/qs": { + "version": "6.5.2", + "license": "BSD-3-Clause", "engines": { - "node": ">=4.0" + "node": ">=0.6" } }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, + "node_modules/ganache-core/node_modules/query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "license": "MIT", + "optional": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/eslint/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, - "engines": { - "node": ">=8" + "node_modules/ganache-core/node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" } }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, + "node_modules/ganache-core/node_modules/randomfill": { + "version": "1.0.4", + "license": "MIT", + "optional": true, "dependencies": { - "p-locate": "^5.0.0" - }, + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/ganache-core/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "optional": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.6" } }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, + "node_modules/ganache-core/node_modules/raw-body": { + "version": "2.4.0", + "license": "MIT", + "optional": true, "dependencies": { - "yocto-queue": "^0.1.0" + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.8" } }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, + "node_modules/ganache-core/node_modules/readable-stream": { + "version": "2.3.7", + "license": "MIT", "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "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" } }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "node_modules/ganache-core/node_modules/readable-stream/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==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "license": "BSD", "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/ganache-core/node_modules/regex-not": { + "version": "1.0.2", + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, + "node_modules/ganache-core/node_modules/regexp.prototype.flags": { + "version": "1.3.0", + "license": "MIT", "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "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, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.10.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, + "node_modules/ganache-core/node_modules/regexp.prototype.flags/node_modules/es-abstract": { + "version": "1.17.7", + "license": "MIT", "dependencies": { - "estraverse": "^5.1.0" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" }, "engines": { - "node": ">=0.10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" + "node_modules/ganache-core/node_modules/regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, + "node_modules/ganache-core/node_modules/regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw==", + "license": "BSD", "dependencies": { - "estraverse": "^5.2.0" + "jsesc": "~0.5.0" }, - "engines": { - "node": ">=4.0" + "bin": { + "regjsparser": "bin/parser" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, + "node_modules/ganache-core/node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/ganache-core/node_modules/repeat-element": { + "version": "1.1.3", + "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">=0.10.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, + "node_modules/ganache-core/node_modules/repeat-string": { + "version": "1.6.1", + "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">=0.10" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, + "node_modules/ganache-core/node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "license": "MIT", + "dependencies": { + "is-finite": "^1.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "node_modules/ganache-core/node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, "engines": { - "node": ">= 0.6" + "node": ">= 6" } }, - "node_modules/eth-block-tracker": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", - "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", + "node_modules/ganache-core/node_modules/resolve-url": { + "version": "0.2.1", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/responselike": { + "version": "1.0.2", + "license": "MIT", + "optional": true, "dependencies": { - "@babel/plugin-transform-runtime": "^7.5.5", - "@babel/runtime": "^7.5.5", - "eth-query": "^2.1.0", - "json-rpc-random-id": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" + "lowercase-keys": "^1.0.0" } }, - "node_modules/eth-block-tracker/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "node_modules/ganache-core/node_modules/resumer": { + "version": "0.0.0", + "license": "MIT", + "dependencies": { + "through": "~2.3.4" + } + }, + "node_modules/ganache-core/node_modules/ret": { + "version": "0.1.15", + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.12" } }, - "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==", + "node_modules/ganache-core/node_modules/rimraf": { + "version": "2.6.3", + "license": "ISC", "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" } }, - "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==" + "node_modules/ganache-core/node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } }, - "node_modules/eth-gas-reporter": { - "version": "0.2.25", - "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.25.tgz", - "integrity": "sha512-1fRgyE4xUB8SoqLgN3eDfpDfwEfRxh2Sz1b7wzFbyQA+9TekMmvSjjoRu9SKcSVyK+vLkLIsVbJDsTWjw195OQ==", - "dev": true, + "node_modules/ganache-core/node_modules/rlp": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "license": "MPL-2.0", "dependencies": { - "@ethersproject/abi": "^5.0.0-beta.146", - "@solidity-parser/parser": "^0.14.0", - "cli-table3": "^0.5.0", - "colors": "1.4.0", - "ethereum-cryptography": "^1.0.3", - "ethers": "^4.0.40", - "fs-readdir-recursive": "^1.1.0", - "lodash": "^4.17.14", - "markdown-table": "^1.1.3", - "mocha": "^7.1.1", - "req-cwd": "^2.0.0", - "request": "^2.88.0", - "request-promise-native": "^1.0.5", - "sha1": "^1.1.1", - "sync-request": "^6.0.0" - }, - "peerDependencies": { - "@codechecks/client": "^0.1.0" + "bn.js": "^4.11.1" }, - "peerDependenciesMeta": { - "@codechecks/client": { - "optional": true - } + "bin": { + "rlp": "bin/rlp" } }, - "node_modules/eth-gas-reporter/node_modules/@noble/hashes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", - "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] + "node_modules/ganache-core/node_modules/rustbn.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", + "license": "(MIT OR Apache-2.0)" }, - "node_modules/eth-gas-reporter/node_modules/@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", - "dev": true, + "node_modules/ganache-core/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/eth-gas-reporter/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": "github", + "url": "https://github.com/sponsors/feross" + }, { - "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/eth-gas-reporter/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": "patreon", + "url": "https://www.patreon.com/feross" + }, { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "type": "consulting", + "url": "https://feross.org/support" } ], + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/safe-event-emitter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", + "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", + "license": "ISC", "dependencies": { - "@noble/hashes": "~1.2.0", - "@scure/base": "~1.1.0" + "events": "^3.0.0" } }, - "node_modules/eth-gas-reporter/node_modules/ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true, - "engines": { - "node": ">=6" + "node_modules/ganache-core/node_modules/safe-regex": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" } }, - "node_modules/eth-gas-reporter/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true, - "engines": { - "node": ">=6" + "node_modules/ganache-core/node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/scryptsy": { + "version": "1.2.1", + "license": "MIT", + "optional": true, + "dependencies": { + "pbkdf2": "^3.0.3" } }, - "node_modules/eth-gas-reporter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, + "node_modules/ganache-core/node_modules/secp256k1": { + "version": "4.0.2", + "hasInstallScript": true, + "license": "MIT", "dependencies": { - "sprintf-js": "~1.0.2" + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" } }, - "node_modules/eth-gas-reporter/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "node_modules/ganache-core/node_modules/seedrandom": { + "version": "3.0.1", + "license": "MIT" }, - "node_modules/eth-gas-reporter/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, + "node_modules/ganache-core/node_modules/semaphore": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", "engines": { - "node": ">=6" + "node": ">=0.8.0" } }, - "node_modules/eth-gas-reporter/node_modules/chokidar": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", - "dev": true, + "node_modules/ganache-core/node_modules/send": { + "version": "0.17.1", + "license": "MIT", + "optional": true, "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" }, "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.1.1" + "node": ">= 0.8.0" } }, - "node_modules/eth-gas-reporter/node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, + "node_modules/ganache-core/node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "optional": true, "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "ms": "2.0.0" } }, - "node_modules/eth-gas-reporter/node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } + "node_modules/ganache-core/node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT", + "optional": true }, - "node_modules/eth-gas-reporter/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/ganache-core/node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "license": "MIT", + "optional": true }, - "node_modules/eth-gas-reporter/node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, + "node_modules/ganache-core/node_modules/serve-static": { + "version": "1.14.1", + "license": "MIT", + "optional": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, "engines": { - "node": ">=0.3.1" + "node": ">= 0.8.0" } }, - "node_modules/eth-gas-reporter/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/eth-gas-reporter/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "node_modules/ganache-core/node_modules/servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "license": "MIT", + "optional": true, + "dependencies": { + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/eth-gas-reporter/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/ganache-core/node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, + "node_modules/ganache-core/node_modules/set-value": { + "version": "2.0.1", + "license": "MIT", "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" + "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/eth-gas-reporter/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, + "node_modules/ganache-core/node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "license": "MIT", "dependencies": { - "locate-path": "^3.0.0" + "is-extendable": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/flat": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", - "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", - "dev": true, + "node_modules/ganache-core/node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/setprototypeof": { + "version": "1.1.1", + "license": "ISC", + "optional": true + }, + "node_modules/ganache-core/node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "license": "(MIT AND BSD-3-Clause)", "dependencies": { - "is-buffer": "~2.0.3" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" }, "bin": { - "flat": "cli.js" + "sha.js": "bin.js" } }, - "node_modules/eth-gas-reporter/node_modules/fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "deprecated": "\"Please update to latest v2.3 or v2.2\"", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" + "node_modules/ganache-core/node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/simple-get": { + "version": "2.8.1", + "license": "MIT", + "optional": true, + "dependencies": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" } }, - "node_modules/eth-gas-reporter/node_modules/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, + "node_modules/ganache-core/node_modules/snapdragon": { + "version": "0.8.2", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "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": "*" + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/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, + "node_modules/ganache-core/node_modules/snapdragon-node": { + "version": "2.1.1", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, + "node_modules/ganache-core/node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/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==", - "dev": true - }, - "node_modules/eth-gas-reporter/node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, + "node_modules/ganache-core/node_modules/snapdragon-util": { + "version": "3.0.1", + "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "kind-of": "^3.2.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, + "node_modules/ganache-core/node_modules/snapdragon-util/node_modules/is-buffer": { + "version": "1.1.6", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", - "dev": true, + "node_modules/ganache-core/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==", + "license": "MIT", "dependencies": { - "chalk": "^2.4.2" + "ms": "2.0.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "is-extendable": "^0.1.0" }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "license": "MIT", "dependencies": { - "minimist": "^1.2.5" + "kind-of": "^3.0.2" }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/mocha": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", - "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", - "dev": true, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", "dependencies": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "chokidar": "3.3.0", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "3.0.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.5", - "ms": "2.1.1", - "node-environment-flags": "1.0.6", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "1.6.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true + "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-buffer": { + "version": "1.1.6", + "license": "MIT" }, - "node_modules/eth-gas-reporter/node_modules/object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "license": "MIT", "dependencies": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "kind-of": "^3.0.2" }, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", "dependencies": { - "p-limit": "^2.0.0" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/readdirp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", - "dev": true, - "dependencies": { - "picomatch": "^2.0.4" - }, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true + "node_modules/ganache-core/node_modules/snapdragon/node_modules/kind-of": { + "version": "5.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/eth-gas-reporter/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", - "dev": true + "node_modules/ganache-core/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==", + "license": "MIT" }, - "node_modules/eth-gas-reporter/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, + "node_modules/ganache-core/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==", + "license": "BSD-3-Clause", "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, + "node_modules/ganache-core/node_modules/source-map-resolve": { + "version": "0.5.3", + "license": "MIT", "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" + "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/eth-gas-reporter/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node_modules/ganache-core/node_modules/source-map-support": { + "version": "0.5.12", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/eth-gas-reporter/node_modules/supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, + "node_modules/ganache-core/node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true + "node_modules/ganache-core/node_modules/source-map-url": { + "version": "0.4.0", + "license": "MIT" }, - "node_modules/eth-gas-reporter/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, + "node_modules/ganache-core/node_modules/split-string": { + "version": "3.1.0", + "license": "MIT", "dependencies": { - "isexe": "^2.0.0" + "extend-shallow": "^3.0.0" }, - "bin": { - "which": "bin/which" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, + "node_modules/ganache-core/node_modules/sshpk": { + "version": "1.16.1", + "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "node_modules/ganache-core/node_modules/sshpk/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "license": "Unlicense" }, - "node_modules/eth-gas-reporter/node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, + "node_modules/ganache-core/node_modules/static-extend": { + "version": "0.1.2", + "license": "MIT", "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, + "node_modules/ganache-core/node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "license": "MIT", "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eth-gas-reporter/node_modules/yargs-unparser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", - "dev": true, + "node_modules/ganache-core/node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "license": "MIT", "dependencies": { - "flat": "^4.1.0", - "lodash": "^4.17.15", - "yargs": "^13.3.0" + "kind-of": "^3.0.2" }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/eth-json-rpc-filters": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz", - "integrity": "sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw==", + "node_modules/ganache-core/node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", "dependencies": { - "@metamask/safe-event-emitter": "^2.0.0", - "async-mutex": "^0.2.6", - "eth-json-rpc-middleware": "^6.0.0", - "eth-query": "^2.1.2", - "json-rpc-engine": "^6.1.0", - "pify": "^5.0.0" - } - }, - "node_modules/eth-json-rpc-filters/node_modules/pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "engines": { - "node": ">=10" + "is-buffer": "^1.1.5" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eth-json-rpc-infura": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-5.1.0.tgz", - "integrity": "sha512-THzLye3PHUSGn1EXMhg6WTLW9uim7LQZKeKaeYsS9+wOBcamRiCQVGHa6D2/4P0oS0vSaxsBnU/J6qvn0MPdow==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "node_modules/ganache-core/node_modules/static-extend/node_modules/is-buffer": { + "version": "1.1.6", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "license": "MIT", "dependencies": { - "eth-json-rpc-middleware": "^6.0.0", - "eth-rpc-errors": "^3.0.0", - "json-rpc-engine": "^5.3.0", - "node-fetch": "^2.6.0" + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eth-json-rpc-infura/node_modules/json-rpc-engine": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", - "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", + "node_modules/ganache-core/node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", "dependencies": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eth-json-rpc-middleware": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz", - "integrity": "sha512-qqBfLU2Uq1Ou15Wox1s+NX05S9OcAEL4JZ04VZox2NS0U+RtCMjSxzXhLFWekdShUPZ+P8ax3zCO2xcPrp6XJQ==", + "node_modules/ganache-core/node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "license": "MIT", "dependencies": { - "btoa": "^1.2.1", - "clone": "^2.1.1", - "eth-query": "^2.1.2", - "eth-rpc-errors": "^3.0.0", - "eth-sig-util": "^1.4.2", - "ethereumjs-util": "^5.1.2", - "json-rpc-engine": "^5.3.0", - "json-stable-stringify": "^1.0.1", - "node-fetch": "^2.6.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eth-json-rpc-middleware/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "node_modules/ganache-core/node_modules/static-extend/node_modules/kind-of": { + "version": "5.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "node_modules/ganache-core/node_modules/statuses": { + "version": "1.5.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" } }, - "node_modules/eth-json-rpc-middleware/node_modules/json-rpc-engine": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", - "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", + "node_modules/ganache-core/node_modules/stream-to-pull-stream": { + "version": "1.7.3", + "license": "MIT", "dependencies": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" + "looper": "^3.0.0", + "pull-stream": "^3.2.3" } }, - "node_modules/eth-json-rpc-middleware/node_modules/pify": { + "node_modules/ganache-core/node_modules/stream-to-pull-stream/node_modules/looper": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "license": "MIT", + "optional": true, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", + "node_modules/ganache-core/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==", + "license": "MIT", "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" + "safe-buffer": "~5.1.0" } }, - "node_modules/eth-lib/node_modules/bn.js": { - "version": "4.12.0", - "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": { + "node_modules/ganache-core/node_modules/string_decoder/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, - "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==", + "node_modules/ganache-core/node_modules/string.prototype.trim": { + "version": "1.2.3", + "license": "MIT", "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eth-query": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", - "integrity": "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==", + "node_modules/ganache-core/node_modules/string.prototype.trimend": { + "version": "1.0.3", + "license": "MIT", "dependencies": { - "json-rpc-random-id": "^1.0.0", - "xtend": "^4.0.1" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eth-rpc-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", - "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", + "node_modules/ganache-core/node_modules/string.prototype.trimstart": { + "version": "1.0.3", + "license": "MIT", "dependencies": { - "fast-safe-stringify": "^2.0.6" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eth-sig-util": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", - "integrity": "sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw==", - "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", + "node_modules/ganache-core/node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "license": "MIT", "dependencies": { - "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", - "ethereumjs-util": "^5.1.1" + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/eth-sig-util/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/eth-sig-util/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "node_modules/ganache-core/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", - "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "node_modules/ganache-core/node_modules/swarm-js": { + "version": "0.1.40", + "license": "MIT", + "optional": true, "dependencies": { - "js-sha3": "^0.8.0" + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "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/ethereum-common": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" - }, - "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/ganache-core/node_modules/swarm-js/node_modules/fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "license": "MIT", + "optional": 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" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, - "node_modules/ethereum-protocol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz", - "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg==" + "node_modules/ganache-core/node_modules/swarm-js/node_modules/get-stream": { + "version": "3.0.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } }, - "node_modules/ethereum-waffle": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/ethereum-waffle/-/ethereum-waffle-4.0.10.tgz", - "integrity": "sha512-iw9z1otq7qNkGDNcMoeNeLIATF9yKl1M8AIeu42ElfNBplq0e+5PeasQmm8ybY/elkZ1XyRO0JBQxQdVRb8bqQ==", - "dev": true, + "node_modules/ganache-core/node_modules/swarm-js/node_modules/got": { + "version": "7.1.0", + "license": "MIT", + "optional": true, "dependencies": { - "@ethereum-waffle/chai": "4.0.10", - "@ethereum-waffle/compiler": "4.0.3", - "@ethereum-waffle/mock-contract": "4.0.4", - "@ethereum-waffle/provider": "4.0.5", - "solc": "0.8.15", - "typechain": "^8.0.0" - }, - "bin": { - "waffle": "bin/waffle" + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" }, "engines": { - "node": ">=10.0" - }, - "peerDependencies": { - "ethers": "*" + "node": ">=4" } }, - "node_modules/ethereum-waffle/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, + "node_modules/ganache-core/node_modules/swarm-js/node_modules/is-stream": { + "version": "1.1.0", + "license": "MIT", + "optional": true, "engines": { - "node": ">= 12" + "node": ">=0.10.0" } }, - "node_modules/ethereum-waffle/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" + "node_modules/ganache-core/node_modules/swarm-js/node_modules/p-cancelable": { + "version": "0.3.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" } }, - "node_modules/ethereum-waffle/node_modules/solc": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.15.tgz", - "integrity": "sha512-Riv0GNHNk/SddN/JyEuFKwbcWcEeho15iyupTSHw5Np6WuXA5D8kEHbyzDHi6sqmvLzu2l+8b1YmL8Ytple+8w==", - "dev": true, + "node_modules/ganache-core/node_modules/swarm-js/node_modules/prepend-http": { + "version": "1.0.4", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/swarm-js/node_modules/url-parse-lax": { + "version": "1.0.0", + "license": "MIT", + "optional": true, "dependencies": { - "command-exists": "^1.2.8", - "commander": "^8.1.0", - "follow-redirects": "^1.12.1", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "bin": { - "solcjs": "solc.js" + "prepend-http": "^1.0.1" }, "engines": { - "node": ">=10.0.0" + "node": ">=0.10.0" } }, - "node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git", - "integrity": "sha512-qs8G5KwnIO/thOQjv1RvR/4oiTsy6IaCsN+ory5dbiqFXz8sd239aWJH0wmsVNPimL5X1KzQheUpi6xAo6FU4w==", + "node_modules/ganache-core/node_modules/tape": { + "version": "4.13.3", "license": "MIT", "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" + "deep-equal": "~1.1.1", + "defined": "~1.0.0", + "dotignore": "~0.1.2", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.6", + "has": "~1.0.3", + "inherits": "~2.0.4", + "is-regex": "~1.0.5", + "minimist": "~1.2.5", + "object-inspect": "~1.7.0", + "resolve": "~1.17.0", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.2.1", + "through": "~2.3.8" + }, + "bin": { + "tape": "bin/tape" } }, - "node_modules/ethereumjs-abi/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "node_modules/ganache-core/node_modules/tape/node_modules/glob": { + "version": "7.1.6", + "license": "ISC", "dependencies": { - "@types/node": "*" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ethereumjs-abi/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "node_modules/ganache-core/node_modules/tape/node_modules/is-regex": { + "version": "1.0.5", + "license": "MIT", "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/tape/node_modules/object-inspect": { + "version": "1.7.0", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ethereumjs-account": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", - "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", + "node_modules/ganache-core/node_modules/tape/node_modules/resolve": { + "version": "1.17.0", + "license": "MIT", "dependencies": { - "ethereumjs-util": "^5.0.0", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ethereumjs-account/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/ethereumjs-account/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "node_modules/ganache-core/node_modules/tar": { + "version": "4.4.13", + "license": "ISC", + "optional": true, "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "engines": { + "node": ">=4.5" } }, - "node_modules/ethereumjs-block": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", - "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", + "node_modules/ganache-core/node_modules/tar/node_modules/fs-minipass": { + "version": "1.2.7", + "license": "ISC", + "optional": true, "dependencies": { - "async": "^2.0.1", - "ethereum-common": "0.2.0", - "ethereumjs-tx": "^1.2.2", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" + "minipass": "^2.6.0" } }, - "node_modules/ethereumjs-block/node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "node_modules/ganache-core/node_modules/tar/node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "license": "ISC", + "optional": true, "dependencies": { - "xtend": "~4.0.0" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, - "node_modules/ethereumjs-block/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "node_modules/ganache-core/node_modules/through": { + "version": "2.3.8", + "license": "MIT" }, - "node_modules/ethereumjs-block/node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "node_modules/ganache-core/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "license": "MIT", "dependencies": { - "abstract-leveldown": "~2.6.0" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "node_modules/ganache-core/node_modules/timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/ethereumjs-block/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/ethereumjs-block/node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" - }, - "node_modules/ethereumjs-block/node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "node_modules/ganache-core/node_modules/tmp": { + "version": "0.1.0", + "license": "MIT", "dependencies": { - "errno": "~0.1.1" + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" } }, - "node_modules/ethereumjs-block/node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", + "node_modules/ganache-core/node_modules/to-object-path": { + "version": "0.3.0", + "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + "node_modules/ganache-core/node_modules/to-object-path/node_modules/is-buffer": { + "version": "1.1.6", + "license": "MIT" }, - "node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "node_modules/ganache-core/node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + "node_modules/ganache-core/node_modules/to-readable-stream": { + "version": "1.0.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } }, - "node_modules/ethereumjs-block/node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", + "node_modules/ganache-core/node_modules/to-regex": { + "version": "3.0.2", + "license": "MIT", "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" + "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/ethereumjs-block/node_modules/level-ws/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + "node_modules/ganache-core/node_modules/toidentifier": { + "version": "1.0.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6" + } }, - "node_modules/ethereumjs-block/node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "node_modules/ganache-core/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "license": "BSD-3-Clause", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" } }, - "node_modules/ethereumjs-block/node_modules/level-ws/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + "node_modules/ganache-core/node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/ethereumjs-block/node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", + "node_modules/ganache-core/node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", "dependencies": { - "object-keys": "~0.4.0" + "safe-buffer": "^5.0.1" }, "engines": { - "node": ">=0.4" + "node": "*" } }, - "node_modules/ethereumjs-block/node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } + "node_modules/ganache-core/node_modules/tweetnacl": { + "version": "1.0.3", + "license": "Unlicense" }, - "node_modules/ethereumjs-block/node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", + "node_modules/ganache-core/node_modules/tweetnacl-util": { + "version": "0.15.1", + "license": "Unlicense" + }, + "node_modules/ganache-core/node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "optional": true, "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" } }, - "node_modules/ethereumjs-block/node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "node_modules/ganache-core/node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", "dependencies": { - "xtend": "~4.0.0" + "is-typedarray": "^1.0.0" } }, - "node_modules/ethereumjs-block/node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "node_modules/ganache-core/node_modules/typewise": { + "version": "1.0.3", + "license": "MIT", "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" + "typewise-core": "^1.2.0" } }, - "node_modules/ethereumjs-block/node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" + "node_modules/ganache-core/node_modules/typewise-core": { + "version": "1.2.0", + "license": "MIT" }, - "node_modules/ethereumjs-block/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==" + "node_modules/ganache-core/node_modules/typewiselite": { + "version": "1.0.0", + "license": "MIT" }, - "node_modules/ethereumjs-block/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==", + "node_modules/ganache-core/node_modules/ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/underscore": { + "version": "1.9.1", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/union-value": { + "version": "1.0.1", + "license": "MIT", "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" + "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/ethereumjs-block/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/ganache-core/node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/ethereumjs-block/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "bin": { - "semver": "bin/semver" + "node_modules/ganache-core/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==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" } }, - "node_modules/ethereumjs-block/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==", - "dependencies": { - "safe-buffer": "~5.1.0" + "node_modules/ganache-core/node_modules/unorm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", + "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==", + "license": "MIT or GPL-2.0", + "engines": { + "node": ">= 0.4.0" } }, - "node_modules/ethereumjs-common": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", - "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==", - "deprecated": "New package name format for new versions: @ethereumjs/common. Please update." + "node_modules/ganache-core/node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } }, - "node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", + "node_modules/ganache-core/node_modules/unset-value": { + "version": "1.0.0", + "license": "MIT", "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/ethereumjs-tx/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/ethereumjs-tx/node_modules/ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ==" - }, - "node_modules/ethereumjs-tx/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "node_modules/ganache-core/node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "license": "MIT", "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/ethereumjs-util": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz", - "integrity": "sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw==", + "node_modules/ganache-core/node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "license": "MIT", "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" + "isarray": "1.0.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=0.10.0" } }, - "node_modules/ethereumjs-vm": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", - "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", - "deprecated": "New package name format for new versions: @ethereumjs/vm. Please update.", - "dependencies": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "ethereumjs-account": "^2.0.3", - "ethereumjs-block": "~2.2.0", - "ethereumjs-common": "^1.1.0", - "ethereumjs-util": "^6.0.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1" + "node_modules/ganache-core/node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/ethereumjs-vm/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "node_modules/ganache-core/node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", "dependencies": { - "@types/node": "*" + "punycode": "^2.1.0" } }, - "node_modules/ethereumjs-vm/node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "node_modules/ganache-core/node_modules/urix": { + "version": "0.1.0", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/url-parse-lax": { + "version": "3.0.0", + "license": "MIT", + "optional": true, "dependencies": { - "xtend": "~4.0.0" + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/ethereumjs-vm/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "node_modules/ganache-core/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==", + "license": "MIT", + "optional": true }, - "node_modules/ethereumjs-vm/node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "dependencies": { - "abstract-leveldown": "~2.6.0" + "node_modules/ganache-core/node_modules/url-to-options": { + "version": "1.0.1", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 4" } }, - "node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", + "node_modules/ganache-core/node_modules/use": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/utf-8-validate": { + "version": "5.0.4", + "hasInstallScript": true, + "license": "MIT", "dependencies": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" + "node-gyp-build": "^4.2.0" } }, - "node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "node_modules/ganache-core/node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/util.promisify": { + "version": "1.1.1", + "license": "MIT", "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "for-each": "^0.3.3", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", - "dependencies": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" + "node_modules/ganache-core/node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4.0" } }, - "node_modules/ethereumjs-vm/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" + "node_modules/ganache-core/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "license": "MIT", + "bin": { + "uuid": "bin/uuid" } }, - "node_modules/ethereumjs-vm/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "node_modules/ganache-core/node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "license": "MIT", + "optional": true }, - "node_modules/ethereumjs-vm/node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" + "node_modules/ganache-core/node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } }, - "node_modules/ethereumjs-vm/node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "node_modules/ganache-core/node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", "dependencies": { - "errno": "~0.1.1" + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" } }, - "node_modules/ethereumjs-vm/node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", + "node_modules/ganache-core/node_modules/web3": { + "version": "1.2.11", + "hasInstallScript": true, + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" + "web3-bzz": "1.2.11", + "web3-core": "1.2.11", + "web3-eth": "1.2.11", + "web3-eth-personal": "1.2.11", + "web3-net": "1.2.11", + "web3-shh": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "node_modules/ganache-core/node_modules/web3-bzz": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "@types/node": "^12.12.6", + "got": "9.6.0", + "swarm-js": "^0.1.40", + "underscore": "1.9.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + "node_modules/ganache-core/node_modules/web3-bzz/node_modules/@types/node": { + "version": "12.19.12", + "license": "MIT", + "optional": true }, - "node_modules/ethereumjs-vm/node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", + "node_modules/ganache-core/node_modules/web3-core": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-requestmanager": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "node_modules/ganache-core/node_modules/web3-core-helpers": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "underscore": "1.9.1", + "web3-eth-iban": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", + "node_modules/ganache-core/node_modules/web3-core-method": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "object-keys": "~0.4.0" + "@ethersproject/transactions": "^5.0.0-beta.135", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11", + "web3-core-promievent": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-utils": "1.2.11" }, "engines": { - "node": ">=0.4" + "node": ">=8.0.0" } }, - "node_modules/ethereumjs-vm/node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "node_modules/ganache-core/node_modules/web3-core-promievent": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" + "eventemitter3": "4.0.4" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/ethereumjs-vm/node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", + "node_modules/ganache-core/node_modules/web3-core-requestmanager": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11", + "web3-providers-http": "1.2.11", + "web3-providers-ipc": "1.2.11", + "web3-providers-ws": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/ethereumjs-vm/node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "node_modules/ganache-core/node_modules/web3-core-subscriptions": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "xtend": "~4.0.0" + "eventemitter3": "4.0.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "node_modules/ganache-core/node_modules/web3-core/node_modules/@types/node": { + "version": "12.19.12", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/web3-eth": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" + "underscore": "1.9.1", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-eth-abi": "1.2.11", + "web3-eth-accounts": "1.2.11", + "web3-eth-contract": "1.2.11", + "web3-eth-ens": "1.2.11", + "web3-eth-iban": "1.2.11", + "web3-eth-personal": "1.2.11", + "web3-net": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" - }, - "node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "node_modules/ganache-core/node_modules/web3-eth-abi": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "@ethersproject/abi": "5.0.0-beta.153", + "underscore": "1.9.1", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/ethereumjs-vm/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==" + "node_modules/ganache-core/node_modules/web3-eth-accounts": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.8", + "ethereumjs-common": "^1.3.2", + "ethereumjs-tx": "^2.1.1", + "scrypt-js": "^3.0.1", + "underscore": "1.9.1", + "uuid": "3.3.2", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } }, - "node_modules/ethereumjs-vm/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==", + "node_modules/ganache-core/node_modules/web3-eth-accounts/node_modules/eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "license": "MIT", + "optional": 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" + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" } }, - "node_modules/ethereumjs-vm/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/ethereumjs-vm/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "node_modules/ganache-core/node_modules/web3-eth-accounts/node_modules/uuid": { + "version": "3.3.2", + "license": "MIT", + "optional": true, "bin": { - "semver": "bin/semver" + "uuid": "bin/uuid" } }, - "node_modules/ethereumjs-vm/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/ganache-core/node_modules/web3-eth-contract": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "safe-buffer": "~5.1.0" + "@types/bn.js": "^4.11.5", + "underscore": "1.9.1", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-promievent": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-eth-abi": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/ganache-core/node_modules/web3-eth-ens": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "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" + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "underscore": "1.9.1", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-promievent": "1.2.11", + "web3-eth-abi": "1.2.11", + "web3-eth-contract": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/ethers-eip712": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ethers-eip712/-/ethers-eip712-0.2.0.tgz", - "integrity": "sha512-fgS196gCIXeiLwhsWycJJuxI9nL/AoUPGSQ+yvd+8wdWR+43G+J1n69LmWVWvAON0M6qNaf2BF4/M159U8fujQ==", - "peerDependencies": { - "ethers": "^4.0.47 || ^5.0.8" + "node_modules/ganache-core/node_modules/web3-eth-iban": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "bn.js": "^4.11.9", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/ethjs-abi": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz", - "integrity": "sha512-g2AULSDYI6nEJyJaEVEXtTimRY2aPC2fi7ddSy0W+LXvEVL8Fe1y76o43ecbgdUKwZD+xsmEgX1yJr1Ia3r1IA==", - "dev": true, + "node_modules/ganache-core/node_modules/web3-eth-personal": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "bn.js": "4.11.6", - "js-sha3": "0.5.5", - "number-to-bn": "1.7.0" + "@types/node": "^12.12.6", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-net": "1.2.11", + "web3-utils": "1.2.11" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=8.0.0" } }, - "node_modules/ethjs-abi/node_modules/bn.js": { - "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 - }, - "node_modules/ethjs-abi/node_modules/js-sha3": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz", - "integrity": "sha512-yLLwn44IVeunwjpDVTDZmQeVbB0h+dZpY2eO68B/Zik8hu6dH+rKeLxwua79GGIvW6xr8NBAcrtiUbYrTjEFTA==", - "dev": true + "node_modules/ganache-core/node_modules/web3-eth-personal/node_modules/@types/node": { + "version": "12.19.12", + "license": "MIT", + "optional": true }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", + "node_modules/ganache-core/node_modules/web3-net": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" + "web3-core": "1.2.11", + "web3-core-method": "1.2.11", + "web3-utils": "1.2.11" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=8.0.0" } }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" + "node_modules/ganache-core/node_modules/web3-provider-engine": { + "version": "14.2.1", + "license": "MIT", + "dependencies": { + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "cross-fetch": "^2.1.0", + "eth-block-tracker": "^3.0.0", + "eth-json-rpc-infura": "^3.1.0", + "eth-sig-util": "3.0.0", + "ethereumjs-block": "^1.2.2", + "ethereumjs-tx": "^1.2.0", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-rpc-error": "^2.0.0", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" + } }, - "node_modules/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "license": "MIT", "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "xtend": "~4.0.0" } }, - "node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~2.6.0" + } }, - "node_modules/events": { - "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" + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/eth-sig-util": { + "version": "1.4.2", + "license": "ISC", + "dependencies": { + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-util": "^5.1.1" } }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-account": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", + "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", + "license": "MPL-2.0", "dependencies": { - "md5.js": "^1.3.4", + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", "safe-buffer": "^5.1.1" } }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-block": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", + "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", + "license": "MPL-2.0", "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-block/node_modules/ethereum-common": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "license": "MPL-2.0", + "dependencies": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", + "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", + "license": "MPL-2.0", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/express/node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "license": "MPL-2.0", + "dependencies": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "license": "MPL-2.0", "dependencies": { - "ms": "2.0.0" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/express/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "license": "MPL-2.0", "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" } }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "license": "MPL-2.0", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" } }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "license": "MIT", "dependencies": { - "type": "^2.7.2" + "errno": "~0.1.1" } }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-iterator-stream/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" - ] + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", + "license": "MIT", + "dependencies": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + } }, - "node_modules/fake-merkle-patricia-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", - "integrity": "sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==", + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "license": "MIT", "dependencies": { - "checkpoint-store": "^1.1.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "node_modules/fast-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz", - "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==", - "dev": true, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", "dependencies": { - "pure-rand": "^5.0.1" + "object-keys": "~0.4.0" }, "engines": { - "node": ">=8.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" + "node": ">=0.4" } }, - "node_modules/fast-deep-equal": { - "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==" + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "license": "MIT", + "dependencies": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + } }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", + "license": "MIT" }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", + "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/memdown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" } }, - "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==", - "dev": true, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "license": "MPL-2.0", "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" } }, - "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/ganache-core/node_modules/web3-provider-engine/node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "license": "MIT" }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", + "license": "MIT" }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + "node_modules/ganache-core/node_modules/web3-provider-engine/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==", + "license": "MIT" }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ws": { + "version": "5.2.2", + "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "async-limiter": "~1.0.0" } }, - "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/ganache-core/node_modules/web3-providers-http": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "to-regex-range": "^5.0.1" + "web3-core-helpers": "1.2.11", + "xhr2-cookies": "1.1.0" }, "engines": { - "node": ">=8" + "node": ">=8.0.0" } }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "node_modules/ganache-core/node_modules/web3-providers-ipc": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11" }, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" + "node": ">=8.0.0" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, + "node_modules/ganache-core/node_modules/web3-providers-ws": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "array-back": "^3.0.1" + "eventemitter3": "4.0.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11", + "websocket": "^1.0.31" }, "engines": { - "node": ">=4.0.0" + "node": ">=8.0.0" } }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, + "node_modules/ganache-core/node_modules/web3-shh": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "web3-core": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-net": "1.2.11" }, "engines": { - "node": ">=8" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "bin": { - "flat": "cli.js" + "node": ">=8.0.0" } }, - "node_modules/flat-cache": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", - "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", - "dev": true, + "node_modules/ganache-core/node_modules/web3-utils": { + "version": "1.2.11", + "license": "LGPL-3.0", + "optional": true, "dependencies": { - "flatted": "^3.2.7", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" }, "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "node": ">=8.0.0" } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "node_modules/ganache-core/node_modules/web3-utils/node_modules/eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "license": "MIT", + "optional": true, "dependencies": { - "is-callable": "^1.1.3" + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "node_modules/ganache-core/node_modules/websocket": { + "version": "1.0.32", + "license": "Apache-2.0", + "dependencies": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, "engines": { - "node": "*" + "node": ">=4.0.0" } }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, + "node_modules/ganache-core/node_modules/websocket/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" + "ms": "2.0.0" } }, - "node_modules/form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" + "node_modules/ganache-core/node_modules/websocket/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } + "node_modules/ganache-core/node_modules/whatwg-fetch": { + "version": "2.0.4", + "license": "MIT" }, - "node_modules/fp-ts": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", - "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==" + "node_modules/ganache-core/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==", + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "license": "MIT", + "optional": true, + "dependencies": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" + "node_modules/ganache-core/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==", + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "license": "MIT", + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" } }, - "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==", + "node_modules/ganache-core/node_modules/xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "license": "MIT", + "optional": true, "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" } }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "node_modules/ganache-core/node_modules/xhr-request-promise": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", + "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", + "license": "MIT", + "optional": true, "dependencies": { - "minipass": "^2.6.0" + "xhr-request": "^1.1.0" } }, - "node_modules/fs-readdir-recursive": { + "node_modules/ganache-core/node_modules/xhr2-cookies": { "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 - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, + "license": "MIT", "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "dependencies": { + "cookiejar": "^2.1.1" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, + "node_modules/ganache-core/node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.4" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/ganache-core/node_modules/yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", + "license": "MIT", + "engines": { + "node": ">=0.10.32" } }, - "node_modules/ganache": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ganache/-/ganache-7.4.3.tgz", - "integrity": "sha512-RpEDUiCkqbouyE7+NMXG26ynZ+7sGiODU84Kz+FVoXUnQ4qQM4M8wif3Y4qUCt+D/eM1RVeGq0my62FPD6Y1KA==", - "bundleDependencies": [ - "@trufflesuite/bigint-buffer", - "emittery", - "keccak", - "leveldown", - "secp256k1", - "@types/bn.js", - "@types/lru-cache", - "@types/seedrandom" - ], - "dev": true, - "hasShrinkwrap": true, - "dependencies": { - "@trufflesuite/bigint-buffer": "1.1.10", - "@types/bn.js": "^5.1.0", - "@types/lru-cache": "5.1.1", - "@types/seedrandom": "3.0.1", - "emittery": "0.10.0", - "keccak": "3.0.2", - "leveldown": "6.1.0", - "secp256k1": "4.0.3" - }, - "bin": { - "ganache": "dist/node/cli.js", - "ganache-cli": "dist/node/cli.js" - }, - "optionalDependencies": { - "bufferutil": "4.0.5", - "utf-8-validate": "5.0.7" - } + "node_modules/ganache-core/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" }, "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer": { "version": "1.1.10", "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz", "integrity": "sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw==", - "dev": true, "hasInstallScript": true, "inBundle": true, "license": "Apache-2.0", @@ -10567,7 +22781,6 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", - "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -10580,7 +22793,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10591,7 +22803,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", - "dev": true, "inBundle": true, "license": "MIT" }, @@ -10599,7 +22810,6 @@ "version": "17.0.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz", "integrity": "sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==", - "dev": true, "inBundle": true, "license": "MIT" }, @@ -10607,7 +22817,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.1.tgz", "integrity": "sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw==", - "dev": true, "inBundle": true, "license": "MIT" }, @@ -10615,7 +22824,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, "funding": [ { "type": "github", @@ -10637,7 +22845,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true, "inBundle": true, "license": "MIT" }, @@ -10645,7 +22852,6 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, "funding": [ { "type": "github", @@ -10671,7 +22877,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", - "dev": true, "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" @@ -10681,7 +22886,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.0.tgz", "integrity": "sha512-M5imwzQn6y+ODBfgi+cfgZv2hIUI6oYU/0f35Mdb1ujGeqeoI5tOnl9Q13DTH7LW+7er+NYq8stNOKZD/Z3U/A==", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10695,7 +22899,6 @@ "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10712,7 +22915,6 @@ "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, "inBundle": true, "license": "MIT" }, @@ -10720,7 +22922,6 @@ "version": "0.10.0", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz", "integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -10734,7 +22935,6 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10746,7 +22946,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10759,7 +22958,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, "funding": [ { "type": "github", @@ -10781,7 +22979,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, "inBundle": true, "license": "ISC" }, @@ -10789,7 +22986,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, "funding": [ { "type": "github", @@ -10814,7 +23010,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "dev": true, "hasInstallScript": true, "inBundle": true, "license": "MIT", @@ -10831,7 +23026,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz", "integrity": "sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==", - "dev": true, "hasInstallScript": true, "inBundle": true, "license": "MIT", @@ -10848,7 +23042,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10867,7 +23060,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10881,7 +23073,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -10892,7 +23083,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true, "inBundle": true, "license": "ISC" }, @@ -10900,7 +23090,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true, "inBundle": true, "license": "MIT" }, @@ -10908,7 +23097,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", - "dev": true, "inBundle": true, "license": "MIT" }, @@ -10916,7 +23104,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "dev": true, "inBundle": true, "license": "MIT" }, @@ -10924,7 +23111,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -10937,7 +23123,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, "funding": [ { "type": "github", @@ -10959,7 +23144,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.0.tgz", "integrity": "sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ==", - "dev": true, "inBundle": true, "license": "MIT" }, @@ -10967,7 +23151,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10983,7 +23166,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -11005,7 +23187,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "dev": true, "hasInstallScript": true, "inBundle": true, "license": "MIT", @@ -11022,7 +23203,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -11033,7 +23213,6 @@ "version": "5.0.7", "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", - "dev": true, "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" @@ -11043,10 +23222,72 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true, "inBundle": true, "license": "MIT" }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", + "optional": true, + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "optional": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "optional": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "optional": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -11110,7 +23351,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -11155,6 +23395,12 @@ "testrpc-sc": "index.js" } }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "optional": true + }, "node_modules/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -11252,7 +23498,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, "dependencies": { "define-properties": "^1.1.3" }, @@ -11344,7 +23589,6 @@ "version": "4.7.8", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dev": true, "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", @@ -11365,7 +23609,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -11707,14 +23950,32 @@ "function-bind": "^1.1.1" }, "engines": { - "node": ">= 0.4.0" + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "engines": { + "node": ">=0.10.0" } }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11731,7 +23992,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -11775,6 +24035,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "optional": true + }, "node_modules/hash-base": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", @@ -11797,6 +24063,50 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hdkey": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-0.7.1.tgz", + "integrity": "sha512-ADjIY5Bqdvp3Sh+SLSS1W3/gTJnlDwwM3UsM/5sHPojc4pLf6X3MfMMiTa96MgtADNhTPa+E+SAKMtqdv1zUfw==", + "dependencies": { + "coinstring": "^2.0.0", + "secp256k1": "^3.0.1" + } + }, + "node_modules/hdkey/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/hdkey/node_modules/secp256k1": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz", + "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.5.0", + "bip66": "^1.1.5", + "bn.js": "^4.11.8", + "create-hash": "^1.2.0", + "drbg.js": "^1.0.1", + "elliptic": "^6.5.2", + "nan": "^2.14.0", + "safe-buffer": "^5.1.2" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -11846,6 +24156,18 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "node_modules/home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -12075,13 +24397,12 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "devOptional": true }, "node_modules/internal-slot": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, "dependencies": { "get-intrinsic": "^1.2.0", "has": "^1.0.3", @@ -12100,6 +24421,14 @@ "node": ">= 0.10" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", @@ -12144,7 +24473,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.0", @@ -12164,7 +24492,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, "dependencies": { "has-bigints": "^1.0.1" }, @@ -12187,7 +24514,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -12247,7 +24573,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -12266,6 +24591,17 @@ "node": ">=0.10.0" } }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-fn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", @@ -12278,7 +24614,7 @@ "version": "2.0.0", "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, + "devOptional": true, "engines": { "node": ">=4" } @@ -12335,7 +24671,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -12355,7 +24690,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -12387,7 +24721,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -12403,7 +24736,6 @@ "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==", - "dev": true, "dependencies": { "call-bind": "^1.0.2" }, @@ -12411,11 +24743,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -12430,7 +24769,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, "dependencies": { "has-symbols": "^1.0.2" }, @@ -12496,7 +24834,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.2" }, @@ -12507,20 +24844,144 @@ "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "node_modules/isomorphic-fetch/node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" }, "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" }, + "node_modules/istanbul": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", + "integrity": "sha512-nMtdn4hvK0HjUlzr1DrKSUY8ychprt8dzHOgY2KXsIhHu5PuQQEOTM27gV9Xblyon7aUH/TSFIjRHEODF/FRPg==", + "deprecated": "This module is no longer maintained, try this instead:\n npm i nyc\nVisit https://istanbul.js.org/integrations for other alternatives.", + "dependencies": { + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "istanbul": "lib/cli.js" + } + }, + "node_modules/istanbul/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/istanbul/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" + }, + "node_modules/istanbul/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/istanbul/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/istanbul/node_modules/js-yaml/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/istanbul/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==" + }, + "node_modules/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==", + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/istanbul/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/js-sdsl": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz", @@ -12617,6 +25078,14 @@ "fast-safe-stringify": "^2.0.6" } }, + "node_modules/json-rpc-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/json-rpc-error/-/json-rpc-error-2.0.0.tgz", + "integrity": "sha512-EwUeWP+KgAZ/xqFpaP6YDAXMtCJi+o/QQpCQFIYyxr01AdADi2y413eM8hSqJcoQym9WMePAJWoaODEJufC4Ug==", + "dependencies": { + "inherits": "^2.0.1" + } + }, "node_modules/json-rpc-random-id": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", @@ -12948,6 +25417,11 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "node_modules/link_token": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/link_token/-/link_token-1.0.6.tgz", + "integrity": "sha512-WI6n2Ri9kWQFsFYPTnLvU+Y3DT87he55uqLLX/sAwCVkGTXI/wionGEHAoWU33y8RepWlh46y+RD+DAz5Wmejg==" + }, "node_modules/load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", @@ -13049,6 +25523,11 @@ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, + "node_modules/lodash.values": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", + "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==" + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -13128,6 +25607,29 @@ "node": ">=8" } }, + "node_modules/loglevel": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", + "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, "node_modules/loupe": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", @@ -13506,6 +26008,12 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "optional": true + }, "node_modules/mkdirp-promise": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", @@ -13692,6 +26200,25 @@ "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" }, + "node_modules/mock-property": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mock-property/-/mock-property-1.0.3.tgz", + "integrity": "sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "functions-have-names": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "hasown": "^2.0.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/module-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", @@ -13744,6 +26271,25 @@ "buffer": "^5.5.0" } }, + "node_modules/n": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/n/-/n-9.2.0.tgz", + "integrity": "sha512-R8mFN2OWwNVc+r1f9fDzcT34DnDwUIHskrpTesZ6SdluaXBBnRtTu5tlfaSPloBi1Z/eGJoPO9nhyawWPad5UQ==", + "os": [ + "!win32" + ], + "bin": { + "n": "bin/n" + }, + "engines": { + "node": "*" + } + }, + "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==" + }, "node_modules/nano-base32": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/nano-base32/-/nano-base32-1.0.1.tgz", @@ -13766,6 +26312,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "optional": true + }, "node_modules/napi-macros": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz", @@ -13794,8 +26346,7 @@ "node_modules/neo-async": { "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 + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "node_modules/next-tick": { "version": "1.1.0", @@ -13811,6 +26362,24 @@ "lower-case": "^1.1.1" } }, + "node_modules/node-abi": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", + "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", + "optional": true, + "dependencies": { + "semver": "^5.4.1" + } + }, + "node_modules/node-abi/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/node-addon-api": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", @@ -13873,6 +26442,24 @@ "node-gyp-build-test": "build-test.js" } }, + "node_modules/node-hid": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-0.7.9.tgz", + "integrity": "sha512-vJnonTqmq3frCyTumJqG4g2IZcny3ynkfmbfDfQ90P3ZhRzcWYS/Um1ux6HFmAxmkaQnrZqIYHcGpL7kdqY8jA==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.13.2", + "prebuild-install": "^5.3.0" + }, + "bin": { + "hid-showdevices": "src/show-devices.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", @@ -13887,11 +26474,16 @@ "node": ">=12.19" } }, + "node_modules/noop-logger": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", + "integrity": "sha512-6kM8CLXvuW5crTxsAtva2YLrRrDaiTIkIePWs9moLHqbFWT94WpNFjwS/5dfLfECg5i/lkmw3aoqVidxt23TEQ==", + "optional": true + }, "node_modules/nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", - "dev": true, "dependencies": { "abbrev": "1" }, @@ -13939,6 +26531,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "optional": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -13955,7 +26559,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -14002,11 +26606,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, "engines": { "node": ">= 0.4" } @@ -14015,7 +26633,6 @@ "version": "4.1.4", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -14132,6 +26749,11 @@ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.3.tgz", "integrity": "sha512-jjaHAVRMrE4UuZNfDwjlLGDxTHWIOwTJS2ldnc278a0gevfXfPr8hxKEVBGFBE96kl2G3VHDZhUimw/+G3TG2A==" }, + "node_modules/openzeppelin-solidity": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/openzeppelin-solidity/-/openzeppelin-solidity-1.12.0.tgz", + "integrity": "sha512-WlorzMXIIurugiSdw121RVD5qA3EfSI7GybTn+/Du0mPNgairjt29NpVTAaH8eLjAeAwlw46y7uQKy0NYem/gA==" + }, "node_modules/optionator": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", @@ -14149,6 +26771,14 @@ "node": ">= 0.8.0" } }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", @@ -14462,6 +27092,76 @@ "node": ">=4" } }, + "node_modules/popper.js": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.3.tgz", + "integrity": "sha512-3lmujhsHXzb83+sI0PzfrE3O1XHZG8m8MXNMTupvA6LrM1/nnsiqYaacYc/RIente9VqnTDPztGEM8uvPAMGyg==", + "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1" + }, + "node_modules/prebuild-install": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz", + "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^2.7.0", + "noop-logger": "^0.1.1", + "npmlog": "^4.0.1", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^3.0.3", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0", + "which-pm-runs": "^1.0.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/prebuild-install/node_modules/decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "optional": true, + "dependencies": { + "mimic-response": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuild-install/node_modules/mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "optional": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prebuild-install/node_modules/simple-get": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "optional": true, + "dependencies": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "node_modules/precond": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", @@ -14565,6 +27265,14 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -14735,6 +27443,30 @@ "node": ">= 0.8" } }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "optional": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", @@ -14867,16 +27599,30 @@ "node": ">=6" } }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, "node_modules/regenerator-runtime": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" }, + "node_modules/regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dependencies": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, "node_modules/regexp.prototype.flags": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -14901,6 +27647,51 @@ "url": "https://github.com/sponsors/mysticatea" } }, + "node_modules/regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ==", + "dependencies": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "node_modules/regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g==" + }, + "node_modules/regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/req-cwd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", @@ -15210,11 +28001,21 @@ "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==" }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, "node_modules/safe-array-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -15260,7 +28061,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -15484,7 +28284,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz", "integrity": "sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg==", - "dev": true, "engines": { "node": ">=4.1" } @@ -15589,13 +28388,12 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true + "devOptional": true }, "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==", - "dev": true, "dependencies": { "define-data-property": "^1.0.1", "functions-have-names": "^1.2.3", @@ -15732,6 +28530,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "optional": true + }, "node_modules/simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", @@ -16403,11 +29207,15 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/solidity-parser-antlr": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/solidity-parser-antlr/-/solidity-parser-antlr-0.4.11.tgz", + "integrity": "sha512-4jtxasNGmyC0midtjH/lTFPZYvTTUMy6agYcF+HoMnzW8+cqo3piFrINb4ZCzpPW+7tTVFCGa5ubP34zOzeuMg==" + }, "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" @@ -16468,8 +29276,7 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, "node_modules/sshpk": { "version": "1.17.0", @@ -16570,7 +29377,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, + "devOptional": true, "dependencies": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -16583,7 +29390,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -16600,7 +29406,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -16614,7 +29419,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -16628,7 +29432,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "dev": true, + "devOptional": true, "dependencies": { "ansi-regex": "^3.0.0" }, @@ -16645,6 +29449,14 @@ "node": ">=4" } }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "engines": { + "node": ">=10" + } + }, "node_modules/strip-hex-prefix": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", @@ -16955,6 +29767,54 @@ "node": ">=8" } }, + "node_modules/tape": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.17.0.tgz", + "integrity": "sha512-KCuXjYxCZ3ru40dmND+oCLsXyuA8hoseu2SS404Px5ouyS0A99v8X/mdiLqsR5MTAyamMBN7PRwt2Dv3+xGIxw==", + "dependencies": { + "@ljharb/resumer": "~0.0.1", + "@ljharb/through": "~2.3.9", + "call-bind": "~1.0.2", + "deep-equal": "~1.1.1", + "defined": "~1.0.1", + "dotignore": "~0.1.2", + "for-each": "~0.3.3", + "glob": "~7.2.3", + "has": "~1.0.3", + "inherits": "~2.0.4", + "is-regex": "~1.1.4", + "minimist": "~1.2.8", + "mock-property": "~1.0.0", + "object-inspect": "~1.12.3", + "resolve": "~1.22.6", + "string.prototype.trim": "~1.2.8" + }, + "bin": { + "tape": "bin/tape" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tape/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/tar": { "version": "4.4.19", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", @@ -16972,6 +29832,34 @@ "node": ">=4.5" } }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "optional": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "optional": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/testrpc": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/testrpc/-/testrpc-0.0.1.tgz", @@ -17027,6 +29915,47 @@ "node": ">= 0.12" } }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/through2/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==", + "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" + } + }, + "node_modules/through2/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/through2/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==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", @@ -17116,6 +30045,14 @@ "node": ">=0.6" } }, + "node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ts-command-line-args": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", @@ -17429,7 +30366,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -17443,7 +30379,6 @@ "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==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -17461,7 +30396,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -17480,7 +30414,6 @@ "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==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -17493,8 +30426,7 @@ "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", @@ -17526,11 +30458,15 @@ "node": ">=8" } }, + "node_modules/u2f-api": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/u2f-api/-/u2f-api-0.2.7.tgz", + "integrity": "sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg==" + }, "node_modules/uglify-js": { "version": "3.17.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -17548,7 +30484,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -17578,6 +30513,14 @@ "node": ">= 4.0.0" } }, + "node_modules/unorm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", + "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -17674,6 +30617,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/usb": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/usb/-/usb-1.9.2.tgz", + "integrity": "sha512-dryNz030LWBPAf6gj8vyq0Iev3vPbCLHCT8dBw3gQRXRzVNsIdeuU+VjPp3ksmSPkeMAl1k+kQ14Ij0QHyeiAg==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "node-addon-api": "^4.2.0", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/usb/node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "optional": true + }, "node_modules/utf-8-validate": { "version": "5.0.10", "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", @@ -17730,6 +30693,11 @@ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "devOptional": true }, + "node_modules/valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==" + }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -18808,7 +31776,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -18826,6 +31793,15 @@ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "dev": true }, + "node_modules/which-pm-runs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", + "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==", + "optional": true, + "engines": { + "node": ">=4" + } + }, "node_modules/which-typed-array": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", @@ -18848,7 +31824,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, + "devOptional": true, "dependencies": { "string-width": "^1.0.2 || 2" } @@ -18869,7 +31845,6 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -18877,8 +31852,7 @@ "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" }, "node_modules/wordwrapjs": { "version": "4.0.1", @@ -19055,7 +32029,6 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", - "dev": true, "engines": { "node": ">=0.4.0" } diff --git a/package.json b/package.json index 5fa24066..06eb9b73 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,9 @@ "dependencies": { "@chainlink/contracts": "^0.8.0", "@openzeppelin/contracts": "^4.9.3", + "@openzeppelin/contracts-upgradeable": "^4.9.3", "@rari-capital/solmate": "^6.4.0", + "chainlink": "^0.8.2", "openzeppelin-contracts-upgradeable-4.9.3": "npm:@openzeppelin/contracts-upgradeable@^4.9.3", "seaport": "https://github.com/immutable/seaport.git#1.5.0+im.1.3", "solidity-bits": "^0.4.0", diff --git a/remappings.txt b/remappings.txt index 54c96f2d..60dc34d5 100644 --- a/remappings.txt +++ b/remappings.txt @@ -1,9 +1,7 @@ @openzeppelin/contracts/=lib/openzeppelin-contracts-4.9.3/contracts/ -openzeppelin-contracts-4.9.3/=lib/openzeppelin-contracts-4.9.3/contracts/ openzeppelin-contracts-upgradeable-4.9.3/=lib/openzeppelin-contracts-upgradeable-4.9.3/contracts/ - solidity-bits/=lib/solidity-bits/ solidity-bytes-utils/=lib/solidity-bytes-utils/ -chainlink/contracts/=lib/chainlink/contracts/ +@chainlink/contracts/=lib/chainlink/contracts/ seaport/contracts/=lib/immutable-seaport-1.5.0+im1.3/contracts/ seaport-core/=lib/immutable-seaport-core-1.5.0+im1/ diff --git a/yarn.lock b/yarn.lock index 5c1b3d08..307b5d0e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,276 @@ # yarn lockfile v1 +"@0x/assert@^3.0.34", "@0x/assert@^3.0.36": + version "3.0.36" + resolved "https://registry.npmjs.org/@0x/assert/-/assert-3.0.36.tgz" + integrity sha512-sUtrV5MhixXvWZpATjFqIDtgvvv64duSTuOyPdPJjB+/Lcl5jQhlSNuoN0X3XP0P79Sp+6tuez5MupgFGPA2QQ== + dependencies: + "@0x/json-schemas" "^6.4.6" + "@0x/typescript-typings" "^5.3.2" + "@0x/utils" "^7.0.0" + "@types/node" "12.12.54" + lodash "^4.17.21" + valid-url "^1.0.9" + +"@0x/dev-utils@^5.0.3": + version "5.0.3" + resolved "https://registry.npmjs.org/@0x/dev-utils/-/dev-utils-5.0.3.tgz" + integrity sha512-V58tT2aiiHNSQtEt2XQWZDsPMsQ4wPDnjZRUaW38W46QasIFfCbcpKmfCsAGJyFxM7t0m0JJJwmYTJwZhCGcoQ== + dependencies: + "@0x/subproviders" "^8.0.1" + "@0x/types" "^3.3.7" + "@0x/typescript-typings" "^5.3.2" + "@0x/utils" "^7.0.0" + "@0x/web3-wrapper" "^8.0.1" + "@types/node" "12.12.54" + "@types/web3-provider-engine" "^14.0.0" + chai "^4.0.1" + chai-as-promised "^7.1.0" + chai-bignumber "^3.0.0" + dirty-chai "^2.0.1" + ethereum-types "^3.7.1" + lodash "^4.17.21" + web3-provider-engine "16.0.4" + +"@0x/json-schemas@^6.4.4", "@0x/json-schemas@^6.4.6": + version "6.4.6" + resolved "https://registry.npmjs.org/@0x/json-schemas/-/json-schemas-6.4.6.tgz" + integrity sha512-TaqvhOkmLN/vkcpMUNVFZBTnWP05ZVo9iGAnP1CG/B8l4rvnUbLZvWx8KeDKs62I/5d7jdYISvXyOwP4EwrG4w== + dependencies: + "@0x/typescript-typings" "^5.3.2" + "@types/node" "12.12.54" + ajv "^6.12.5" + lodash.values "^4.3.0" + +"@0x/sol-compiler@^4.8.5": + version "4.8.5" + resolved "https://registry.npmjs.org/@0x/sol-compiler/-/sol-compiler-4.8.5.tgz" + integrity sha512-hAc3ZjpD+/fgSt/UQaAim8d2fQL3kWpnP5+tSEVf3/xetDDp3BhTOMi+wKnVuYo9FzuTgHx5MFueWM+mojE41A== + dependencies: + "@0x/assert" "^3.0.36" + "@0x/json-schemas" "^6.4.6" + "@0x/sol-resolver" "^3.1.13" + "@0x/types" "^3.3.7" + "@0x/typescript-typings" "^5.3.2" + "@0x/utils" "^7.0.0" + "@0x/web3-wrapper" "^8.0.1" + "@types/node" "12.12.54" + "@types/yargs" "^11.0.0" + chalk "^2.3.0" + chokidar "^3.0.2" + ethereum-types "^3.7.1" + ethereumjs-util "^7.1.5" + lodash "^4.17.21" + mkdirp "^0.5.1" + pluralize "^7.0.0" + require-from-string "^2.0.1" + semver "5.5.0" + solc "^0.8" + source-map-support "^0.5.0" + strip-comments "^2.0.1" + web3-eth-abi "^1.0.0-beta.24" + yargs "^17.5.1" + +"@0x/sol-resolver@^3.1.13": + version "3.1.13" + resolved "https://registry.npmjs.org/@0x/sol-resolver/-/sol-resolver-3.1.13.tgz" + integrity sha512-nQHqW7sOsDEH4ejH9nu60sCgFXEW08LM0v+5DimA/R7MizOW4LAG7OoHM+Oq8uPcHbeU0peFEDOW0idBsIzZ6g== + dependencies: + "@0x/types" "^3.3.7" + "@0x/typescript-typings" "^5.3.2" + "@types/node" "12.12.54" + lodash "^4.17.21" + +"@0x/sol-trace@^3.0.4": + version "3.0.49" + resolved "https://registry.npmjs.org/@0x/sol-trace/-/sol-trace-3.0.49.tgz" + integrity sha512-mCNbUCX6Oh1Z1e1g4AsD7sSbgMN7IGQyR0w+4xQYApgjwtYOaRPZMiluMXqp9nNHX75LwCfVd7NEIJIUMVQf2A== + dependencies: + "@0x/sol-tracing-utils" "^7.3.5" + "@0x/subproviders" "^8.0.1" + "@0x/typescript-typings" "^5.3.2" + "@types/node" "12.12.54" + chalk "^2.3.0" + ethereum-types "^3.7.1" + ethereumjs-util "^7.1.5" + lodash "^4.17.21" + loglevel "^1.6.1" + web3-provider-engine "16.0.4" + +"@0x/sol-tracing-utils@^7.3.5": + version "7.3.5" + resolved "https://registry.npmjs.org/@0x/sol-tracing-utils/-/sol-tracing-utils-7.3.5.tgz" + integrity sha512-KzLTcUcLiQD5N/NzkZnIwI0i4w775z4w/H0o2FeM3Gp/0BcBx2DZ+sqKVoCEUSussm+jx2v8MNJnM3wcdvvDlg== + dependencies: + "@0x/dev-utils" "^5.0.3" + "@0x/sol-compiler" "^4.8.5" + "@0x/sol-resolver" "^3.1.13" + "@0x/subproviders" "^8.0.1" + "@0x/typescript-typings" "^5.3.2" + "@0x/utils" "^7.0.0" + "@0x/web3-wrapper" "^8.0.1" + "@types/node" "12.12.54" + "@types/solidity-parser-antlr" "^0.2.3" + chalk "^2.3.0" + ethereum-types "^3.7.1" + ethereumjs-util "^7.1.5" + ethers "~4.0.4" + glob "^7.1.2" + istanbul "^0.4.5" + lodash "^4.17.21" + loglevel "^1.6.1" + mkdirp "^0.5.1" + rimraf "^2.6.2" + semaphore-async-await "^1.5.1" + solc "^0.8" + solidity-parser-antlr "^0.4.2" + +"@0x/subproviders@^6.0.4": + version "6.6.5" + resolved "https://registry.npmjs.org/@0x/subproviders/-/subproviders-6.6.5.tgz" + integrity sha512-tpkKH5XBgrlO4K9dMNqsYiTgrAOJUnThiu73y9tYl4mwX/1gRpyG1EebvD8w6VKPrLjnyPyMw50ZvTyaYgbXNQ== + dependencies: + "@0x/assert" "^3.0.34" + "@0x/types" "^3.3.6" + "@0x/typescript-typings" "^5.3.1" + "@0x/utils" "^6.5.3" + "@0x/web3-wrapper" "^7.6.5" + "@ethereumjs/common" "^2.4.0" + "@ethereumjs/tx" "^3.3.0" + "@ledgerhq/hw-app-eth" "^4.3.0" + "@ledgerhq/hw-transport-u2f" "4.24.0" + "@types/hdkey" "^0.7.0" + "@types/node" "12.12.54" + "@types/web3-provider-engine" "^14.0.0" + bip39 "^2.5.0" + bn.js "^4.11.8" + ethereum-types "^3.7.0" + ethereumjs-util "^7.1.0" + ganache-core "^2.13.2" + hdkey "^0.7.1" + json-rpc-error "2.0.0" + lodash "^4.17.11" + semaphore-async-await "^1.5.1" + web3-provider-engine "14.0.6" + optionalDependencies: + "@ledgerhq/hw-transport-node-hid" "^4.3.0" + +"@0x/subproviders@^8.0.1": + version "8.0.1" + resolved "https://registry.npmjs.org/@0x/subproviders/-/subproviders-8.0.1.tgz" + integrity sha512-Lax7Msb1Ef9D6Dd7PQ19oPgjl5GIrKje7XsrO7YCfx5A0RM3Hr4nSQIxgg78jwvuulSFxQ5Sr8WiZ2hTHATtQg== + dependencies: + "@0x/assert" "^3.0.36" + "@0x/types" "^3.3.7" + "@0x/typescript-typings" "^5.3.2" + "@0x/utils" "^7.0.0" + "@0x/web3-wrapper" "^8.0.1" + "@ethereumjs/common" "^2.6.3" + "@ethereumjs/tx" "^3.5.1" + "@types/hdkey" "^0.7.0" + "@types/node" "12.12.54" + "@types/web3-provider-engine" "^14.0.0" + bip39 "2.5.0" + ethereum-types "^3.7.1" + ethereumjs-util "^7.1.5" + ganache "^7.4.0" + hdkey "2.1.0" + json-rpc-error "2.0.0" + lodash "^4.17.21" + web3-provider-engine "16.0.4" + +"@0x/types@^3.3.6", "@0x/types@^3.3.7": + version "3.3.7" + resolved "https://registry.npmjs.org/@0x/types/-/types-3.3.7.tgz" + integrity sha512-6lPXPnvKaIfAJ5hIgs81SytqNCPCLstQ/DA598iLpb90KKjjz8QsdrfII4JeKdrEREvLcWSH9SeH4sNPWyLhlA== + dependencies: + "@types/node" "12.12.54" + bignumber.js "~9.0.2" + ethereum-types "^3.7.1" + +"@0x/typescript-typings@^5.3.1", "@0x/typescript-typings@^5.3.2": + version "5.3.2" + resolved "https://registry.npmjs.org/@0x/typescript-typings/-/typescript-typings-5.3.2.tgz" + integrity sha512-VIo8PS/IRXrI1aEzM8TenUMViX4MFMKBnIAwqC4K/ewVDSnKyYZSk8fzw0XZph6tN07obchPf+1sHIWYe8EUow== + dependencies: + "@types/bn.js" "^4.11.0" + "@types/node" "12.12.54" + "@types/react" "*" + bignumber.js "~9.0.2" + ethereum-types "^3.7.1" + popper.js "1.14.3" + +"@0x/utils@^6.5.3": + version "6.5.3" + resolved "https://registry.npmjs.org/@0x/utils/-/utils-6.5.3.tgz" + integrity sha512-C8Af9MeNvWTtSg5eEOObSZ+7gjOGSHkhqDWv8iPfrMMt7yFkAjHxpXW+xufk6ZG2VTg+hel82GDyhKaGtoQZDA== + dependencies: + "@0x/types" "^3.3.6" + "@0x/typescript-typings" "^5.3.1" + "@types/mocha" "^5.2.7" + "@types/node" "12.12.54" + abortcontroller-polyfill "^1.1.9" + bignumber.js "~9.0.2" + chalk "^2.3.0" + detect-node "2.0.3" + ethereum-types "^3.7.0" + ethereumjs-util "^7.1.0" + ethers "~4.0.4" + isomorphic-fetch "2.2.1" + js-sha3 "^0.7.0" + lodash "^4.17.11" + +"@0x/utils@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@0x/utils/-/utils-7.0.0.tgz" + integrity sha512-g+Bp0eHUGhnVGeVZqGn7UVtpzs/FuoXksiDaajfJrHFW0owwo5YwpwFIAVU7/ca0B6IKa74e71gskLwWGINEFg== + dependencies: + "@0x/types" "^3.3.7" + "@0x/typescript-typings" "^5.3.2" + "@types/mocha" "^5.2.7" + "@types/node" "12.12.54" + abortcontroller-polyfill "^1.1.9" + bignumber.js "~9.0.2" + chalk "^2.3.0" + detect-node "2.0.3" + ethereum-types "^3.7.1" + ethereumjs-util "^7.1.5" + ethers "~4.0.4" + isomorphic-fetch "^3.0.0" + js-sha3 "^0.7.0" + lodash "^4.17.21" + +"@0x/web3-wrapper@^7.6.5": + version "7.6.5" + resolved "https://registry.npmjs.org/@0x/web3-wrapper/-/web3-wrapper-7.6.5.tgz" + integrity sha512-AyaisigXUsuwLcLqfji7DzQ+komL9NpaH1k2eTZMn7sxPfZZBSIMFbu3vgSKYvRnJdrXrkeKjE5h0BhIvTngMA== + dependencies: + "@0x/assert" "^3.0.34" + "@0x/json-schemas" "^6.4.4" + "@0x/typescript-typings" "^5.3.1" + "@0x/utils" "^6.5.3" + "@types/node" "12.12.54" + ethereum-types "^3.7.0" + ethereumjs-util "^7.1.0" + ethers "~4.0.4" + lodash "^4.17.11" + +"@0x/web3-wrapper@^8.0.1": + version "8.0.1" + resolved "https://registry.npmjs.org/@0x/web3-wrapper/-/web3-wrapper-8.0.1.tgz" + integrity sha512-2rqugeCld5r/3yg+Un9sPCUNVeZW5J64Fm6i/W6qRE87X+spIJG48oJymTjSMDXw/w3FaP4nAvhSj2C5fvhN6w== + dependencies: + "@0x/assert" "^3.0.36" + "@0x/json-schemas" "^6.4.6" + "@0x/typescript-typings" "^5.3.2" + "@0x/utils" "^7.0.0" + "@types/node" "12.12.54" + ethereum-types "^3.7.1" + ethereumjs-util "^7.1.5" + ethers "~4.0.4" + lodash "^4.17.21" + "@aashutoshrathi/word-wrap@^1.2.3": version "1.2.6" resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" @@ -239,6 +509,20 @@ "@openzeppelin/contracts-upgradeable-4.7.3" "npm:@openzeppelin/contracts-upgradeable@v4.7.3" "@openzeppelin/contracts-v0.7" "npm:@openzeppelin/contracts@v3.4.2" +"@chainlink/test-helpers@0.0.1": + version "0.0.1" + resolved "https://registry.npmjs.org/@chainlink/test-helpers/-/test-helpers-0.0.1.tgz" + integrity sha512-rxNg1R9ywhttvFCQWEA6KVR9Zr88cm+YgaXA3DD6QYP3GKtVX4U1AvJvrgP0gIM/Kk0a/wvJnY/3p644HmWNAg== + dependencies: + "@0x/sol-trace" "^3.0.4" + "@0x/subproviders" "^6.0.4" + bn.js "^4.11.0" + cbor "^5.0.1" + chai "^4.2.0" + chalk "^2.4.2" + debug "^4.1.1" + ethers "^4.0.41" + "@chainsafe/as-sha256@^0.3.1": version "0.3.1" resolved "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz" @@ -454,15 +738,7 @@ lru-cache "^5.1.1" semaphore-async-await "^1.5.1" -"@ethereumjs/common@^2.4.0", "@ethereumjs/common@^2.5.0", "@ethereumjs/common@2.5.0": - version "2.5.0" - resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz" - integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg== - dependencies: - crc-32 "^1.2.0" - ethereumjs-util "^7.1.1" - -"@ethereumjs/common@^2.6.0", "@ethereumjs/common@2.6.0": +"@ethereumjs/common@^2.4.0", "@ethereumjs/common@^2.6.0", "@ethereumjs/common@2.6.0": version "2.6.0" resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.0.tgz" integrity sha512-Cq2qS0FTu6O2VU1sgg+WyU9Ps0M6j/BEMHN+hRaECXCV/r0aI78u4N6p52QW/BDVhwWZpCdrvG8X7NJdzlpNUA== @@ -470,7 +746,15 @@ crc-32 "^1.2.0" ethereumjs-util "^7.1.3" -"@ethereumjs/common@^2.6.4", "@ethereumjs/common@^2.6.5", "@ethereumjs/common@2.6.5": +"@ethereumjs/common@^2.5.0", "@ethereumjs/common@2.5.0": + version "2.5.0" + resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz" + integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg== + dependencies: + crc-32 "^1.2.0" + ethereumjs-util "^7.1.1" + +"@ethereumjs/common@^2.6.3", "@ethereumjs/common@^2.6.4", "@ethereumjs/common@^2.6.5", "@ethereumjs/common@2.6.5": version "2.6.5" resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz" integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== @@ -502,6 +786,14 @@ "@ethereumjs/common" "^2.6.0" ethereumjs-util "^7.1.3" +"@ethereumjs/tx@^3.5.1": + version "3.5.2" + resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz" + integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== + dependencies: + "@ethereumjs/common" "^2.6.4" + ethereumjs-util "^7.1.5" + "@ethereumjs/tx@^3.5.2": version "3.5.2" resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz" @@ -568,6 +860,30 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" +"@ethersproject/abi@5.0.0-beta.153": + version "5.0.0-beta.153" + dependencies: + "@ethersproject/address" ">=5.0.0-beta.128" + "@ethersproject/bignumber" ">=5.0.0-beta.130" + "@ethersproject/bytes" ">=5.0.0-beta.129" + "@ethersproject/constants" ">=5.0.0-beta.128" + "@ethersproject/hash" ">=5.0.0-beta.128" + "@ethersproject/keccak256" ">=5.0.0-beta.127" + "@ethersproject/logger" ">=5.0.0-beta.129" + "@ethersproject/properties" ">=5.0.0-beta.131" + "@ethersproject/strings" ">=5.0.0-beta.130" + +"@ethersproject/abstract-provider@^5.0.8": + version "5.0.8" + dependencies: + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/networks" "^5.0.7" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/transactions" "^5.0.9" + "@ethersproject/web" "^5.0.12" + "@ethersproject/abstract-provider@^5.7.0", "@ethersproject/abstract-provider@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz" @@ -581,6 +897,15 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" +"@ethersproject/abstract-signer@^5.0.10": + version "5.0.10" + dependencies: + "@ethersproject/abstract-provider" "^5.0.8" + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/abstract-signer@^5.7.0", "@ethersproject/abstract-signer@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz" @@ -603,6 +928,20 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/rlp" "^5.7.0" +"@ethersproject/address@^5.0.9", "@ethersproject/address@>=5.0.0-beta.128": + version "5.0.9" + dependencies: + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/keccak256" "^5.0.7" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/rlp" "^5.0.7" + +"@ethersproject/base64@^5.0.7": + version "5.0.7" + dependencies: + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/base64@^5.7.0", "@ethersproject/base64@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz" @@ -618,6 +957,13 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" +"@ethersproject/bignumber@^5.0.13", "@ethersproject/bignumber@>=5.0.0-beta.130": + version "5.0.13" + dependencies: + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/logger" "^5.0.8" + bn.js "^4.4.0" + "@ethersproject/bignumber@^5.7.0", "@ethersproject/bignumber@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz" @@ -627,6 +973,11 @@ "@ethersproject/logger" "^5.7.0" bn.js "^5.2.1" +"@ethersproject/bytes@^5.0.9", "@ethersproject/bytes@>=5.0.0-beta.129": + version "5.0.9" + dependencies: + "@ethersproject/logger" "^5.0.8" + "@ethersproject/bytes@^5.7.0", "@ethersproject/bytes@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz" @@ -634,6 +985,11 @@ dependencies: "@ethersproject/logger" "^5.7.0" +"@ethersproject/constants@^5.0.8", "@ethersproject/constants@>=5.0.0-beta.128": + version "5.0.8" + dependencies: + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/constants@^5.7.0", "@ethersproject/constants@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz" @@ -672,6 +1028,18 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" +"@ethersproject/hash@>=5.0.0-beta.128": + version "5.0.10" + dependencies: + "@ethersproject/abstract-signer" "^5.0.10" + "@ethersproject/address" "^5.0.9" + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/keccak256" "^5.0.7" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/strings" "^5.0.8" + "@ethersproject/hdnode@^5.7.0", "@ethersproject/hdnode@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz" @@ -709,6 +1077,12 @@ aes-js "3.0.0" scrypt-js "3.0.1" +"@ethersproject/keccak256@^5.0.7", "@ethersproject/keccak256@>=5.0.0-beta.127": + version "5.0.7" + dependencies: + "@ethersproject/bytes" "^5.0.9" + js-sha3 "0.5.7" + "@ethersproject/keccak256@^5.7.0", "@ethersproject/keccak256@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz" @@ -717,11 +1091,19 @@ "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" +"@ethersproject/logger@^5.0.8", "@ethersproject/logger@>=5.0.0-beta.129": + version "5.0.8" + "@ethersproject/logger@^5.7.0", "@ethersproject/logger@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== +"@ethersproject/networks@^5.0.7": + version "5.0.7" + dependencies: + "@ethersproject/logger" "^5.0.8" + "@ethersproject/networks@^5.7.0", "@ethersproject/networks@5.7.1": version "5.7.1" resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz" @@ -737,6 +1119,11 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/sha2" "^5.7.0" +"@ethersproject/properties@^5.0.7", "@ethersproject/properties@>=5.0.0-beta.131": + version "5.0.7" + dependencies: + "@ethersproject/logger" "^5.0.8" + "@ethersproject/properties@^5.7.0", "@ethersproject/properties@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz" @@ -778,6 +1165,12 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" +"@ethersproject/rlp@^5.0.7": + version "5.0.7" + dependencies: + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/rlp@^5.7.0", "@ethersproject/rlp@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz" @@ -795,6 +1188,14 @@ "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" +"@ethersproject/signing-key@^5.0.8": + version "5.0.8" + dependencies: + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/properties" "^5.0.7" + elliptic "6.5.3" + "@ethersproject/signing-key@^5.7.0", "@ethersproject/signing-key@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz" @@ -819,6 +1220,13 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" +"@ethersproject/strings@^5.0.8", "@ethersproject/strings@>=5.0.0-beta.130": + version "5.0.8" + dependencies: + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/constants" "^5.0.8" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/strings@^5.7.0", "@ethersproject/strings@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz" @@ -828,6 +1236,19 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" +"@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.0.9": + version "5.0.9" + dependencies: + "@ethersproject/address" "^5.0.9" + "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/constants" "^5.0.8" + "@ethersproject/keccak256" "^5.0.7" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/rlp" "^5.0.7" + "@ethersproject/signing-key" "^5.0.8" + "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0", "@ethersproject/transactions@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz" @@ -873,6 +1294,15 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" +"@ethersproject/web@^5.0.12": + version "5.0.12" + dependencies: + "@ethersproject/base64" "^5.0.7" + "@ethersproject/bytes" "^5.0.9" + "@ethersproject/logger" "^5.0.8" + "@ethersproject/properties" "^5.0.7" + "@ethersproject/strings" "^5.0.8" + "@ethersproject/web@^5.7.0", "@ethersproject/web@5.7.1": version "5.7.1" resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz" @@ -1016,6 +1446,64 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@ledgerhq/devices@^4.78.0": + version "4.78.0" + resolved "https://registry.npmjs.org/@ledgerhq/devices/-/devices-4.78.0.tgz" + integrity sha512-tWKS5WM/UU82czihnVjRwz9SXNTQzWjGJ/7+j/xZ70O86nlnGJ1aaFbs5/WTzfrVKpOKgj1ZoZkAswX67i/JTw== + dependencies: + "@ledgerhq/errors" "^4.78.0" + "@ledgerhq/logs" "^4.72.0" + rxjs "^6.5.3" + +"@ledgerhq/errors@^4.78.0": + version "4.78.0" + resolved "https://registry.npmjs.org/@ledgerhq/errors/-/errors-4.78.0.tgz" + integrity sha512-FX6zHZeiNtegBvXabK6M5dJ+8OV8kQGGaGtuXDeK/Ss5EmG4Ltxc6Lnhe8hiHpm9pCHtktOsnUVL7IFBdHhYUg== + +"@ledgerhq/hw-app-eth@^4.3.0": + version "4.78.0" + resolved "https://registry.npmjs.org/@ledgerhq/hw-app-eth/-/hw-app-eth-4.78.0.tgz" + integrity sha512-m4s4Zhy4lwYJjZB3xPeGV/8mxQcnoui+Eu1KDEl6atsquZHUpbtern/0hZl88+OlFUz0XrX34W3I9cqj61Y6KA== + dependencies: + "@ledgerhq/errors" "^4.78.0" + "@ledgerhq/hw-transport" "^4.78.0" + +"@ledgerhq/hw-transport-u2f@4.24.0": + version "4.24.0" + resolved "https://registry.npmjs.org/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-4.24.0.tgz" + integrity sha512-/gFjhkM0sJfZ7iUf8HoIkGufAWgPacrbb1LW0TvWnZwvsATVJ1BZJBtrr90Wo401PKsjVwYtFt3Ce4gOAUv9jQ== + dependencies: + "@ledgerhq/hw-transport" "^4.24.0" + u2f-api "0.2.7" + +"@ledgerhq/hw-transport@^4.24.0", "@ledgerhq/hw-transport@^4.78.0": + version "4.78.0" + resolved "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-4.78.0.tgz" + integrity sha512-xQu16OMPQjFYLjqCysij+8sXtdWv2YLxPrB6FoLvEWGTlQ7yL1nUBRQyzyQtWIYqZd4THQowQmzm1VjxuN6SZw== + dependencies: + "@ledgerhq/devices" "^4.78.0" + "@ledgerhq/errors" "^4.78.0" + events "^3.0.0" + +"@ledgerhq/logs@^4.72.0": + version "4.72.0" + resolved "https://registry.npmjs.org/@ledgerhq/logs/-/logs-4.72.0.tgz" + integrity sha512-o+TYF8vBcyySRsb2kqBDv/KMeme8a2nwWoG+lAWzbDmWfb2/MrVWYCVYDYvjXdSoI/Cujqy1i0gIDrkdxa9chA== + +"@ljharb/resumer@~0.0.1": + version "0.0.1" + resolved "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.0.1.tgz" + integrity sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw== + dependencies: + "@ljharb/through" "^2.3.9" + +"@ljharb/through@^2.3.9", "@ljharb/through@~2.3.9": + version "2.3.11" + resolved "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz" + integrity sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w== + dependencies: + call-bind "^1.0.2" + "@metamask/eth-sig-util@^4.0.0", "@metamask/eth-sig-util@4.0.1": version "4.0.1" resolved "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz" @@ -1293,6 +1781,11 @@ resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.7.3.tgz" integrity sha512-+wuegAMaLcZnLCJIvrVUDzA9z/Wp93f0Dla/4jJvIhijRrPabjQbZe6fWiECLaJyfn5ci9fqf9vTw3xpQOad2A== +"@openzeppelin/contracts-upgradeable@^4.9.3": + version "4.9.3" + resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.3.tgz" + integrity sha512-jjaHAVRMrE4UuZNfDwjlLGDxTHWIOwTJS2ldnc278a0gevfXfPr8hxKEVBGFBE96kl2G3VHDZhUimw/+G3TG2A== + "@openzeppelin/contracts-v0.7@npm:@openzeppelin/contracts@v3.4.2": version "3.4.2" resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.2.tgz" @@ -1490,6 +1983,9 @@ "@sentry/types" "5.30.0" tslib "^1.9.3" +"@sindresorhus/is@^0.14.0": + version "0.14.0" + "@sindresorhus/is@^4.0.0", "@sindresorhus/is@^4.6.0": version "4.6.0" resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" @@ -1509,6 +2005,11 @@ dependencies: antlr4ts "^0.5.0-alpha.4" +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + dependencies: + defer-to-connect "^1.0.1" + "@szmarczak/http-timer@^4.0.5": version "4.0.6" resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz" @@ -1724,7 +2225,14 @@ dependencies: "@types/node" "*" -"@types/bn.js@^4.11.3": +"@types/bn.js@^4.11.0": + version "4.11.6" + resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz" + integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== + dependencies: + "@types/node" "*" + +"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.5": version "4.11.6" resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz" integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== @@ -1775,6 +2283,13 @@ "@types/minimatch" "*" "@types/node" "*" +"@types/hdkey@^0.7.0": + version "0.7.1" + resolved "https://registry.npmjs.org/@types/hdkey/-/hdkey-0.7.1.tgz" + integrity sha512-4Kkr06hq+R8a9EzVNqXGOY2x1xA7dhY6qlp6OvaZ+IJy1BCca1Cv126RD9X7CMJoXoLo8WvAizy8gQHpqW6K0Q== + dependencies: + "@types/node" "*" + "@types/http-cache-semantics@*": version "4.0.2" resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz" @@ -1833,6 +2348,11 @@ dependencies: "@types/node" "*" +"@types/mocha@^5.2.7": + version "5.2.7" + resolved "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz" + integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ== + "@types/mocha@^9.1.1": version "9.1.1" resolved "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz" @@ -1871,6 +2391,11 @@ resolved "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== +"@types/node@12.12.54": + version "12.12.54" + resolved "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz" + integrity sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w== + "@types/pbkdf2@^3.0.0": version "3.1.0" resolved "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz" @@ -1883,11 +2408,25 @@ resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz" integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== +"@types/prop-types@*": + version "15.7.11" + resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz" + integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== + "@types/qs@^6.2.31": version "6.9.8" resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz" integrity sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg== +"@types/react@*": + version "18.2.47" + resolved "https://registry.npmjs.org/@types/react/-/react-18.2.47.tgz" + integrity sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/readable-stream@^2.3.13": version "2.3.15" resolved "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz" @@ -1903,6 +2442,11 @@ dependencies: "@types/node" "*" +"@types/scheduler@*": + version "0.16.8" + resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz" + integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== + "@types/secp256k1@^4.0.1": version "4.0.4" resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.4.tgz" @@ -1940,6 +2484,11 @@ resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz" integrity sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ== +"@types/solidity-parser-antlr@^0.2.3": + version "0.2.3" + resolved "https://registry.npmjs.org/@types/solidity-parser-antlr/-/solidity-parser-antlr-0.2.3.tgz" + integrity sha512-FoSyZT+1TTaofbEtGW1oC9wHND1YshvVeHerME/Jh6gIdHbBAWFW8A97YYqO/dpHcFjIwEPEepX0Efl2ckJgwA== + "@types/underscore@*": version "1.11.9" resolved "https://registry.npmjs.org/@types/underscore/-/underscore-1.11.9.tgz" @@ -1960,6 +2509,11 @@ "@types/bn.js" "*" "@types/underscore" "*" +"@types/yargs@^11.0.0": + version "11.1.8" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-11.1.8.tgz" + integrity sha512-49Pmk3GBUOrs/ZKJodGMJeEeiulv2VdfAYpGgkTCSXpNWx7KCX36+PbrkItwzrjTDHO2QoEZDpbhFoMN1lxe9A== + "@typescript-eslint/eslint-plugin@^5.60.0": version "5.62.0" resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz" @@ -2044,12 +2598,15 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + abbrev@1, abbrev@1.0.x: version "1.0.9" resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz" integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== -abortcontroller-polyfill@^1.7.3, abortcontroller-polyfill@^1.7.5: +abortcontroller-polyfill@^1.1.9, abortcontroller-polyfill@^1.7.3, abortcontroller-polyfill@^1.7.5: version "1.7.5" resolved "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz" integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ== @@ -2067,6 +2624,16 @@ abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: module-error "^1.0.1" queue-microtask "^1.2.3" +abstract-leveldown@^2.4.1: + version "2.7.2" + dependencies: + xtend "~4.0.0" + +abstract-leveldown@^5.0.0: + version "5.0.0" + dependencies: + xtend "~4.0.0" + abstract-leveldown@^6.2.1: version "6.3.0" resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz" @@ -2104,6 +2671,11 @@ abstract-leveldown@~2.7.1: dependencies: xtend "~4.0.0" +abstract-leveldown@~5.0.0: + version "5.0.0" + dependencies: + xtend "~4.0.0" + abstract-leveldown@~6.2.1: version "6.2.3" resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz" @@ -2115,6 +2687,17 @@ abstract-leveldown@~6.2.1: level-supports "~1.0.0" xtend "~4.0.0" +abstract-leveldown@3.0.0: + version "3.0.0" + dependencies: + xtend "~4.0.0" + +accepts@~1.3.7: + version "1.3.7" + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + accepts@~1.3.8: version "1.3.8" resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" @@ -2148,6 +2731,9 @@ adm-zip@^0.4.16: resolved "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz" integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== +aes-js@^3.1.1: + version "3.1.2" + aes-js@3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" @@ -2168,7 +2754,7 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.6: +ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.12.6: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2240,6 +2826,11 @@ ansi-regex@^5.0.1: resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" @@ -2296,6 +2887,15 @@ argparse@^2.0.1: resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +arr-diff@^4.0.0: + version "4.0.0" + +arr-flatten@^1.1.0: + version "1.1.0" + +arr-union@^3.1.0: + version "3.1.0" + array-back@^3.0.1, array-back@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz" @@ -2345,6 +2945,9 @@ array-uniq@1.0.3: resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== +array-unique@^0.3.2: + version "0.3.2" + array.prototype.findlastindex@^1.2.2: version "1.2.3" resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz" @@ -2405,6 +3008,14 @@ asap@~2.0.6: resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== +asn1.js@^5.2.0: + version "5.4.1" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + asn1@~0.2.3: version "0.2.6" resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" @@ -2422,6 +3033,9 @@ assertion-error@^1.1.0: resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== +assign-symbols@^1.0.0: + version "1.0.0" + ast-parents@^0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz" @@ -2463,6 +3077,11 @@ async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0: dependencies: lodash "^4.17.14" +async@^2.6.1, async@2.6.2: + version "2.6.2" + dependencies: + lodash "^4.17.11" + async@1.x: version "1.5.2" resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" @@ -2478,6 +3097,9 @@ at-least-node@^1.0.0: resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== +atob@^2.1.2: + version "2.1.2" + available-typed-arrays@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" @@ -2493,6 +3115,181 @@ aws4@^1.8.0: resolved "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz" integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz" + integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g== + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.0.14, babel-core@^6.26.0: + version "6.26.3" + resolved "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz" + integrity sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q== + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz" + integrity sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ== + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz" + integrity sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA== + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz" + integrity sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ== + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz" + integrity sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q== + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz" + integrity sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng== + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz" + integrity sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw== + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz" + integrity sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA== + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz" + integrity sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg== + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz" + integrity sha512-RYqaPD0mQyQIFRu7Ho5wE2yvA/5jxqCIj/Lv4BXNq23mHYu/vxikOy2JueLiBxQknwapwrJeNCesvY0ZcfnlHg== + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz" + integrity sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw== + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz" + integrity sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ== + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz" + integrity sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz" + integrity sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA== + dependencies: + babel-runtime "^6.22.0" + babel-plugin-polyfill-corejs2@^0.4.5: version "0.4.5" resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz" @@ -2517,6 +3314,350 @@ babel-plugin-polyfill-regenerator@^0.5.2: dependencies: "@babel/helper-define-polyfill-provider" "^0.4.2" +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz" + integrity sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw== + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz" + integrity sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ== + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz" + integrity sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ== + +babel-plugin-transform-async-to-generator@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz" + integrity sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw== + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz" + integrity sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz" + integrity sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.23.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz" + integrity sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw== + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.23.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz" + integrity sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag== + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz" + integrity sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw== + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz" + integrity sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz" + integrity sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug== + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.23.0: + version "6.23.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz" + integrity sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz" + integrity sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg== + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz" + integrity sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz" + integrity sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA== + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.2" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz" + integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.23.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz" + integrity sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg== + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.23.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz" + integrity sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw== + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz" + integrity sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA== + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.23.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz" + integrity sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ== + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz" + integrity sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw== + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz" + integrity sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz" + integrity sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ== + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz" + integrity sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz" + integrity sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz" + integrity sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ== + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz" + integrity sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ== + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-regenerator@^6.22.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz" + integrity sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg== + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz" + integrity sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw== + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-preset-env@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz" + integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^3.2.6" + invariant "^2.2.2" + semver "^5.3.0" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz" + integrity sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A== + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz" + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz" + integrity sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg== + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz" + integrity sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA== + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz" + integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babelify@^7.3.0: + version "7.3.0" + resolved "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz" + integrity sha512-vID8Fz6pPN5pJMdlUnNFSfrlcx5MUule4k9aKs/zbZPyXxMTcRrB0M4Tarw22L8afr8eYSWxDPYCob3TdrqtlA== + dependencies: + babel-core "^6.0.14" + object-assign "^4.0.0" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + backoff@^2.5.0: version "2.5.0" resolved "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz" @@ -2536,6 +3677,17 @@ base-x@^3.0.2, base-x@^3.0.8: dependencies: safe-buffer "^5.0.1" +base@^0.11.1: + version "0.11.2" + 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" + base64-js@^1.3.1: version "1.5.1" resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" @@ -2583,11 +3735,45 @@ bignumber.js@^9.0.1: resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz" integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== +bignumber.js@~9.0.2: + version "9.0.2" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz" + integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bip39@^2.5.0: + version "2.6.0" + resolved "https://registry.npmjs.org/bip39/-/bip39-2.6.0.tgz" + integrity sha512-RrnQRG2EgEoqO24ea+Q/fftuPUZLmrEM3qNhhGsA3PbaXaCW791LTzPuVyx/VprXQcTbPJ3K3UeTna8ZnVl2sg== + dependencies: + create-hash "^1.1.0" + pbkdf2 "^3.0.9" + randombytes "^2.0.1" + safe-buffer "^5.0.1" + unorm "^1.3.3" + +bip39@2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz" + integrity sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA== + dependencies: + create-hash "^1.1.0" + pbkdf2 "^3.0.9" + randombytes "^2.0.1" + safe-buffer "^5.0.1" + unorm "^1.3.3" + bip39@3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz" @@ -2598,9 +3784,16 @@ bip39@3.0.4: pbkdf2 "^3.0.9" randombytes "^2.0.1" -blakejs@^1.1.0: - version "1.2.1" - resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz" +bip66@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz" + integrity sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw== + dependencies: + safe-buffer "^5.0.1" + +blakejs@^1.1.0: + version "1.2.1" + resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== bluebird@^3.5.0, bluebird@^3.5.2: @@ -2608,17 +3801,10 @@ bluebird@^3.5.0, bluebird@^3.5.2: resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0: - version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^4.11.0, bn.js@^4.11.8: - version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.10.0, bn.js@^4.11.1, bn.js@^4.4.0, bn.js@^4.8.0: + version "4.11.9" -bn.js@^4.11.1: +bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== @@ -2628,10 +3814,11 @@ bn.js@^4.11.6: resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== +bn.js@^5.0.0: + version "5.1.3" + +bn.js@^5.1.1: + version "5.1.3" bn.js@^5.1.2, bn.js@^5.1.3, bn.js@^5.2.1: version "5.2.1" @@ -2661,6 +3848,20 @@ body-parser@^1.16.0: type-is "~1.6.18" unpipe "1.0.0" +body-parser@1.19.0: + version "1.19.0" + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + body-parser@1.20.1: version "1.20.1" resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz" @@ -2699,6 +3900,20 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" +braces@^2.3.1: + version "2.3.2" + 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" + braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" @@ -2726,7 +3941,7 @@ browser-stdout@1.3.1: resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserify-aes@^1.2.0: +browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6, browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== @@ -2738,6 +3953,48 @@ browserify-aes@^1.2.0: inherits "^2.0.1" safe-buffer "^5.0.1" +browserify-cipher@^1.0.0: + version "1.0.1" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserslist@^3.2.6: + version "3.2.8" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz" + integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== + dependencies: + caniuse-lite "^1.0.30000844" + electron-to-chromium "^1.3.47" + browserslist@^4.21.10, browserslist@^4.22.2, "browserslist@>= 4.21.0": version "4.22.2" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz" @@ -2748,6 +4005,11 @@ browserslist@^4.21.10, browserslist@^4.22.2, "browserslist@>= 4.21.0": node-releases "^2.0.14" update-browserslist-db "^1.0.13" +bs58@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/bs58/-/bs58-2.0.1.tgz" + integrity sha512-77ld2g7Hn1GyIUpuUVfbZdhO1q9R9gv/GYam4HAeAW/tzhQDrbJ2ZttN1tIe4hmKrWFE+oUtAhBNx/EA5SVdTg== + bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" @@ -2796,7 +4058,7 @@ buffer-xor@^2.0.1: dependencies: safe-buffer "^5.1.1" -buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: +buffer@^5.0.5, buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -2853,11 +4115,38 @@ busboy@^1.6.0: dependencies: streamsearch "^1.1.0" +bytes@3.1.0: + version "3.1.0" + bytes@3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== +bytewise-core@^1.2.2: + version "1.2.3" + dependencies: + typewise-core "^1.2" + +bytewise@~1.1.0: + version "1.1.0" + dependencies: + bytewise-core "^1.2.2" + typewise "^1.0.3" + +cache-base@^1.0.1: + version "1.0.1" + 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" + cacheable-lookup@^5.0.3: version "5.0.4" resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz" @@ -2868,6 +4157,17 @@ cacheable-lookup@^6.0.4: resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz" integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== +cacheable-request@^6.0.0: + version "6.1.0" + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + cacheable-request@^7.0.2: version "7.0.4" resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz" @@ -2881,7 +4181,13 @@ cacheable-request@^7.0.2: normalize-url "^6.0.1" responselike "^2.0.0" -call-bind@^1.0.0, call-bind@^1.0.2: +cachedown@1.0.0: + version "1.0.0" + dependencies: + abstract-leveldown "^2.4.1" + lru-cache "^3.2.0" + +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@~1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== @@ -2922,7 +4228,7 @@ camelcase@^6.0.0: resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001565: +caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001565: version "1.0.30001576" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz" integrity sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg== @@ -2949,6 +4255,14 @@ catering@^2.1.0, catering@^2.1.1: resolved "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== +cbor@^5.0.1: + version "5.2.0" + resolved "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz" + integrity sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A== + dependencies: + bignumber.js "^9.0.1" + nofilter "^1.0.4" + cbor@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz" @@ -2964,12 +4278,24 @@ cbor@^8.1.0: dependencies: nofilter "^3.1.0" +chai-as-promised@^7.1.0: + version "7.1.1" + resolved "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz" + integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== + dependencies: + check-error "^1.0.2" + +chai-bignumber@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/chai-bignumber/-/chai-bignumber-3.1.0.tgz" + integrity sha512-omxEc80jAU+pZwRmoWr3aEzeLad4JW3iBhLRQlgISvghBdIxrMT7mVAGsDz4WSyCkKowENshH2j9OABAhld7QQ== + chai-bn@^0.2.1: version "0.2.2" resolved "https://registry.npmjs.org/chai-bn/-/chai-bn-0.2.2.tgz" integrity sha512-MzjelH0p8vWn65QKmEq/DLBG1Hle4WeyqT79ANhXZhn/UxRWO0OogkAxi5oGGtfzwU9bZR8mvbvYdoqNVWQwFg== -chai@^4.0.0, chai@^4.2.0, chai@^4.3.4, chai@^4.3.7: +chai@^4.0.0, chai@^4.0.1, chai@^4.2.0, chai@^4.3.4, chai@^4.3.7, "chai@>= 2.1.2 < 5", "chai@>=2.2.1 <5": version "4.3.8" resolved "https://registry.npmjs.org/chai/-/chai-4.3.8.tgz" integrity sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ== @@ -2982,7 +4308,29 @@ chai@^4.0.0, chai@^4.2.0, chai@^4.3.4, chai@^4.3.7: pathval "^1.1.1" type-detect "^4.0.5" -chalk@^2.3.2, chalk@^2.4.2: +chainlink@^0.8.2: + version "0.8.2" + resolved "https://registry.npmjs.org/chainlink/-/chainlink-0.8.2.tgz" + integrity sha512-9gaLoChlo1A72ygESilIheULjHLpZPtie7451GF89ywtdn6V1NDVIjktgsKOFDIjr7jHsmyOwKBYv4VVNvtn0Q== + dependencies: + "@chainlink/test-helpers" "0.0.1" + cbor "^5.0.1" + ethers "^4.0.41" + link_token "^1.0.6" + openzeppelin-solidity "^1.12.0" + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.2: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -3081,7 +4429,7 @@ cheerio@^1.0.0-rc.2: parse5 "^7.0.0" parse5-htmlparser2-tree-adapter "^7.0.0" -chokidar@^3.4.0, chokidar@3.5.3: +chokidar@^3.0.2, chokidar@^3.4.0, chokidar@3.5.3: version "3.5.3" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -3111,6 +4459,9 @@ chokidar@3.3.0: optionalDependencies: fsevents "~2.1.1" +chownr@^1.1.1: + version "1.1.4" + chownr@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" @@ -3145,6 +4496,14 @@ class-is@^1.1.0: resolved "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz" integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== +class-utils@^0.3.5: + version "0.3.6" + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + classic-level@^1.2.0: version "1.3.0" resolved "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz" @@ -3198,6 +4557,15 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + clone-response@^1.0.2: version "1.0.3" resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz" @@ -3205,7 +4573,7 @@ clone-response@^1.0.2: dependencies: mimic-response "^1.0.0" -clone@^2.0.0, clone@^2.1.1: +clone@^2.0.0, clone@^2.1.1, clone@2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== @@ -3215,6 +4583,20 @@ code-point-at@^1.0.0: resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== +coinstring@^2.0.0: + version "2.3.1" + resolved "https://registry.npmjs.org/coinstring/-/coinstring-2.3.1.tgz" + integrity sha512-gLvivqtntteG2kOd7jpVQzKbIirJP7ijDEU+boVZTLj6V4tjVLBlUXGlijhBOcoWM7S/epqHVikQCD6x2J+E/Q== + dependencies: + bs58 "^2.0.1" + create-hash "^1.1.1" + +collection-visit@^1.0.0: + version "1.0.0" + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" @@ -3291,12 +4673,15 @@ commander@3.0.2: resolved "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== +component-emitter@^1.2.1: + version "1.3.0" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concat-stream@^1.6.0, concat-stream@^1.6.2: +concat-stream@^1.5.1, concat-stream@^1.6.0, concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -3314,6 +4699,11 @@ constant-case@^2.0.0: snake-case "^2.1.0" upper-case "^1.1.1" +content-disposition@0.5.3: + version "0.5.3" + dependencies: + safe-buffer "5.1.2" + content-disposition@0.5.4: version "0.5.4" resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" @@ -3335,6 +4725,11 @@ content-type@~1.0.4, content-type@~1.0.5: resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== +convert-source-map@^1.5.1: + version "1.9.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + convert-source-map@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" @@ -3350,11 +4745,20 @@ cookie@^0.4.1: resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== +cookie@0.4.0: + version "0.4.0" + cookie@0.5.0: version "0.5.0" resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookiejar@^2.1.1: + version "2.1.2" + +copy-descriptor@^0.1.0: + version "0.1.1" + core-js-compat@^3.32.2: version "3.32.2" resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz" @@ -3367,6 +4771,11 @@ core-js-pure@^3.0.1: resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.32.2.tgz" integrity sha512-Y2rxThOuNywTjnX/PgA5vWM6CZ9QB9sz9oGeCixV8MqXZO70z/5SHzf9EeBrEBK0PN36DnEBBu9O/aGWzKuMZQ== +core-js@^2.4.0, core-js@^2.5.0: + version "2.6.12" + resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + core-util-is@~1.0.0, core-util-is@1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" @@ -3395,7 +4804,13 @@ crc-32@^1.2.0: resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz" integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: +create-ecdh@^4.0.0: + version "4.0.4" + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== @@ -3406,7 +4821,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.4, create-hmac@^1.1.7: +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -3423,7 +4838,7 @@ create-require@^1.1.0: resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-fetch@^2.1.0: +cross-fetch@^2.1.0, cross-fetch@^2.1.1: version "2.2.6" resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz" integrity sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA== @@ -3445,6 +4860,15 @@ cross-fetch@^4.0.0: dependencies: node-fetch "^2.6.12" +cross-spawn@^6.0.5: + version "6.0.5" + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" @@ -3472,6 +4896,21 @@ crypto-addr-codec@^0.1.7: safe-buffer "^5.2.0" sha3 "^2.1.1" +crypto-browserify@3.12.0: + version "3.12.0" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + crypto-js@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz" @@ -3493,6 +4932,11 @@ css-what@^6.1.0: resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== +csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + d@^1.0.1, d@1: version "1.0.1" resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz" @@ -3520,6 +4964,25 @@ debug@^2.2.0: dependencies: ms "2.0.0" +debug@^2.3.3: + version "2.6.9" + dependencies: + ms "2.0.0" + +debug@^2.6.8: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + debug@^3.1.0: version "3.2.7" resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" @@ -3575,7 +5038,7 @@ decode-uri-component@^0.2.0: resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== -decompress-response@^3.3.0: +decompress-response@^3.2.0, decompress-response@^3.3.0: 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== @@ -3596,6 +5059,18 @@ deep-eql@^4.1.2: dependencies: type-detect "^4.0.0" +deep-equal@~1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz" + integrity sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg== + dependencies: + is-arguments "^1.1.1" + is-date-object "^1.0.5" + is-regex "^1.1.4" + object-is "^1.1.5" + object-keys "^1.1.1" + regexp.prototype.flags "^1.5.1" + deep-extend@~0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" @@ -3606,6 +5081,9 @@ deep-is@^0.1.3, deep-is@~0.1.3: resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== +defer-to-connect@^1.0.1: + version "1.1.3" + defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" @@ -3618,6 +5096,12 @@ deferred-leveldown@~1.2.1: dependencies: abstract-leveldown "~2.6.0" +deferred-leveldown@~4.0.0: + version "4.0.2" + dependencies: + abstract-leveldown "~5.0.0" + inherits "^2.0.3" + deferred-leveldown@~5.3.0: version "5.3.0" resolved "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz" @@ -3626,10 +5110,10 @@ deferred-leveldown@~5.3.0: abstract-leveldown "~6.2.1" inherits "^2.0.3" -define-data-property@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz" - integrity sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g== +define-data-property@^1.0.1, define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== dependencies: get-intrinsic "^1.2.1" gopd "^1.0.1" @@ -3644,26 +5128,74 @@ define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4, de has-property-descriptors "^1.0.0" object-keys "^1.1.1" +define-property@^0.2.5: + version "0.2.5" + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@~1.0.0: + version "1.0.0" + +defined@~1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +depd@~1.1.2: + version "1.1.2" + depd@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== +des.js@^1.0.0: + version "1.0.1" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + destroy@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz" + integrity sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A== + dependencies: + repeating "^2.0.0" + detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz" integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== +detect-node@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz" + integrity sha512-64uDTOK+fKEa6XoSbkkDoeAX8Ep1XhwxwZtL1aw1En5p5UOK/ekJoFqd5BB1o+uOvF1iHVv6qDUxdOQ/VgWEQg== + detect-port@^1.3.0: version "1.5.1" resolved "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz" @@ -3687,6 +5219,13 @@ diff@5.0.0: resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== +diffie-hellman@^5.0.0: + version "5.0.3" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + difflib@^0.2.4: version "0.2.4" resolved "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz" @@ -3701,6 +5240,11 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +dirty-chai@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/dirty-chai/-/dirty-chai-2.0.1.tgz" + integrity sha512-ys79pWKvDMowIDEPC6Fig8d5THiC0DJ2gmTeGzVAoEH18J8OzLud0Jh7I9IWg3NSk8x2UocznUuFmfHCXYZx9w== + doctrine@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" @@ -3762,6 +5306,25 @@ dotenv@^16.0.3: resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== +dotignore@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz" + integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== + dependencies: + minimatch "^3.0.4" + +drbg.js@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz" + integrity sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g== + dependencies: + browserify-aes "^1.0.6" + create-hash "^1.1.2" + create-hmac "^1.1.4" + +duplexer3@^0.1.4: + version "0.1.4" + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" @@ -3775,7 +5338,7 @@ ee-first@1.1.1: resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.601: +electron-to-chromium@^1.3.47, electron-to-chromium@^1.4.601: version "1.4.628" resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.628.tgz" integrity sha512-2k7t5PHvLsufpP6Zwk0nof62yLOsCf032wZx7/q0mv8gwlXjhcxI3lz6f0jBr0GrnWKcm3burXzI3t5IrcdUxw== @@ -3793,6 +5356,17 @@ elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.4, elliptic@6.5.4: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +elliptic@^6.5.3, elliptic@6.5.3: + version "6.5.3" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + emittery@0.10.0: version "0.10.0" resolved "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz" @@ -3823,6 +5397,22 @@ encoding-down@^6.3.0: level-codec "^9.0.0" level-errors "^2.0.0" +encoding-down@~5.0.0, encoding-down@5.0.4: + version "5.0.4" + dependencies: + abstract-leveldown "^5.0.0" + inherits "^2.0.3" + level-codec "^9.0.0" + level-errors "^2.0.0" + xtend "^4.0.1" + +encoding@^0.1.0, encoding@^0.1.11: + version "0.1.13" + resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" @@ -3862,6 +5452,37 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +es-abstract@^1.17.0-next.1: + version "1.17.7" + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-regex "^1.1.1" + object-inspect "^1.8.0" + object-keys "^1.1.1" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-abstract@^1.18.0-next.1: + version "1.18.0-next.1" + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-negative-zero "^2.0.0" + is-regex "^1.1.1" + object-inspect "^1.8.0" + object-keys "^1.1.1" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + es-abstract@^1.22.1: version "1.22.2" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz" @@ -3955,12 +5576,19 @@ es6-iterator@^2.0.3: es5-ext "^0.10.35" es6-symbol "^3.1.1" +es6-iterator@~2.0.3: + version "2.0.3" + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + es6-promise@^4.2.8: version "4.2.8" resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== -es6-symbol@^3.1.1, es6-symbol@^3.1.3: +es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.3: version "3.1.3" resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz" integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== @@ -3978,7 +5606,7 @@ escape-html@~1.0.3: resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@^1.0.5, escape-string-regexp@1.0.5: +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5, escape-string-regexp@1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== @@ -4248,6 +5876,19 @@ etag@~1.8.1: resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== +eth-block-tracker@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-3.0.1.tgz" + integrity sha512-WUVxWLuhMmsfenfZvFO5sbl1qFY2IqUlw/FPVmjjdElpqLsZtSG+wPe9Dz7W/sB6e80HgFKknOmKk2eNlznHug== + dependencies: + eth-query "^2.1.0" + ethereumjs-tx "^1.3.3" + ethereumjs-util "^5.1.3" + ethjs-util "^0.1.3" + json-rpc-engine "^3.6.0" + pify "^2.3.0" + tape "^4.6.3" + eth-block-tracker@^4.4.2: version "4.4.3" resolved "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz" @@ -4301,6 +5942,16 @@ eth-json-rpc-filters@^4.2.1: json-rpc-engine "^6.1.0" pify "^5.0.0" +eth-json-rpc-infura@^3.1.0: + version "3.2.1" + resolved "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz" + integrity sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw== + dependencies: + cross-fetch "^2.1.1" + eth-json-rpc-middleware "^1.5.0" + json-rpc-engine "^3.4.0" + json-rpc-error "^2.0.0" + eth-json-rpc-infura@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-5.1.0.tgz" @@ -4311,6 +5962,25 @@ eth-json-rpc-infura@^5.1.0: json-rpc-engine "^5.3.0" node-fetch "^2.6.0" +eth-json-rpc-middleware@^1.5.0: + version "1.6.0" + resolved "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz" + integrity sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q== + dependencies: + async "^2.5.0" + eth-query "^2.1.2" + eth-tx-summary "^3.1.2" + ethereumjs-block "^1.6.0" + ethereumjs-tx "^1.3.3" + ethereumjs-util "^5.1.2" + ethereumjs-vm "^2.1.0" + fetch-ponyfill "^4.0.0" + json-rpc-engine "^3.6.0" + json-rpc-error "^2.0.0" + json-stable-stringify "^1.0.1" + promise-to-callback "^1.0.0" + tape "^4.6.3" + eth-json-rpc-middleware@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz" @@ -4349,7 +6019,7 @@ eth-lib@0.2.8: elliptic "^6.4.0" xhr-request-promise "^0.1.2" -eth-query@^2.1.0, eth-query@^2.1.2: +eth-query@^2.0.2, eth-query@^2.1.0, eth-query@^2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz" integrity sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA== @@ -4379,9 +6049,43 @@ eth-sig-util@^1.4.2: ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" ethereumjs-util "^5.1.1" -ethereum-bloom-filters@^1.0.6: - version "1.0.10" - resolved "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz" +eth-sig-util@3.0.0: + version "3.0.0" + dependencies: + buffer "^5.2.1" + elliptic "^6.4.0" + ethereumjs-abi "0.6.5" + ethereumjs-util "^5.1.1" + tweetnacl "^1.0.0" + tweetnacl-util "^0.15.0" + +eth-tx-summary@^3.1.2: + version "3.2.4" + resolved "https://registry.npmjs.org/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz" + integrity sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg== + dependencies: + async "^2.1.2" + clone "^2.0.0" + concat-stream "^1.5.1" + end-of-stream "^1.1.0" + eth-query "^2.0.2" + ethereumjs-block "^1.4.1" + ethereumjs-tx "^1.1.1" + ethereumjs-util "^5.0.1" + ethereumjs-vm "^2.6.0" + through2 "^2.0.3" + +ethashjs@~0.0.7: + version "0.0.8" + dependencies: + async "^2.1.2" + buffer-xor "^2.0.1" + ethereumjs-util "^7.0.2" + miller-rabin "^4.0.0" + +ethereum-bloom-filters@^1.0.6: + version "1.0.10" + resolved "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz" integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== dependencies: js-sha3 "^0.8.0" @@ -4462,6 +6166,14 @@ ethereum-protocol@^1.0.1: resolved "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz" integrity sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg== +ethereum-types@^3.7.0, ethereum-types@^3.7.1: + version "3.7.1" + resolved "https://registry.npmjs.org/ethereum-types/-/ethereum-types-3.7.1.tgz" + integrity sha512-EBQwTGnGZQ9oHK7Za3DFEOxiElksRCoZECkk418vHiE2d59lLSejDZ1hzRVphtFjAu5YqONz4/XuAYdMBg+gWA== + dependencies: + "@types/node" "12.12.54" + bignumber.js "~9.0.2" + ethereum-waffle@*, ethereum-waffle@^4.0.10: version "4.0.10" resolved "https://registry.npmjs.org/ethereum-waffle/-/ethereum-waffle-4.0.10.tgz" @@ -4482,6 +6194,12 @@ ethereumjs-abi@^0.6.8, ethereumjs-abi@0.6.8, "ethereumjs-abi@git+https://github. bn.js "^4.11.8" ethereumjs-util "^6.0.0" +ethereumjs-abi@0.6.5: + version "0.6.5" + dependencies: + bn.js "^4.10.0" + ethereumjs-util "^4.3.0" + ethereumjs-account@^2.0.3: version "2.0.5" resolved "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz" @@ -4491,7 +6209,14 @@ ethereumjs-account@^2.0.3: rlp "^2.0.0" safe-buffer "^5.1.1" -ethereumjs-block@^1.2.2: +ethereumjs-account@^3.0.0, ethereumjs-account@3.0.0: + version "3.0.0" + dependencies: + ethereumjs-util "^6.0.0" + rlp "^2.2.1" + safe-buffer "^5.1.1" + +ethereumjs-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0: version "1.7.1" resolved "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz" integrity sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg== @@ -4502,6 +6227,15 @@ ethereumjs-block@^1.2.2: ethereumjs-util "^5.0.0" merkle-patricia-tree "^2.1.2" +ethereumjs-block@^2.2.2, ethereumjs-block@~2.2.2, ethereumjs-block@2.2.2: + version "2.2.2" + dependencies: + async "^2.0.1" + ethereumjs-common "^1.5.0" + ethereumjs-tx "^2.1.1" + ethereumjs-util "^5.0.0" + merkle-patricia-tree "^2.1.2" + ethereumjs-block@~2.2.0: version "2.2.2" resolved "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz" @@ -4513,12 +6247,29 @@ ethereumjs-block@~2.2.0: ethereumjs-util "^5.0.0" merkle-patricia-tree "^2.1.2" +ethereumjs-blockchain@^4.0.3: + version "4.0.4" + dependencies: + async "^2.6.1" + ethashjs "~0.0.7" + ethereumjs-block "~2.2.2" + ethereumjs-common "^1.5.0" + ethereumjs-util "^6.1.0" + flow-stoplight "^1.0.0" + level-mem "^3.0.1" + lru-cache "^5.1.1" + rlp "^2.2.2" + semaphore "^1.1.0" + ethereumjs-common@^1.1.0, ethereumjs-common@^1.5.0: version "1.5.2" resolved "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz" integrity sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA== -ethereumjs-tx@^1.2.2: +ethereumjs-common@^1.3.2, ethereumjs-common@1.5.0: + version "1.5.0" + +ethereumjs-tx@^1.1.1, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.3: version "1.3.7" resolved "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz" integrity sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA== @@ -4526,7 +6277,7 @@ ethereumjs-tx@^1.2.2: ethereum-common "^0.0.18" ethereumjs-util "^5.0.0" -ethereumjs-tx@^2.1.1: +ethereumjs-tx@^2.1.1, ethereumjs-tx@^2.1.2, ethereumjs-tx@2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz" integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== @@ -4534,20 +6285,16 @@ ethereumjs-tx@^2.1.1: ethereumjs-common "^1.5.0" ethereumjs-util "^6.0.0" -ethereumjs-util@^5.0.0: - version "5.2.1" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" - integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== +ethereumjs-util@^4.3.0: + version "4.5.1" dependencies: - bn.js "^4.11.0" + bn.js "^4.8.0" create-hash "^1.1.2" elliptic "^6.5.2" ethereum-cryptography "^0.1.3" - ethjs-util "^0.1.3" rlp "^2.0.0" - safe-buffer "^5.1.1" -ethereumjs-util@^5.1.1: +ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2, ethereumjs-util@^5.1.3, ethereumjs-util@^5.1.5: version "5.2.1" resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== @@ -4560,10 +6307,8 @@ ethereumjs-util@^5.1.1: rlp "^2.0.0" safe-buffer "^5.1.1" -ethereumjs-util@^5.1.2: +ethereumjs-util@^5.2.0: version "5.2.1" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" - integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== dependencies: bn.js "^4.11.0" create-hash "^1.1.2" @@ -4573,20 +6318,7 @@ ethereumjs-util@^5.1.2: rlp "^2.0.0" safe-buffer "^5.1.1" -ethereumjs-util@^5.1.5: - version "5.2.1" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" - integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "^0.1.3" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-util@^6.0.0: +ethereumjs-util@^6.0.0, ethereumjs-util@^6.1.0, ethereumjs-util@^6.2.0, ethereumjs-util@6.2.1: version "6.2.1" resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== @@ -4612,6 +6344,16 @@ ethereumjs-util@^6.2.1: ethjs-util "0.1.6" rlp "^2.2.3" +ethereumjs-util@^7.0.2: + version "7.0.7" + dependencies: + "@types/bn.js" "^4.11.3" + bn.js "^5.1.2" + create-hash "^1.1.2" + ethereum-cryptography "^0.1.3" + ethjs-util "0.1.6" + rlp "^2.2.4" + ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.3, ethereumjs-util@7.1.3: version "7.1.3" resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz" @@ -4645,7 +6387,7 @@ ethereumjs-util@^7.1.4: ethereum-cryptography "^0.1.3" rlp "^2.2.4" -ethereumjs-vm@^2.3.4: +ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4, ethereumjs-vm@^2.6.0: version "2.6.0" resolved "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz" integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== @@ -4662,6 +6404,38 @@ ethereumjs-vm@^2.3.4: rustbn.js "~0.2.0" safe-buffer "^5.1.1" +ethereumjs-vm@4.2.0: + version "4.2.0" + dependencies: + async "^2.1.2" + async-eventemitter "^0.2.2" + core-js-pure "^3.0.1" + ethereumjs-account "^3.0.0" + ethereumjs-block "^2.2.2" + ethereumjs-blockchain "^4.0.3" + ethereumjs-common "^1.5.0" + ethereumjs-tx "^2.1.2" + ethereumjs-util "^6.2.0" + fake-merkle-patricia-tree "^1.0.1" + functional-red-black-tree "^1.0.1" + merkle-patricia-tree "^2.3.2" + rustbn.js "~0.2.0" + safe-buffer "^5.1.1" + util.promisify "^1.0.0" + +ethereumjs-wallet@0.6.5: + version "0.6.5" + dependencies: + aes-js "^3.1.1" + bs58check "^2.1.2" + ethereum-cryptography "^0.1.3" + ethereumjs-util "^6.0.0" + randombytes "^2.0.6" + safe-buffer "^5.1.2" + scryptsy "^1.2.1" + utf8 "^3.0.0" + uuid "^3.3.2" + ethers-eip712@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/ethers-eip712/-/ethers-eip712-0.2.0.tgz" @@ -4733,6 +6507,36 @@ ethers@^4.0.40: uuid "2.0.1" xmlhttprequest "1.8.0" +ethers@^4.0.41: + version "4.0.49" + resolved "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz" + integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== + dependencies: + aes-js "3.0.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.3" + js-sha3 "0.5.7" + scrypt-js "2.0.4" + setimmediate "1.0.4" + uuid "2.0.1" + xmlhttprequest "1.8.0" + +ethers@~4.0.4: + version "4.0.49" + resolved "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz" + integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== + dependencies: + aes-js "3.0.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.3" + js-sha3 "0.5.7" + scrypt-js "2.0.4" + setimmediate "1.0.4" + uuid "2.0.1" + xmlhttprequest "1.8.0" + ethjs-abi@^0.2.1: version "0.2.1" resolved "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz" @@ -4768,7 +6572,7 @@ events@^3.0.0: resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -evp_bytestokey@^1.0.3: +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== @@ -4776,6 +6580,17 @@ evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" +expand-brackets@^2.1.4: + version "2.1.4" + 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" + express@^4.14.0: version "4.18.2" resolved "https://registry.npmjs.org/express/-/express-4.18.2.tgz" @@ -4820,11 +6635,34 @@ ext@^1.1.2: dependencies: type "^2.7.2" +extend-shallow@^2.0.1: + version "2.0.1" + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + extend@~3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== +extglob@^2.0.4: + version "2.0.4" + 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" + extsprintf@^1.2.0, extsprintf@1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" @@ -4887,6 +6725,13 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +fetch-ponyfill@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz" + integrity sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g== + dependencies: + node-fetch "~1.7.1" + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" @@ -4894,6 +6739,19 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" +file-uri-to-path@1.0.0: + 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== + +fill-range@^4.0.0: + version "4.0.0" + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" @@ -4901,6 +6759,17 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +finalhandler@~1.1.2: + version "1.1.2" + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + finalhandler@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" @@ -4967,6 +6836,12 @@ find-up@5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" +find-yarn-workspace-root@^1.2.1: + version "1.2.1" + dependencies: + fs-extra "^4.0.3" + micromatch "^3.1.4" + flat-cache@^3.0.4: version "3.1.0" resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz" @@ -4993,18 +6868,24 @@ flatted@^3.2.7: resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== +flow-stoplight@^1.0.0: + version "1.0.0" + follow-redirects@^1.12.1: version "1.15.3" resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz" integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== -for-each@^0.3.3: +for-each@^0.3.3, for-each@~0.3.3: version "0.3.3" resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" +for-in@^1.0.2: + version "1.0.2" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" @@ -5042,6 +6923,9 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +forwarded@~0.1.2: + version "0.1.2" + forwarded@0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" @@ -5052,6 +6936,11 @@ fp-ts@^1.0.0, fp-ts@1.19.3: resolved "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz" integrity sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg== +fragment-cache@^0.2.1: + version "0.2.1" + dependencies: + map-cache "^0.2.2" + fresh@0.5.2: version "0.5.2" resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" @@ -5077,6 +6966,13 @@ fs-extra@^4.0.2: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^4.0.3: + version "4.0.3" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-extra@^7.0.0, fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" @@ -5105,6 +7001,11 @@ fs-extra@^9.1.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-minipass@^1.2.5: + version "1.2.7" + dependencies: + minipass "^2.6.0" + fs-minipass@^1.2.7: version "1.2.7" resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz" @@ -5132,7 +7033,12 @@ fsevents@~2.3.2: resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1: +function-bind@^1.1.1, function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function-bind@~1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== @@ -5157,7 +7063,44 @@ functions-have-names@^1.2.3: resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -ganache@7.4.3: +ganache-core@^2.13.2: + version "2.13.2" + resolved "https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2.tgz" + integrity sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw== + dependencies: + abstract-leveldown "3.0.0" + async "2.6.2" + bip39 "2.5.0" + cachedown "1.0.0" + clone "2.1.2" + debug "3.2.6" + encoding-down "5.0.4" + eth-sig-util "3.0.0" + ethereumjs-abi "0.6.8" + ethereumjs-account "3.0.0" + ethereumjs-block "2.2.2" + ethereumjs-common "1.5.0" + ethereumjs-tx "2.1.2" + ethereumjs-util "6.2.1" + ethereumjs-vm "4.2.0" + heap "0.2.6" + keccak "3.0.1" + level-sublevel "6.6.4" + levelup "3.1.1" + lodash "4.17.20" + lru-cache "5.1.1" + merkle-patricia-tree "3.0.0" + patch-package "6.2.2" + seedrandom "3.0.1" + source-map-support "0.5.12" + tmp "0.1.0" + web3-provider-engine "14.2.1" + websocket "1.0.32" + optionalDependencies: + ethereumjs-wallet "0.6.5" + web3 "1.2.11" + +ganache@^7.4.0, ganache@7.4.3: version "7.4.3" resolved "https://registry.npmjs.org/ganache/-/ganache-7.4.3.tgz" integrity sha512-RpEDUiCkqbouyE7+NMXG26ynZ+7sGiODU84Kz+FVoXUnQ4qQM4M8wif3Y4qUCt+D/eM1RVeGq0my62FPD6Y1KA== @@ -5209,6 +7152,14 @@ get-port@^3.1.0: resolved "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz" integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== +get-stream@^3.0.0: + version "3.0.0" + +get-stream@^4.1.0: + version "4.1.0" + dependencies: + pump "^3.0.0" + get-stream@^5.1.0: version "5.2.0" resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" @@ -5236,6 +7187,9 @@ get-tsconfig@^4.7.0: dependencies: resolve-pkg-maps "^1.0.0" +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" @@ -5290,7 +7244,7 @@ glob@^5.0.15: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.1.3, glob@7.2.0: +glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@7.2.0: version "7.2.0" resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -5313,6 +7267,28 @@ glob@^8.0.3: minimatch "^5.0.1" once "^1.3.0" +glob@~7.1.6: + version "7.1.6" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@~7.2.3: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@7.1.3: version "7.1.3" resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz" @@ -5373,6 +7349,11 @@ globals@^13.19.0: dependencies: type-fest "^0.20.2" +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + globalthis@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" @@ -5430,6 +7411,24 @@ got@^11.8.5: p-cancelable "^2.0.0" responselike "^2.0.0" +got@^7.1.0: + version "7.1.0" + dependencies: + decompress-response "^3.2.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-plain-obj "^1.1.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^1.1.1" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + url-parse-lax "^1.0.0" + url-to-options "^1.0.1" + got@12.1.0: version "12.1.0" resolved "https://registry.npmjs.org/got/-/got-12.1.0.tgz" @@ -5449,6 +7448,24 @@ got@12.1.0: p-cancelable "^3.0.0" responselike "^2.0.0" +got@9.6.0: + version "9.6.0" + 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" + +graceful-fs@^4.1.11: + version "4.2.4" + graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" @@ -5552,6 +7569,13 @@ hardhat@^2.0.0, hardhat@^2.0.2, hardhat@^2.0.4, hardhat@^2.11.0, hardhat@^2.17.3 uuid "^8.3.2" ws "^7.4.6" +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + dependencies: + ansi-regex "^2.0.0" + has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" @@ -5584,11 +7608,22 @@ has-proto@^1.0.1: resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== +has-symbol-support-x@^1.4.1: + version "1.4.2" + has-symbols@^1.0.0, has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== +has-symbols@^1.0.1: + version "1.0.1" + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + dependencies: + has-symbol-support-x "^1.4.1" + has-tostringtag@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" @@ -5596,7 +7631,30 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has@^1.0.3: +has-value@^0.3.1: + version "0.3.1" + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + +has-values@^1.0.0: + version "1.0.0" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.3, has@~1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== @@ -5628,6 +7686,31 @@ hash.js@1.1.3: inherits "^2.0.3" minimalistic-assert "^1.0.0" +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + +hdkey@^0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/hdkey/-/hdkey-0.7.1.tgz" + integrity sha512-ADjIY5Bqdvp3Sh+SLSS1W3/gTJnlDwwM3UsM/5sHPojc4pLf6X3MfMMiTa96MgtADNhTPa+E+SAKMtqdv1zUfw== + dependencies: + coinstring "^2.0.0" + secp256k1 "^3.0.1" + +hdkey@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz" + integrity sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA== + dependencies: + bs58check "^2.1.2" + ripemd160 "^2.0.2" + safe-buffer "^5.1.1" + secp256k1 "^4.0.0" + he@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" @@ -5646,6 +7729,9 @@ header-case@^1.0.0: resolved "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz" integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg== +heap@0.2.6: + version "0.2.6" + highlight.js@^10.4.1: version "10.7.3" resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz" @@ -5656,6 +7742,13 @@ highlightjs-solidity@^2.0.6: resolved "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz" integrity sha512-DySXWfQghjm2l6a/flF+cteroJqD4gI8GSdL4PtvxZSsAHie8m3yVe2JFoRg03ROKT6hp2Lc/BxXkqerNmtQYg== +hmac-drbg@^1.0.0: + version "1.0.1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" @@ -5665,6 +7758,14 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz" + integrity sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + hosted-git-info@^2.1.4, hosted-git-info@^2.6.0: version "2.8.9" resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" @@ -5695,6 +7796,15 @@ http-cache-semantics@^4.0.0: resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== +http-errors@~1.7.2, http-errors@1.7.2: + version "1.7.2" + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + http-errors@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" @@ -5751,6 +7861,13 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" @@ -5816,11 +7933,14 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@2, inherits@2.0.4: +inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4, inherits@2, inherits@2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inherits@2.0.3: + version "2.0.3" + ini@^1.3.5: version "1.3.8" resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" @@ -5840,6 +7960,13 @@ interpret@^1.0.0: resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== +invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz" @@ -5857,7 +7984,17 @@ ipaddr.js@1.9.1: resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-arguments@^1.0.4: +is-accessor-descriptor@^0.1.6: + version "0.1.6" + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4, is-arguments@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== @@ -5901,6 +8038,9 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-buffer@^1.1.5: + version "1.1.6" + is-buffer@^2.0.5, is-buffer@~2.0.3: version "2.0.5" resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" @@ -5911,6 +8051,14 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== +is-callable@^1.2.2: + version "1.2.2" + +is-ci@^2.0.0: + version "2.0.0" + dependencies: + ci-info "^2.0.0" + is-core-module@^2.12.1, is-core-module@^2.13.0: version "2.13.0" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz" @@ -5918,18 +8066,58 @@ is-core-module@^2.12.1, is-core-module@^2.13.0: dependencies: has "^1.0.3" -is-date-object@^1.0.1: +is-data-descriptor@^0.1.4: + version "0.1.4" + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + +is-extendable@^0.1.1: + version "0.1.1" + +is-extendable@^1.0.1: + version "1.0.1" + dependencies: + is-plain-object "^2.0.4" is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + is-fn@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz" @@ -5983,6 +8171,9 @@ is-lower-case@^1.1.0: dependencies: lower-case "^1.1.0" +is-negative-zero@^2.0.0: + version "2.0.1" + is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" @@ -5995,22 +8186,43 @@ is-number-object@^1.0.4: dependencies: has-tostringtag "^1.0.0" +is-number@^3.0.0: + version "3.0.0" + dependencies: + kind-of "^3.0.2" + is-number@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-object@^1.0.1: + version "1.0.2" + is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== +is-plain-obj@^1.1.0: + version "1.1.0" + is-plain-obj@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-regex@^1.1.4: +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + dependencies: + isobject "^3.0.1" + +is-regex@^1.0.4, is-regex@^1.1.1: + version "1.1.1" + dependencies: + has-symbols "^1.0.1" + +is-regex@^1.1.4, is-regex@~1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -6018,6 +8230,14 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-regex@~1.0.5: + version "1.0.5" + dependencies: + has "^1.0.3" + +is-retry-allowed@^1.0.0: + version "1.2.0" + is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" @@ -6025,6 +8245,14 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" +is-stream@^1.0.0: + version "1.1.0" + +is-stream@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" @@ -6080,12 +8308,15 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" +is-windows@^1.0.2: + version "1.0.2" + isarray@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== -isarray@~1.0.0: +isarray@~1.0.0, isarray@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== @@ -6100,21 +8331,76 @@ isexe@^2.0.0: resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +isobject@^2.0.0: + version "2.1.0" + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + +isomorphic-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz" + integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA== + dependencies: + node-fetch "^2.6.1" + whatwg-fetch "^3.4.1" + +isomorphic-fetch@2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz" + integrity sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA== + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + isstream@~0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== +istanbul@^0.4.5: + version "0.4.5" + resolved "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz" + integrity sha512-nMtdn4hvK0HjUlzr1DrKSUY8ychprt8dzHOgY2KXsIhHu5PuQQEOTM27gV9Xblyon7aUH/TSFIjRHEODF/FRPg== + dependencies: + abbrev "1.0.x" + async "1.x" + escodegen "1.8.x" + esprima "2.7.x" + glob "^5.0.15" + handlebars "^4.0.1" + js-yaml "3.x" + mkdirp "0.5.x" + nopt "3.x" + once "1.x" + resolve "1.1.x" + supports-color "^3.1.0" + which "^1.1.1" + wordwrap "^1.0.0" + +isurl@^1.0.0-alpha5: + version "1.0.0" + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + js-sdsl@^4.1.4: version "4.4.2" resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz" integrity sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w== -js-sha3@^0.5.7: +js-sha3@^0.5.7, js-sha3@0.5.7: version "0.5.7" resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz" integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== +js-sha3@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.7.0.tgz" + integrity sha512-Wpks3yBDm0UcL5qlVhwW9Jr9n9i4FfeWBFOOXP5puDS/SiudJGhw7DPyBqn3487qD4F0lsC0q3zxink37f7zeA== + js-sha3@^0.8.0, js-sha3@0.8.0: version "0.8.0" resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" @@ -6125,16 +8411,16 @@ js-sha3@0.5.5: resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz" integrity sha512-yLLwn44IVeunwjpDVTDZmQeVbB0h+dZpY2eO68B/Zik8hu6dH+rKeLxwua79GGIvW6xr8NBAcrtiUbYrTjEFTA== -js-sha3@0.5.7: - version "0.5.7" - resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz" - integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== - -js-tokens@^4.0.0: +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz" + integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== + js-yaml@^4.1.0, js-yaml@4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" @@ -6163,11 +8449,21 @@ jsbn@~0.1.0: resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz" + integrity sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA== + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + json-bigint@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz" @@ -6175,6 +8471,9 @@ json-bigint@^1.0.0: dependencies: bignumber.js "^9.0.0" +json-buffer@3.0.0: + version "3.0.0" + json-buffer@3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" @@ -6185,6 +8484,18 @@ json-parse-even-better-errors@^2.3.0: resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== +json-rpc-engine@^3.4.0, json-rpc-engine@^3.6.0: + version "3.8.0" + resolved "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz" + integrity sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA== + dependencies: + async "^2.0.1" + babel-preset-env "^1.7.0" + babelify "^7.3.0" + json-rpc-error "^2.0.0" + promise-to-callback "^1.0.0" + safe-event-emitter "^1.0.1" + json-rpc-engine@^5.3.0: version "5.4.0" resolved "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz" @@ -6201,6 +8512,13 @@ json-rpc-engine@^6.1.0: "@metamask/safe-event-emitter" "^2.0.0" eth-rpc-errors "^4.0.2" +json-rpc-error@^2.0.0, json-rpc-error@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/json-rpc-error/-/json-rpc-error-2.0.0.tgz" + integrity sha512-EwUeWP+KgAZ/xqFpaP6YDAXMtCJi+o/QQpCQFIYyxr01AdADi2y413eM8hSqJcoQym9WMePAJWoaODEJufC4Ug== + dependencies: + inherits "^2.0.1" + json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz" @@ -6216,6 +8534,9 @@ json-schema-traverse@^1.0.0: resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== +json-schema@0.2.3: + version "0.2.3" + json-schema@0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" @@ -6238,6 +8559,11 @@ json-stringify-safe@~5.0.1: resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz" + integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== + json5@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" @@ -6278,6 +8604,9 @@ jsonify@^0.0.1: resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz" integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== +jsonify@~0.0.0: + version "0.0.0" + jsonschema@^1.2.4: version "1.4.1" resolved "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz" @@ -6319,6 +8648,11 @@ keccak@3.0.2: node-gyp-build "^4.2.0" readable-stream "^3.6.0" +keyv@^3.0.0: + version "3.1.0" + dependencies: + json-buffer "3.0.0" + keyv@^4.0.0, keyv@^4.5.3: version "4.5.3" resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz" @@ -6326,11 +8660,34 @@ keyv@^4.0.0, keyv@^4.5.3: dependencies: json-buffer "3.0.1" -kind-of@^6.0.2: +kind-of@^3.0.2, kind-of@^3.0.3: + version "3.2.2" + dependencies: + is-buffer "^1.1.5" + +kind-of@^3.2.0: + version "3.2.2" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + +kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +klaw-sync@^6.0.0: + version "6.0.0" + dependencies: + graceful-fs "^4.1.11" + klaw@^1.0.0: version "1.3.1" resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" @@ -6383,6 +8740,13 @@ level-errors@^2.0.0, level-errors@~2.0.0: dependencies: errno "~0.1.1" +level-iterator-stream@^2.0.3: + version "2.0.3" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.5" + xtend "^4.0.0" + level-iterator-stream@~1.3.0: version "1.3.1" resolved "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz" @@ -6393,6 +8757,13 @@ level-iterator-stream@~1.3.0: readable-stream "^1.0.33" xtend "^4.0.0" +level-iterator-stream@~3.0.0: + version "3.0.1" + dependencies: + inherits "^2.0.1" + readable-stream "^2.3.6" + xtend "^4.0.0" + level-iterator-stream@~4.0.0: version "4.0.2" resolved "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz" @@ -6402,6 +8773,12 @@ level-iterator-stream@~4.0.0: readable-stream "^3.4.0" xtend "^4.0.2" +level-mem@^3.0.1: + version "3.0.1" + dependencies: + level-packager "~4.0.0" + memdown "~3.0.0" + level-mem@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/level-mem/-/level-mem-5.0.1.tgz" @@ -6418,6 +8795,31 @@ level-packager@^5.0.3: encoding-down "^6.3.0" levelup "^4.3.2" +level-packager@~4.0.0: + version "4.0.1" + dependencies: + encoding-down "~5.0.0" + levelup "^3.0.0" + +level-post@^1.0.7: + version "1.0.7" + dependencies: + ltgt "^2.1.2" + +level-sublevel@6.6.4: + version "6.6.4" + dependencies: + bytewise "~1.1.0" + level-codec "^9.0.0" + level-errors "^2.0.0" + level-iterator-stream "^2.0.3" + ltgt "~2.1.1" + pull-defer "^0.2.2" + pull-level "^2.0.3" + pull-stream "^3.6.8" + typewiselite "~1.0.0" + xtend "~4.0.0" + level-supports@^2.0.1: version "2.1.0" resolved "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz" @@ -6443,6 +8845,13 @@ level-transcoder@^1.0.1: buffer "^6.0.3" module-error "^1.0.1" +level-ws@^1.0.0: + version "1.0.0" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.8" + xtend "^4.0.1" + level-ws@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz" @@ -6490,6 +8899,14 @@ levelup@^1.2.1: semver "~5.4.1" xtend "~4.0.0" +levelup@^3.0.0, levelup@3.1.1: + version "3.1.1" + dependencies: + deferred-leveldown "~4.0.0" + level-errors "~2.0.0" + level-iterator-stream "~3.0.0" + xtend "~4.0.0" + levelup@^4.3.2: version "4.4.0" resolved "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz" @@ -6522,6 +8939,11 @@ lines-and-columns@^1.1.6: resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +link_token@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/link_token/-/link_token-1.0.6.tgz" + integrity sha512-WI6n2Ri9kWQFsFYPTnLvU+Y3DT87he55uqLLX/sAwCVkGTXI/wionGEHAoWU33y8RepWlh46y+RD+DAz5Wmejg== + load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" @@ -6593,11 +9015,19 @@ lodash.truncate@^4.4.2: resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: +lodash.values@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz" + integrity sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q== + +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +lodash@4.17.20: + version "4.17.20" + log-symbols@3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz" @@ -6613,6 +9043,24 @@ log-symbols@4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" +loglevel@^1.6.1: + version "1.8.1" + resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz" + integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== + +looper@^2.0.0: + version "2.0.0" + +looper@^3.0.0: + version "3.0.0" + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + loupe@^2.3.1: version "2.3.6" resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz" @@ -6632,6 +9080,9 @@ lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2: resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz" integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA== +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + lowercase-keys@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" @@ -6647,7 +9098,12 @@ lru_map@^0.3.3: resolved "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz" integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== -lru-cache@^5.1.1: +lru-cache@^3.2.0: + version "3.2.0" + dependencies: + pseudomap "^1.0.1" + +lru-cache@^5.1.1, lru-cache@5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== @@ -6661,6 +9117,9 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +ltgt@^2.1.2, ltgt@~2.1.1: + version "2.1.3" + ltgt@~2.2.0: version "2.2.1" resolved "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz" @@ -6671,6 +9130,14 @@ make-error@^1.1.1: resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +map-cache@^0.2.2: + version "0.2.2" + +map-visit@^1.0.0: + version "1.0.0" + dependencies: + object-visit "^1.0.0" + markdown-table@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz" @@ -6719,6 +9186,16 @@ memdown@^5.0.0: ltgt "~2.2.0" safe-buffer "~5.2.0" +memdown@~3.0.0: + version "3.0.0" + dependencies: + abstract-leveldown "~5.0.0" + functional-red-black-tree "~1.0.1" + immediate "~3.2.3" + inherits "~2.0.1" + ltgt "~2.2.0" + safe-buffer "~5.1.1" + memory-level@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz" @@ -6769,6 +9246,17 @@ merkle-patricia-tree@^4.2.2, merkle-patricia-tree@^4.2.4: readable-stream "^3.6.0" semaphore-async-await "^1.5.1" +merkle-patricia-tree@3.0.0: + version "3.0.0" + dependencies: + async "^2.6.1" + ethereumjs-util "^5.2.0" + level-mem "^3.0.1" + level-ws "^1.0.0" + readable-stream "^3.0.6" + rlp "^2.0.0" + semaphore ">=1.0.1" + merkletreejs@^0.3.11: version "0.3.11" resolved "https://registry.npmjs.org/merkletreejs/-/merkletreejs-0.3.11.tgz" @@ -6790,6 +9278,23 @@ micro-ftch@^0.3.1: resolved "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz" integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== +micromatch@^3.1.4: + version "3.1.10" + 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" + micromatch@^4.0.4: version "4.0.5" resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" @@ -6806,6 +9311,9 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" +mime-db@1.45.0: + version "1.45.0" + mime-db@1.52.0: version "1.52.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" @@ -6823,7 +9331,7 @@ mime@1.6.0: resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mimic-response@^1.0.0: +mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== @@ -6845,12 +9353,12 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.2, "minimatch@2 || 3": +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2, "minimatch@2 || 3": version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -6878,12 +9386,15 @@ minimatch@5.0.1: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@~1.2.8: version "1.2.8" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -minipass@^2.6.0, minipass@^2.9.0: +minimist@~1.2.5: + version "1.2.5" + +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: version "2.9.0" resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== @@ -6891,6 +9402,11 @@ minipass@^2.6.0, minipass@^2.9.0: safe-buffer "^5.1.2" yallist "^3.0.0" +minizlib@^1.2.1: + version "1.3.3" + dependencies: + minipass "^2.9.0" + minizlib@^1.3.3: version "1.3.3" resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz" @@ -6898,6 +9414,12 @@ minizlib@^1.3.3: dependencies: minipass "^2.9.0" +mixin-deep@^1.2.0: + version "1.3.2" + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + mkdirp-promise@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz" @@ -6912,6 +9434,11 @@ mkdirp@*, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@0.5.x: dependencies: minimist "^1.2.6" +mkdirp@^0.5.0: + version "0.5.5" + dependencies: + minimist "^1.2.5" + mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" @@ -6993,6 +9520,18 @@ mock-fs@^4.1.0: resolved "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz" integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== +mock-property@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/mock-property/-/mock-property-1.0.3.tgz" + integrity sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ== + dependencies: + define-data-property "^1.1.1" + functions-have-names "^1.2.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + hasown "^2.0.0" + isarray "^2.0.5" + module-error@^1.0.1, module-error@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz" @@ -7058,6 +9597,16 @@ multihashes@^0.4.15, multihashes@~0.4.15: multibase "^0.7.0" varint "^5.0.0" +n@^9.2.0: + version "9.2.0" + resolved "https://registry.npmjs.org/n/-/n-9.2.0.tgz" + integrity sha512-R8mFN2OWwNVc+r1f9fDzcT34DnDwUIHskrpTesZ6SdluaXBBnRtTu5tlfaSPloBi1Z/eGJoPO9nhyawWPad5UQ== + +nan@^2.14.0: + 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== + nano-base32@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/nano-base32/-/nano-base32-1.0.1.tgz" @@ -7073,6 +9622,21 @@ nanoid@3.3.3: resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz" integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== +nanomatch@^1.2.9: + version "1.2.13" + 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" + napi-macros@^2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz" @@ -7093,6 +9657,9 @@ natural-compare@^1.4.0: resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +negotiator@0.6.2: + version "0.6.2" + negotiator@0.6.3: version "0.6.3" resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" @@ -7108,6 +9675,12 @@ next-tick@^1.1.0: resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== +next-tick@~1.0.0: + version "1.0.0" + +nice-try@^1.0.4: + version "1.0.5" + no-case@^2.2.0, no-case@^2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz" @@ -7135,6 +9708,14 @@ node-environment-flags@1.0.6: object.getownpropertydescriptors "^2.0.3" semver "^5.7.0" +node-fetch@^1.0.1: + version "1.7.3" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: version "2.7.0" resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" @@ -7142,6 +9723,17 @@ node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" +node-fetch@~1.7.1: + version "1.7.3" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-fetch@2.1.2: + version "2.1.2" + node-gyp-build@^4.2.0, node-gyp-build@^4.3.0, node-gyp-build@4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz" @@ -7189,6 +9781,9 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +normalize-url@^4.1.0: + version "4.5.0" + normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" @@ -7219,17 +9814,44 @@ oauth-sign@~0.9.0: resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.0.0, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.12.3, object-inspect@^1.9.0: +object-copy@^0.1.0: + version "0.1.0" + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.12.3, object-inspect@^1.9.0, object-inspect@~1.12.3: version "1.12.3" resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-keys@^1.0.11, object-keys@^1.1.1: +object-inspect@^1.8.0: + version "1.9.0" + +object-inspect@~1.7.0: + version "1.7.0" + +object-is@^1.0.1: + version "1.1.4" + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -7239,6 +9861,19 @@ object-keys@~0.4.0: resolved "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz" integrity sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw== +object-visit@^1.0.0: + version "1.0.1" + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.1: + version "4.1.2" + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + object.assign@^4.1.4: version "4.1.4" resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" @@ -7279,6 +9914,13 @@ object.getownpropertydescriptors@^2.0.3: es-abstract "^1.22.1" safe-array-concat "^1.0.0" +object.getownpropertydescriptors@^2.1.1: + version "2.1.1" + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + object.groupby@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz" @@ -7289,6 +9931,11 @@ object.groupby@^1.0.0: es-abstract "^1.22.1" get-intrinsic "^1.2.1" +object.pick@^1.3.0: + version "1.3.0" + dependencies: + isobject "^3.0.1" + object.values@^1.1.6: version "1.1.7" resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz" @@ -7303,6 +9950,11 @@ obliterator@^2.0.0: resolved "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz" integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== +oboe@2.1.4: + version "2.1.4" + dependencies: + http-https "^1.0.0" + oboe@2.1.5: version "2.1.5" resolved "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz" @@ -7310,6 +9962,11 @@ oboe@2.1.5: dependencies: http-https "^1.0.0" +on-finished@~2.3.0: + version "2.3.0" + dependencies: + ee-first "1.1.1" + on-finished@2.4.1: version "2.4.1" resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" @@ -7329,6 +9986,11 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0, once@1.x: resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.3.tgz" integrity sha512-jjaHAVRMrE4UuZNfDwjlLGDxTHWIOwTJS2ldnc278a0gevfXfPr8hxKEVBGFBE96kl2G3VHDZhUimw/+G3TG2A== +openzeppelin-solidity@^1.12.0: + version "1.12.0" + resolved "https://registry.npmjs.org/openzeppelin-solidity/-/openzeppelin-solidity-1.12.0.tgz" + integrity sha512-WlorzMXIIurugiSdw121RVD5qA3EfSI7GybTn+/Du0mPNgairjt29NpVTAaH8eLjAeAwlw46y7uQKy0NYem/gA== + optionator@^0.8.1: version "0.8.3" resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" @@ -7353,6 +10015,11 @@ optionator@^0.9.3: prelude-ls "^1.2.1" type-check "^0.4.0" +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== + os-locale@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz" @@ -7360,11 +10027,17 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -os-tmpdir@~1.0.2: +os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== +p-cancelable@^0.3.0: + version "0.3.0" + +p-cancelable@^1.0.0: + version "1.1.0" + p-cancelable@^2.0.0: version "2.1.1" resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz" @@ -7375,6 +10048,9 @@ p-cancelable@^3.0.0: resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== +p-finally@^1.0.0: + version "1.0.0" + p-limit@^1.1.0: version "1.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" @@ -7431,6 +10107,11 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" +p-timeout@^1.1.1: + version "1.2.1" + dependencies: + p-finally "^1.0.0" + p-try@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" @@ -7455,6 +10136,15 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + parse-cache-control@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz" @@ -7510,6 +10200,25 @@ pascal-case@^2.0.0: camel-case "^3.0.0" upper-case-first "^1.1.0" +pascalcase@^0.1.1: + version "0.1.1" + +patch-package@6.2.2: + version "6.2.2" + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + chalk "^2.4.2" + cross-spawn "^6.0.5" + find-yarn-workspace-root "^1.2.1" + fs-extra "^7.0.1" + is-ci "^2.0.0" + klaw-sync "^6.0.0" + minimist "^1.2.0" + rimraf "^2.6.3" + semver "^5.6.0" + slash "^2.0.0" + tmp "^0.0.33" + path-browserify@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" @@ -7539,11 +10248,14 @@ path-exists@^4.0.0: resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0: +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== +path-key@^2.0.1: + version "2.0.1" + path-key@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" @@ -7589,6 +10301,15 @@ pbkdf2@^3.0.17, pbkdf2@^3.0.9: safe-buffer "^5.0.1" sha.js "^2.4.8" +pbkdf2@^3.0.3: + version "3.1.1" + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + performance-now@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" @@ -7609,6 +10330,11 @@ pify@^2.0.0: resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + pify@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" @@ -7636,11 +10362,24 @@ pinkie@^2.0.0: resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz" + integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== + pluralize@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== +popper.js@1.14.3: + version "1.14.3" + resolved "https://registry.npmjs.org/popper.js/-/popper.js-1.14.3.tgz" + integrity sha512-3lmujhsHXzb83+sI0PzfrE3O1XHZG8m8MXNMTupvA6LrM1/nnsiqYaacYc/RIente9VqnTDPztGEM8uvPAMGyg== + +posix-character-classes@^0.1.0: + version "0.1.1" + precond@0.2: version "0.2.3" resolved "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz" @@ -7656,6 +10395,12 @@ prelude-ls@~1.1.2: resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== +prepend-http@^1.0.1: + version "1.0.4" + +prepend-http@^2.0.0: + version "2.0.0" + prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" @@ -7677,6 +10422,11 @@ prettier-plugin-solidity@^1.0.0-alpha.14, prettier-plugin-solidity@^1.1.3: resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" @@ -7702,6 +10452,12 @@ promise@^8.0.0: dependencies: asap "~2.0.6" +proxy-addr@~2.0.5: + version "2.0.6" + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" @@ -7715,11 +10471,58 @@ prr@~1.0.1: resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== +pseudomap@^1.0.1: + version "1.0.2" + psl@^1.1.28: version "1.9.0" resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== +public-encrypt@^4.0.0: + version "4.0.3" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pull-cat@^1.1.9: + version "1.1.11" + +pull-defer@^0.2.2: + version "0.2.3" + +pull-level@^2.0.3: + version "2.0.4" + dependencies: + level-post "^1.0.7" + pull-cat "^1.1.9" + pull-live "^1.0.1" + pull-pushable "^2.0.0" + pull-stream "^3.4.0" + pull-window "^2.1.4" + stream-to-pull-stream "^1.7.1" + +pull-live@^1.0.1: + version "1.0.1" + dependencies: + pull-cat "^1.1.9" + pull-stream "^3.4.0" + +pull-pushable@^2.0.0: + version "2.2.0" + +pull-stream@^3.2.3, pull-stream@^3.4.0, pull-stream@^3.6.8: + version "3.6.14" + +pull-window@^2.1.4: + version "2.1.4" + dependencies: + looper "^2.0.0" + pump@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" @@ -7739,9 +10542,7 @@ punycode@^2.1.0, punycode@2.1.0: integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== punycode@^2.1.1: - version "2.3.0" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + version "2.1.1" pure-rand@^5.0.1: version "5.0.5" @@ -7767,6 +10568,9 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" +qs@6.7.0: + version "6.7.0" + query-string@^5.0.1: version "5.1.1" resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz" @@ -7791,13 +10595,19 @@ quick-lru@^5.1.1: resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== -randombytes@^2.0.1, randombytes@^2.1.0: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" +randomfill@^1.0.3: + version "1.0.4" + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + range-parser@~1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" @@ -7813,6 +10623,14 @@ raw-body@^2.4.1, raw-body@2.5.2: iconv-lite "0.4.24" unpipe "1.0.0" +raw-body@2.4.0: + version "2.4.0" + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + raw-body@2.5.1: version "2.5.1" resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" @@ -7863,6 +10681,17 @@ readable-stream@^2.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^2.0.5, readable-stream@^2.2.8, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + 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" + readable-stream@^2.2.2: version "2.3.8" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" @@ -7889,6 +10718,13 @@ readable-stream@^2.2.9: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^3.0.6: + version "3.6.0" + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@^3.1.0, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" @@ -7941,11 +10777,42 @@ reduce-flatten@^2.0.0: resolved "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz" integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== +regenerate@^1.2.1: + version "1.4.2" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + regenerator-runtime@^0.14.0: version "0.14.0" resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz" integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz" + integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp.prototype.flags@^1.2.0: + version "1.3.0" + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + regexp.prototype.flags@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz" @@ -7960,6 +10827,40 @@ regexpp@^3.0.0: resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz" + integrity sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ== + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz" + integrity sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g== + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz" + integrity sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw== + dependencies: + jsesc "~0.5.0" + +repeat-element@^1.1.2: + version "1.1.3" + +repeat-string@^1.6.1: + version "1.6.1" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" + integrity sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A== + dependencies: + is-finite "^1.0.0" + req-cwd@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz" @@ -7990,7 +10891,7 @@ request-promise-native@^1.0.5: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.34, request@^2.79.0, request@^2.85.0, request@^2.88.0: +request@^2.34, request@^2.67.0, request@^2.79.0, request@^2.85.0, request@^2.88.0: version "2.88.2" resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -8031,6 +10932,11 @@ require-from-string@^2.0.0: 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== +require-from-string@^2.0.1: + version "2.0.2" + 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== + require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" @@ -8066,7 +10972,10 @@ resolve-pkg-maps@^1.0.0: resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.22.2, resolve@^1.22.4: +resolve-url@^0.2.1: + version "0.2.1" + +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.22.2, resolve@^1.22.4, resolve@~1.22.6: version "1.22.6" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz" integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== @@ -8075,6 +10984,11 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.22 path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@~1.17.0: + version "1.17.0" + dependencies: + path-parse "^1.0.6" + resolve@1.1.x: version "1.1.7" resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" @@ -8087,6 +11001,11 @@ resolve@1.17.0: dependencies: path-parse "^1.0.6" +responselike@^1.0.2: + version "1.0.2" + dependencies: + lowercase-keys "^1.0.0" + responselike@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz" @@ -8094,6 +11013,14 @@ responselike@^2.0.0: dependencies: lowercase-keys "^2.0.0" +resumer@~0.0.0: + version "0.0.0" + dependencies: + through "~2.3.4" + +ret@~0.1.10: + version "0.1.15" + reusify@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" @@ -8106,6 +11033,18 @@ rimraf@^2.2.8: dependencies: glob "^7.1.3" +rimraf@^2.6.2: + version "2.7.1" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^2.6.3: + version "2.6.3" + dependencies: + glob "^7.1.3" + rimraf@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" @@ -8126,7 +11065,7 @@ ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2: hash-base "^3.0.0" inherits "^2.0.1" -rlp@^2.0.0, rlp@^2.2.3, rlp@^2.2.4, rlp@2.2.6: +rlp@^2.0.0, rlp@^2.2.1, rlp@^2.2.2, rlp@^2.2.3, rlp@^2.2.4, rlp@2.2.6: version "2.2.6" resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz" integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg== @@ -8152,6 +11091,13 @@ rustbn.js@~0.2.0: resolved "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz" integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== +rxjs@^6.5.3: + version "6.6.7" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + safe-array-concat@^1.0.0, safe-array-concat@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz" @@ -8172,6 +11118,9 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-buffer@5.1.2: + version "5.1.2" + safe-event-emitter@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz" @@ -8188,7 +11137,12 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -safer-buffer@^2.0.2, safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3", safer-buffer@~2.1.0: +safe-regex@^1.1.0: + version "1.1.0" + dependencies: + ret "~0.1.10" + +safer-buffer@^2.0.2, safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -8223,6 +11177,11 @@ scrypt-js@2.0.4: resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz" integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== +scryptsy@^1.2.1: + version "1.2.1" + dependencies: + pbkdf2 "^3.0.3" + seaport-core@^0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/seaport-core/-/seaport-core-0.0.1.tgz" @@ -8265,7 +11224,21 @@ seaport-types@^0.0.1: seaport-types "^0.0.1" solady "^0.0.84" -secp256k1@^4.0.1, secp256k1@4.0.3: +secp256k1@^3.0.1: + version "3.8.0" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz" + integrity sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw== + dependencies: + bindings "^1.5.0" + bip66 "^1.1.5" + bn.js "^4.11.8" + create-hash "^1.2.0" + drbg.js "^1.0.1" + elliptic "^6.5.2" + nan "^2.14.0" + safe-buffer "^5.1.2" + +secp256k1@^4.0.0, secp256k1@^4.0.1, secp256k1@4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== @@ -8274,6 +11247,9 @@ secp256k1@^4.0.1, secp256k1@4.0.3: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" +seedrandom@3.0.1: + version "3.0.1" + seedrandom@3.0.5: version "3.0.5" resolved "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz" @@ -8284,7 +11260,7 @@ semaphore-async-await@^1.5.1: resolved "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz" integrity sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg== -semaphore@^1.0.3, semaphore@>=1.0.1: +semaphore@^1.0.3, semaphore@^1.1.0, semaphore@>=1.0.1: version "1.1.0" resolved "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz" integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== @@ -8294,10 +11270,10 @@ semver@^5.3.0: resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^5.5.0: - version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== +semver@^5.5.0, semver@5.5.0: + version "5.5.0" + resolved "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz" + integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== semver@^5.6.0: version "5.7.2" @@ -8373,6 +11349,23 @@ semver@~5.4.1: resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== +send@0.17.1: + version "0.17.1" + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + send@0.18.0: version "0.18.0" resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" @@ -8407,6 +11400,14 @@ serialize-javascript@6.0.0: dependencies: randombytes "^2.1.0" +serve-static@1.14.1: + version "1.14.1" + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + serve-static@1.15.0: version "1.15.0" resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" @@ -8447,6 +11448,14 @@ set-immediate-shim@^1.0.1: resolved "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" integrity sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ== +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" @@ -8457,6 +11466,9 @@ setimmediate@1.0.4: resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz" integrity sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog== +setprototypeof@1.1.1: + version "1.1.1" + setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" @@ -8485,6 +11497,11 @@ sha3@^2.1.1: dependencies: buffer "6.0.3" +shebang-command@^1.2.0: + version "1.2.0" + dependencies: + shebang-regex "^1.0.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -8492,6 +11509,9 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" +shebang-regex@^1.0.0: + version "1.0.0" + shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" @@ -8529,6 +11549,14 @@ simple-get@^2.7.0: once "^1.3.1" simple-concat "^1.0.0" +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" + integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg== + +slash@^2.0.0: + version "2.0.0" + slash@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" @@ -8550,6 +11578,30 @@ snake-case@^2.1.0: dependencies: no-case "^2.2.0" +snapdragon-node@^2.0.1: + version "2.1.1" + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + 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" + solady@^0.0.84: version "0.0.84" resolved "https://registry.npmjs.org/solady/-/solady-0.0.84.tgz" @@ -8566,6 +11618,20 @@ solc@*, solc@^0.4.20: semver "^5.3.0" yargs "^4.7.1" +solc@^0.8: + version "0.8.23" + resolved "https://registry.npmjs.org/solc/-/solc-0.8.23.tgz" + integrity sha512-uqe69kFWfJc3cKdxj+Eg9CdW1CP3PLZDPeyJStQVWL8Q9jjjKD0VuRAKBFR8mrWiq5A7gJqERxJFYJsklrVsfA== + dependencies: + command-exists "^1.2.8" + commander "^8.1.0" + follow-redirects "^1.12.1" + js-sha3 "0.8.0" + memorystream "^0.3.1" + n "^9.2.0" + semver "^5.5.0" + tmp "0.0.33" + solc@0.7.3: version "0.7.3" resolved "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz" @@ -8669,7 +11735,28 @@ solidity-coverage@^0.8.4: shelljs "^0.8.3" web3-utils "^1.3.6" -source-map-support@^0.5.13: +solidity-parser-antlr@^0.4.2: + version "0.4.11" + resolved "https://registry.npmjs.org/solidity-parser-antlr/-/solidity-parser-antlr-0.4.11.tgz" + integrity sha512-4jtxasNGmyC0midtjH/lTFPZYvTTUMy6agYcF+HoMnzW8+cqo3piFrINb4ZCzpPW+7tTVFCGa5ubP34zOzeuMg== + +source-map-resolve@^0.5.0: + version "0.5.3" + 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" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + dependencies: + source-map "^0.5.6" + +source-map-support@^0.5.0, source-map-support@^0.5.13: version "0.5.21" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -8677,6 +11764,20 @@ source-map-support@^0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" +source-map-support@0.5.12: + version "0.5.12" + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + +source-map@^0.5.6, source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + source-map@^0.6.0: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" @@ -8720,6 +11821,11 @@ spdx-license-ids@^3.0.0: resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz" integrity sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ== +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + dependencies: + extend-shallow "^3.0.0" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" @@ -8747,6 +11853,15 @@ stacktrace-parser@^0.1.10: dependencies: type-fest "^0.7.1" +static-extend@^0.1.1: + version "0.1.2" + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + statuses@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" @@ -8757,6 +11872,12 @@ stealthy-require@^1.1.1: resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz" integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== +stream-to-pull-stream@^1.7.1: + version "1.7.3" + dependencies: + looper "^3.0.0" + pull-stream "^3.2.3" + streamsearch@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" @@ -8826,16 +11947,7 @@ string-width@^4.1.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.2.3: +string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -8844,7 +11956,7 @@ string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.trim@^1.2.8: +string.prototype.trim@^1.2.8, string.prototype.trim@~1.2.8: version "1.2.8" resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz" integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== @@ -8853,6 +11965,19 @@ string.prototype.trim@^1.2.8: define-properties "^1.2.0" es-abstract "^1.22.1" +string.prototype.trim@~1.2.1: + version "1.2.3" + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +string.prototype.trimend@^1.0.1: + version "1.0.3" + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + string.prototype.trimend@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz" @@ -8862,6 +11987,12 @@ string.prototype.trimend@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" +string.prototype.trimstart@^1.0.1: + version "1.0.3" + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + string.prototype.trimstart@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz" @@ -8911,6 +12042,11 @@ strip-bom@^3.0.0: resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== +strip-comments@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz" + integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== + strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz" @@ -8933,6 +12069,11 @@ strip-json-comments@2.0.1: resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + supports-color@^3.1.0: version "3.2.3" resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz" @@ -9035,6 +12176,28 @@ table@^6.8.0, table@^6.8.1: string-width "^4.2.3" strip-ansi "^6.0.1" +tape@^4.4.0, tape@^4.6.3: + version "4.17.0" + resolved "https://registry.npmjs.org/tape/-/tape-4.17.0.tgz" + integrity sha512-KCuXjYxCZ3ru40dmND+oCLsXyuA8hoseu2SS404Px5ouyS0A99v8X/mdiLqsR5MTAyamMBN7PRwt2Dv3+xGIxw== + dependencies: + "@ljharb/resumer" "~0.0.1" + "@ljharb/through" "~2.3.9" + call-bind "~1.0.2" + deep-equal "~1.1.1" + defined "~1.0.1" + dotignore "~0.1.2" + for-each "~0.3.3" + glob "~7.2.3" + has "~1.0.3" + inherits "~2.0.4" + is-regex "~1.1.4" + minimist "~1.2.8" + mock-property "~1.0.0" + object-inspect "~1.12.3" + resolve "~1.22.6" + string.prototype.trim "~1.2.8" + tar@^4.0.2: version "4.4.19" resolved "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz" @@ -9075,7 +12238,18 @@ then-request@^6.0.0: promise "^8.0.0" qs "^6.4.0" -timed-out@^4.0.1: +through@~2.3.4, through@~2.3.8: + version "2.3.8" + +through2@^2.0.3: + version "2.0.5" + resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +timed-out@^4.0.0, timed-out@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz" integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== @@ -9088,6 +12262,11 @@ title-case@^2.1.0: no-case "^2.2.0" upper-case "^1.0.3" +tmp@^0.0.33: + version "0.0.33" + dependencies: + os-tmpdir "~1.0.2" + tmp@0.0.33: version "0.0.33" resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" @@ -9095,11 +12274,35 @@ tmp@0.0.33: dependencies: os-tmpdir "~1.0.2" +tmp@0.1.0: + version "0.1.0" + dependencies: + rimraf "^2.6.3" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz" + integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== +to-object-path@^0.3.0: + version "0.3.0" + dependencies: + kind-of "^3.0.2" + +to-readable-stream@^1.0.0: + version "1.0.0" + +to-regex-range@^2.1.0: + version "2.1.1" + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" @@ -9107,6 +12310,17 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + toidentifier@1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" @@ -9130,6 +12344,11 @@ treeify@^1.1.0: resolved "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz" integrity sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A== +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" + integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw== + ts-command-line-args@^2.2.0: version "2.5.1" resolved "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz" @@ -9174,7 +12393,7 @@ tsconfig-paths@^3.14.2: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.8.1, tslib@^1.9.3: +tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -9203,6 +12422,9 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" +tweetnacl-util@^0.15.0: + version "0.15.1" + tweetnacl-util@^0.15.1: version "0.15.1" resolved "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz" @@ -9213,6 +12435,9 @@ tweetnacl@^0.14.3: resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== +tweetnacl@^1.0.0: + version "1.0.3" + tweetnacl@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" @@ -9257,7 +12482,7 @@ type-fest@^0.7.1: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== -type-is@~1.6.18: +type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== @@ -9270,6 +12495,9 @@ type@^1.0.1: resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz" integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== +type@^2.0.0: + version "2.1.0" + type@^2.7.2: version "2.7.2" resolved "https://registry.npmjs.org/type/-/type-2.7.2.tgz" @@ -9347,6 +12575,17 @@ typescript@*, typescript@^4.9.5, typescript@>=2.7, "typescript@>=2.8.0 || >= 3.2 resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +typewise-core@^1.2, typewise-core@^1.2.0: + version "1.2.0" + +typewise@^1.0.3: + version "1.0.3" + dependencies: + typewise-core "^1.2.0" + +typewiselite@~1.0.0: + version "1.0.0" + typical@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz" @@ -9357,6 +12596,11 @@ typical@^5.2.0: resolved "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz" integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== +u2f-api@0.2.7: + version "0.2.7" + resolved "https://registry.npmjs.org/u2f-api/-/u2f-api-0.2.7.tgz" + integrity sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg== + uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" @@ -9377,6 +12621,9 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +underscore@1.9.1: + version "1.9.1" + undici@^5.14.0: version "5.25.2" resolved "https://registry.npmjs.org/undici/-/undici-5.25.2.tgz" @@ -9384,6 +12631,14 @@ undici@^5.14.0: dependencies: busboy "^1.6.0" +union-value@^1.0.0: + version "1.0.1" + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + universalify@^0.1.0: version "0.1.2" resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" @@ -9394,11 +12649,22 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +unorm@^1.3.3: + version "1.6.0" + resolved "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz" + integrity sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA== + unpipe@~1.0.0, unpipe@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== +unset-value@^1.0.0: + version "1.0.0" + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + update-browserslist-db@^1.0.13: version "1.0.13" resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz" @@ -9426,11 +12692,27 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +urix@^0.1.0: + version "0.1.0" + +url-parse-lax@^1.0.0: + version "1.0.0" + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + dependencies: + prepend-http "^2.0.0" + url-set-query@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz" integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== +url-to-options@^1.0.1: + version "1.0.1" + url@^0.11.0: version "0.11.3" resolved "https://registry.npmjs.org/url/-/url-0.11.3.tgz" @@ -9439,6 +12721,9 @@ url@^0.11.0: punycode "^1.4.1" qs "^6.11.2" +use@^3.1.0: + version "3.1.1" + utf-8-validate@^5.0.2: version "5.0.10" resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz" @@ -9463,6 +12748,15 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +util.promisify@^1.0.0: + version "1.1.1" + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + for-each "^0.3.3" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.1" + util@^0.12.5: version "0.12.5" resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz" @@ -9499,11 +12793,19 @@ uuid@2.0.1: resolved "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz" integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg== +uuid@3.3.2: + version "3.3.2" + v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== +valid-url@^1.0.9: + version "1.0.9" + resolved "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz" + integrity sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA== + validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" @@ -9549,6 +12851,14 @@ web3-bzz@1.10.3: got "12.1.0" swarm-js "^0.1.40" +web3-bzz@1.2.11: + version "1.2.11" + dependencies: + "@types/node" "^12.12.6" + got "9.6.0" + swarm-js "^0.1.40" + underscore "1.9.1" + web3-core-helpers@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz" @@ -9565,6 +12875,13 @@ web3-core-helpers@1.10.3: web3-eth-iban "1.10.3" web3-utils "1.10.3" +web3-core-helpers@1.2.11: + version "1.2.11" + dependencies: + underscore "1.9.1" + web3-eth-iban "1.2.11" + web3-utils "1.2.11" + web3-core-method@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz" @@ -9587,6 +12904,16 @@ web3-core-method@1.10.3: web3-core-subscriptions "1.10.3" web3-utils "1.10.3" +web3-core-method@1.2.11: + version "1.2.11" + dependencies: + "@ethersproject/transactions" "^5.0.0-beta.135" + underscore "1.9.1" + web3-core-helpers "1.2.11" + web3-core-promievent "1.2.11" + web3-core-subscriptions "1.2.11" + web3-utils "1.2.11" + web3-core-promievent@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.0.tgz" @@ -9601,6 +12928,11 @@ web3-core-promievent@1.10.3: dependencies: eventemitter3 "4.0.4" +web3-core-promievent@1.2.11: + version "1.2.11" + dependencies: + eventemitter3 "4.0.4" + web3-core-requestmanager@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz" @@ -9623,6 +12955,15 @@ web3-core-requestmanager@1.10.3: web3-providers-ipc "1.10.3" web3-providers-ws "1.10.3" +web3-core-requestmanager@1.2.11: + version "1.2.11" + dependencies: + underscore "1.9.1" + web3-core-helpers "1.2.11" + web3-providers-http "1.2.11" + web3-providers-ipc "1.2.11" + web3-providers-ws "1.2.11" + web3-core-subscriptions@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz" @@ -9639,6 +12980,13 @@ web3-core-subscriptions@1.10.3: eventemitter3 "4.0.4" web3-core-helpers "1.10.3" +web3-core-subscriptions@1.2.11: + version "1.2.11" + dependencies: + eventemitter3 "4.0.4" + underscore "1.9.1" + web3-core-helpers "1.2.11" + web3-core@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz" @@ -9665,7 +13013,18 @@ web3-core@1.10.3: web3-core-requestmanager "1.10.3" web3-utils "1.10.3" -web3-eth-abi@1.10.0: +web3-core@1.2.11: + version "1.2.11" + dependencies: + "@types/bn.js" "^4.11.5" + "@types/node" "^12.12.6" + bignumber.js "^9.0.0" + web3-core-helpers "1.2.11" + web3-core-method "1.2.11" + web3-core-requestmanager "1.2.11" + web3-utils "1.2.11" + +web3-eth-abi@^1.0.0-beta.24, web3-eth-abi@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz" integrity sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg== @@ -9681,6 +13040,13 @@ web3-eth-abi@1.10.3: "@ethersproject/abi" "^5.6.3" web3-utils "1.10.3" +web3-eth-abi@1.2.11: + version "1.2.11" + dependencies: + "@ethersproject/abi" "5.0.0-beta.153" + underscore "1.9.1" + web3-utils "1.2.11" + web3-eth-accounts@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz" @@ -9713,6 +13079,21 @@ web3-eth-accounts@1.10.3: web3-core-method "1.10.3" web3-utils "1.10.3" +web3-eth-accounts@1.2.11: + version "1.2.11" + dependencies: + crypto-browserify "3.12.0" + eth-lib "0.2.8" + ethereumjs-common "^1.3.2" + ethereumjs-tx "^2.1.1" + scrypt-js "^3.0.1" + underscore "1.9.1" + uuid "3.3.2" + web3-core "1.2.11" + web3-core-helpers "1.2.11" + web3-core-method "1.2.11" + web3-utils "1.2.11" + web3-eth-contract@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz" @@ -9741,6 +13122,19 @@ web3-eth-contract@1.10.3: web3-eth-abi "1.10.3" web3-utils "1.10.3" +web3-eth-contract@1.2.11: + version "1.2.11" + dependencies: + "@types/bn.js" "^4.11.5" + underscore "1.9.1" + web3-core "1.2.11" + web3-core-helpers "1.2.11" + web3-core-method "1.2.11" + web3-core-promievent "1.2.11" + web3-core-subscriptions "1.2.11" + web3-eth-abi "1.2.11" + web3-utils "1.2.11" + web3-eth-ens@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz" @@ -9769,6 +13163,19 @@ web3-eth-ens@1.10.3: web3-eth-contract "1.10.3" web3-utils "1.10.3" +web3-eth-ens@1.2.11: + version "1.2.11" + dependencies: + content-hash "^2.5.2" + eth-ens-namehash "2.0.8" + underscore "1.9.1" + web3-core "1.2.11" + web3-core-helpers "1.2.11" + web3-core-promievent "1.2.11" + web3-eth-abi "1.2.11" + web3-eth-contract "1.2.11" + web3-utils "1.2.11" + web3-eth-iban@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.0.tgz" @@ -9785,6 +13192,12 @@ web3-eth-iban@1.10.3: bn.js "^5.2.1" web3-utils "1.10.3" +web3-eth-iban@1.2.11: + version "1.2.11" + dependencies: + bn.js "^4.11.9" + web3-utils "1.2.11" + web3-eth-personal@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz" @@ -9809,6 +13222,16 @@ web3-eth-personal@1.10.3: web3-net "1.10.3" web3-utils "1.10.3" +web3-eth-personal@1.2.11: + version "1.2.11" + dependencies: + "@types/node" "^12.12.6" + web3-core "1.2.11" + web3-core-helpers "1.2.11" + web3-core-method "1.2.11" + web3-net "1.2.11" + web3-utils "1.2.11" + web3-eth@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz" @@ -9845,6 +13268,23 @@ web3-eth@1.10.3: web3-net "1.10.3" web3-utils "1.10.3" +web3-eth@1.2.11: + version "1.2.11" + dependencies: + underscore "1.9.1" + web3-core "1.2.11" + web3-core-helpers "1.2.11" + web3-core-method "1.2.11" + web3-core-subscriptions "1.2.11" + web3-eth-abi "1.2.11" + web3-eth-accounts "1.2.11" + web3-eth-contract "1.2.11" + web3-eth-ens "1.2.11" + web3-eth-iban "1.2.11" + web3-eth-personal "1.2.11" + web3-net "1.2.11" + web3-utils "1.2.11" + web3-net@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz" @@ -9863,6 +13303,64 @@ web3-net@1.10.3: web3-core-method "1.10.3" web3-utils "1.10.3" +web3-net@1.2.11: + version "1.2.11" + dependencies: + web3-core "1.2.11" + web3-core-method "1.2.11" + web3-utils "1.2.11" + +web3-provider-engine@14.0.6: + version "14.0.6" + resolved "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-14.0.6.tgz" + integrity sha512-tr5cGSyxfSC/JqiUpBlJtfZpwQf1yAA8L/zy1C6fDFm0ntR974pobJ4v4676atpZne4Ze5VFy3kPPahHe9gQiQ== + dependencies: + async "^2.5.0" + backoff "^2.5.0" + clone "^2.0.0" + cross-fetch "^2.1.0" + eth-block-tracker "^3.0.0" + eth-json-rpc-infura "^3.1.0" + eth-sig-util "^1.4.2" + ethereumjs-block "^1.2.2" + ethereumjs-tx "^1.2.0" + ethereumjs-util "^5.1.5" + ethereumjs-vm "^2.3.4" + json-rpc-error "^2.0.0" + json-stable-stringify "^1.0.1" + promise-to-callback "^1.0.0" + readable-stream "^2.2.9" + request "^2.67.0" + semaphore "^1.0.3" + tape "^4.4.0" + ws "^5.1.1" + xhr "^2.2.0" + xtend "^4.0.1" + +web3-provider-engine@14.2.1: + version "14.2.1" + dependencies: + async "^2.5.0" + backoff "^2.5.0" + clone "^2.0.0" + cross-fetch "^2.1.0" + eth-block-tracker "^3.0.0" + eth-json-rpc-infura "^3.1.0" + eth-sig-util "3.0.0" + ethereumjs-block "^1.2.2" + ethereumjs-tx "^1.2.0" + ethereumjs-util "^5.1.5" + ethereumjs-vm "^2.3.4" + json-rpc-error "^2.0.0" + json-stable-stringify "^1.0.1" + promise-to-callback "^1.0.0" + readable-stream "^2.2.9" + request "^2.85.0" + semaphore "^1.0.3" + ws "^5.1.1" + xhr "^2.2.0" + xtend "^4.0.1" + web3-provider-engine@16.0.3: version "16.0.3" resolved "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.3.tgz" @@ -9891,6 +13389,33 @@ web3-provider-engine@16.0.3: xhr "^2.2.0" xtend "^4.0.1" +web3-provider-engine@16.0.4: + version "16.0.4" + resolved "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.4.tgz" + integrity sha512-f5WxJ9+LTF+4aJo4tCOXtQ6SDytBtLkhvV+qh/9gImHAuG9sMr6utY0mn/pro1Rx7O3hbztBxvQKjGMdOo8muw== + dependencies: + "@ethereumjs/tx" "^3.3.0" + async "^2.5.0" + backoff "^2.5.0" + clone "^2.0.0" + eth-block-tracker "^4.4.2" + eth-json-rpc-filters "^4.2.1" + eth-json-rpc-infura "^5.1.0" + eth-json-rpc-middleware "^6.0.0" + eth-rpc-errors "^3.0.0" + eth-sig-util "^1.4.2" + ethereumjs-block "^1.2.2" + ethereumjs-util "^5.1.5" + ethereumjs-vm "^2.3.4" + json-stable-stringify "^1.0.1" + promise-to-callback "^1.0.0" + readable-stream "^2.2.9" + request "^2.85.0" + semaphore "^1.0.3" + ws "^5.1.1" + xhr "^2.2.0" + xtend "^4.0.1" + web3-providers-http@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz" @@ -9911,6 +13436,12 @@ web3-providers-http@1.10.3: es6-promise "^4.2.8" web3-core-helpers "1.10.3" +web3-providers-http@1.2.11: + version "1.2.11" + dependencies: + web3-core-helpers "1.2.11" + xhr2-cookies "1.1.0" + web3-providers-ipc@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz" @@ -9927,6 +13458,13 @@ web3-providers-ipc@1.10.3: oboe "2.1.5" web3-core-helpers "1.10.3" +web3-providers-ipc@1.2.11: + version "1.2.11" + dependencies: + oboe "2.1.4" + underscore "1.9.1" + web3-core-helpers "1.2.11" + web3-providers-ws@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz" @@ -9945,6 +13483,14 @@ web3-providers-ws@1.10.3: web3-core-helpers "1.10.3" websocket "^1.0.32" +web3-providers-ws@1.2.11: + version "1.2.11" + dependencies: + eventemitter3 "4.0.4" + underscore "1.9.1" + web3-core-helpers "1.2.11" + websocket "^1.0.31" + web3-shh@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz" @@ -9965,6 +13511,14 @@ web3-shh@1.10.3: web3-core-subscriptions "1.10.3" web3-net "1.10.3" +web3-shh@1.2.11: + version "1.2.11" + dependencies: + web3-core "1.2.11" + web3-core-method "1.2.11" + web3-core-subscriptions "1.2.11" + web3-net "1.2.11" + web3-utils@^1.0.0-beta.31, web3-utils@^1.2.5, web3-utils@^1.3.4, web3-utils@^1.3.6, web3-utils@1.10.3: version "1.10.3" resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.3.tgz" @@ -9992,6 +13546,18 @@ web3-utils@1.10.0: randombytes "^2.1.0" utf8 "3.0.0" +web3-utils@1.2.11: + version "1.2.11" + dependencies: + bn.js "^4.11.9" + eth-lib "0.2.8" + ethereum-bloom-filters "^1.0.6" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + underscore "1.9.1" + utf8 "3.0.0" + web3@^1.0.0-beta.36, web3@^1.2.5: version "1.10.3" resolved "https://registry.npmjs.org/web3/-/web3-1.10.3.tgz" @@ -10018,11 +13584,32 @@ web3@1.10.0: web3-shh "1.10.0" web3-utils "1.10.0" +web3@1.2.11: + version "1.2.11" + dependencies: + web3-bzz "1.2.11" + web3-core "1.2.11" + web3-eth "1.2.11" + web3-eth-personal "1.2.11" + web3-net "1.2.11" + web3-shh "1.2.11" + web3-utils "1.2.11" + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== +websocket@^1.0.31, websocket@1.0.32: + version "1.0.32" + dependencies: + bufferutil "^4.0.1" + debug "^2.2.0" + es5-ext "^0.10.50" + typedarray-to-buffer "^3.1.5" + utf-8-validate "^5.0.2" + yaeti "^0.0.6" + websocket@^1.0.32: version "1.0.34" resolved "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz" @@ -10035,11 +13622,19 @@ websocket@^1.0.32: utf-8-validate "^5.0.2" yaeti "^0.0.6" -whatwg-fetch@^2.0.4: +whatwg-fetch@^2.0.4, whatwg-fetch@>=0.10.0: version "2.0.4" resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz" integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== +whatwg-fetch@^3.4.1: + version "3.6.20" + resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz" + integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== + +whatwg-fetch@2.0.4: + version "2.0.4" + whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" @@ -10087,6 +13682,11 @@ which@^1.1.1: dependencies: isexe "^2.0.0" +which@^1.2.9: + version "1.3.1" + dependencies: + isexe "^2.0.0" + which@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" @@ -10225,12 +13825,17 @@ xhr@^2.0.4, xhr@^2.2.0, xhr@^2.3.3: parse-headers "^2.0.0" xtend "^4.0.0" +xhr2-cookies@1.1.0: + version "1.1.0" + dependencies: + cookiejar "^2.1.1" + xmlhttprequest@1.8.0: version "1.8.0" resolved "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz" integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== -xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0: +xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -10262,7 +13867,7 @@ yaeti@^0.0.6: resolved "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz" integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3, yallist@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== @@ -10293,6 +13898,11 @@ yargs-parser@^20.2.2, yargs-parser@20.2.4: resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs-unparser@1.6.0: version "1.6.0" resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz" @@ -10328,6 +13938,19 @@ yargs@^13.3.0, yargs@13.3.2: y18n "^4.0.0" yargs-parser "^13.1.2" +yargs@^17.5.1: + version "17.7.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yargs@^4.7.1: version "4.8.1" resolved "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz" From d3db1ae05f13720cffe05e5c0a8d3324b13e5524 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 15 Jan 2024 16:19:37 +1000 Subject: [PATCH 050/100] Added more tests --- contracts/random/RandomSeedProvider.sol | 13 +++- contracts/random/RandomValues.sol | 39 ++++++++---- test/random/README.md | 41 +++++++++---- test/random/RandomSeedProvider.t.sol | 80 ++++++++++++++++++++++++- test/random/RandomValues.t.sol | 80 ++++++++++++++++++++++++- 5 files changed, 228 insertions(+), 25 deletions(-) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 2541a37f..9970f2c8 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -83,7 +83,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { /** * @notice Change the offchain random source. - * @dev Must have RANDOM_ROLE. + * @dev Only RANDOM_ADMIN_ROLE can do this. * @param _offchainRandomSource Address of contract that is an offchain random source. */ function setOffchainRandomSource(address _offchainRandomSource) external onlyRole(RANDOM_ADMIN_ROLE) { @@ -94,16 +94,27 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { /** * @notice Call this when the blockchain supports the PREVRANDAO opcode. + * @dev Only RANDOM_ADMIN_ROLE can do this. */ function setRanDaoAvailable() external onlyRole(RANDOM_ADMIN_ROLE) { ranDaoAvailable = true; emit RanDaoEnabled(); } + /** + * @notice Add a consumer that can use off-chain supplied random. + * @dev Only RANDOM_ADMIN_ROLE can do this. + * @param _consumer Game contract that inherits from RandomValues.sol that is authorised to use off-chain random. + */ function addOffchainRandomConsumer(address _consumer) external onlyRole(RANDOM_ADMIN_ROLE) { approvedForOffchainRandom[_consumer] = true; } + /** + * @notice Remove a consumer that can use off-chain supplied random. + * @dev Only RANDOM_ADMIN_ROLE can do this. + * @param _consumer Game contract that inherits from RandomValues.sol that is no longer authorised to use off-chain random. + */ function removeOffchainRandomConsumer(address _consumer) external onlyRole(RANDOM_ADMIN_ROLE) { approvedForOffchainRandom[_consumer] = false; } diff --git a/contracts/random/RandomValues.sol b/contracts/random/RandomValues.sol index 27000794..aaedcbf5 100644 --- a/contracts/random/RandomValues.sol +++ b/contracts/random/RandomValues.sol @@ -59,16 +59,11 @@ abstract contract RandomValues { * @return _randomValue The random number that the game can use. */ function _fetchRandom(uint256 _randomRequestId) internal returns(bytes32 _randomValue) { - // Request the random seed. If not enough time has elapsed yet, this call will revert. - bytes32 randomSeed = randomSeedProvider.getRandomSeed( - randCreationRequests[_randomRequestId], randCreationRequestsSource[_randomRequestId]); - // Generate the random value by combining: - // address(this): personalises the random seed to this game. - // msg.sender: personalises the random seed to the game player. - // _randomRequestId: Ensures that even if the game player has requested multiple random values, - // they will get a different value for each request. - // randomSeed: Value returned by the RandomManager. - _randomValue = keccak256(abi.encodePacked(address(this), msg.sender, _randomRequestId, randomSeed)); + // Don't return the personalised seed directly. Otherwise there is a risk that + // the seed will be revealed, which would then compromise the security of calls + // to fetchRandomValues. + bytes32 seed = _fetchPersonalisedSeed(_randomRequestId); + _randomValue = keccak256(abi.encodePacked(seed, uint256(0))); } /** @@ -81,11 +76,11 @@ abstract contract RandomValues { * @return _randomValues An array of random values derived from a single random value. */ function _fetchRandomValues(uint256 _randomRequestId, uint256 _size) internal returns(bytes32[] memory _randomValues) { - bytes32 randomValue = _fetchRandom(_randomRequestId); + bytes32 seed = _fetchPersonalisedSeed(_randomRequestId); _randomValues = new bytes32[](_size); for (uint256 i = 0; i < _size; i++) { - _randomValues[i] = keccak256(abi.encodePacked(randomValue, i)); + _randomValues[i] = keccak256(abi.encodePacked(seed, i + 1)); } } @@ -100,6 +95,26 @@ abstract contract RandomValues { randCreationRequests[_randomRequestId], randCreationRequestsSource[_randomRequestId]); } + /** + * @notice Fetch a seed from which random values can be generated, based on _requestRandomValueCreation. + * @dev The value is customised to this game, the game player, and the request by the game player. + * This level of personalisation ensures that no two players end up with the same random value + * and no game player will have the same random value twice. + * @param _randomRequestId The value returned by _requestRandomValueCreation. + * @return _seed The seed value to base random numbers on. + */ + function _fetchPersonalisedSeed(uint256 _randomRequestId) private returns(bytes32 _seed) { + // Request the random seed. If not enough time has elapsed yet, this call will revert. + bytes32 randomSeed = randomSeedProvider.getRandomSeed( + randCreationRequests[_randomRequestId], randCreationRequestsSource[_randomRequestId]); + // Generate the personlised seed by combining: + // address(this): personalises the random seed to this game. + // msg.sender: personalises the random seed to the game player. + // _randomRequestId: Ensures that even if the game player has requested multiple random values, + // they will get a different value for each request. + // randomSeed: Value returned by the RandomManager. + _seed = keccak256(abi.encodePacked(address(this), msg.sender, _randomRequestId, randomSeed)); + } // slither-disable-next-line unused-state,naming-convention uint256[100] private __gapRandomValues; diff --git a/test/random/README.md b/test/random/README.md index cfc9673e..92c7b142 100644 --- a/test/random/README.md +++ b/test/random/README.md @@ -12,7 +12,7 @@ Initialize testing: | testReinit | Calling initialise a second time fails. | No | Yes | | testGetRandomSeedInitTraditional | getRandomSeed(), initial value, method TRADITIONAL | Yes | Yes | | testGetRandomSeedInitRandao | getRandomSeed(), initial value, method RANDAO | Yes | Yes | -| testGetRandomSeedNotGenTraditional | getRandomSeed(), when value not generated | No | Yes | +| testGetRandomSeedNotGenTraditional | getRandomSeed(), when value not generated | No | Yes | | testGetRandomSeedNotGenRandao | getRandomSeed(), when value not generated | No | Yes | | testGetRandomSeedNoOffchainSource | getRandomSeed(), when no offchain source configured | No | No | @@ -20,14 +20,16 @@ Control functions tests: | Test name |Description | Happy Case | Implemented | |---------------------------------| --------------------------------------------------|------------|-------------| -| testRoleAdmin | Check DEFAULT_ADMIN_ROLE can assign new roles. | Yes | No | -| testRoleAdminBadAuth | Check auth for create new admins. | No | No | -| testSetOffchainRandomSource | setOffchainRandomSource(). | Yes | No | -| testSetOffchainRandomSourceBadAuth | setOffchainRandomSource() without authorization. | No | No | -| testEnableRanDao | enableRanDao(). | Yes | No | -| testEnableRanDaoBadAuth | enableRanDao() without authorization. | No | No | -| testEnableTraditional | enableTraditional(). | Yes | No | -| testEnableTraditionalBadAuth | enableTraditional() without authorization. | No | No | +| testRoleAdmin | Check DEFAULT_ADMIN_ROLE can assign new roles. | Yes | Yes | +| testRoleAdminBadAuth | Check auth for create new admins. | No | Yes | +| testSetOffchainRandomSource | setOffchainRandomSource(). | Yes | Yes | +| testSetOffchainRandomSourceBadAuth | setOffchainRandomSource() without authorization. | No | Yes | +| testSetRanDaoAvailable | setRanDaoAvailable(). | Yes | Yes | +| testSetRanDaoAvailableBadAuth | setRanDaoAvailable() without authorization. | No | Yes | +| testAddOffchainRandomConsumer | addOffchainRandomConsumer(). | Yes | Yes | +| testAddOffchainRandomConsumerBadAuth | addOffchainRandomConsumer() without authorization.| No | Yes | +| testRemoveOffchainRandomConsumer| removeOffchainRandomConsumer(). | Yes | Yes | +| testRemoveOffchainRandomConsumerBadAuth | removeOffchainRandomConsumer() without authorization.| No | Yes | Operational functions tests: @@ -85,4 +87,23 @@ Operational functions tests: ## RandomValues.sol -TODO +Initialize testing: + +| Test name |Description | Happy Case | Implemented | +|---------------------------------| --------------------------------------------------|------------|-------------| +| testInit | Check that contructor worked. | Yes | Yes | + + +Operational tests: + +| Test name |Description | Happy Case | Implemented | +|---------------------------------| --------------------------------------------------|------------|-------------| +| testFirstValue | Return a single value | Yes | Yes | +| testSecondValue | Return two values | Yes | Yes | +| testMultiFetch | Fetch a generated number multiple times. | Yes | Yes | +| testMultiInterleaved | Interleave multiple requests | Yes | Yes | +| testFirstValues | Return a single set of values | Yes | Yes | +| testSecondValues | Return two sets of values | Yes | Yes | +| testMultiFetchValues | Fetch a generated set of numbers multiple times. | Yes | Yes | +| testMultipleGames | Multiple games in parallel. | Yes | Yes | + diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index fd55190d..195a3195 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -87,10 +87,88 @@ contract UninitializedRandomSeedProviderTest is Test { } } + +contract ControlRandomSeedProviderTest is UninitializedRandomSeedProviderTest { + bytes32 public constant RANDOM_ADMIN_ROLE = keccak256("RANDOM_ADMIN_ROLE"); + address public constant NEW_SOURCE = address(10001); + address public constant CONSUMER = address(10001); + + function testRoleAdmin() public { + bytes32 role = RANDOM_ADMIN_ROLE; + address newAdmin = makeAddr("newAdmin"); + + vm.prank(roleAdmin); + randomSeedProvider.grantRole(role, newAdmin); + assertTrue(randomSeedProvider.hasRole(role, newAdmin)); + } + + function testRoleAdminBadAuth() public { + bytes32 role = RANDOM_ADMIN_ROLE; + address newAdmin = makeAddr("newAdmin"); + vm.expectRevert(); + randomSeedProvider.grantRole(role, newAdmin); + } + + function testSetOffchainRandomSource() public { + vm.prank(randomAdmin); + randomSeedProvider.setOffchainRandomSource(NEW_SOURCE); + assertEq(randomSeedProvider.randomSource(), NEW_SOURCE); + } + + function testSetOffchainRandomSourceBadAuth() public { + vm.expectRevert(); + randomSeedProvider.setOffchainRandomSource(NEW_SOURCE); + } + + function testSetRanDaoAvailable() public { + assertEq(randomSeedProvider.ranDaoAvailable(), false); + vm.prank(randomAdmin); + randomSeedProvider.setRanDaoAvailable(); + assertEq(randomSeedProvider.ranDaoAvailable(), true); + } + + function testSetRanDaoAvailableBadAuth() public { + assertEq(randomSeedProvider.ranDaoAvailable(), false); + vm.expectRevert(); + randomSeedProvider.setRanDaoAvailable(); + assertEq(randomSeedProvider.ranDaoAvailable(), false); + } + + function testAddOffchainRandomConsumer() public { + assertEq(randomSeedProvider.approvedForOffchainRandom(CONSUMER), false); + vm.prank(randomAdmin); + randomSeedProvider.addOffchainRandomConsumer(CONSUMER); + assertEq(randomSeedProvider.approvedForOffchainRandom(CONSUMER), true); + } + + function testAddOffchainRandomConsumerBadAuth() public { + vm.expectRevert(); + randomSeedProvider.addOffchainRandomConsumer(CONSUMER); + assertEq(randomSeedProvider.approvedForOffchainRandom(CONSUMER), false); + } + + function testRemoveOffchainRandomConsumer() public { + vm.prank(randomAdmin); + randomSeedProvider.addOffchainRandomConsumer(CONSUMER); + assertEq(randomSeedProvider.approvedForOffchainRandom(CONSUMER), true); + vm.prank(randomAdmin); + randomSeedProvider.removeOffchainRandomConsumer(CONSUMER); + assertEq(randomSeedProvider.approvedForOffchainRandom(CONSUMER), false); + } + + function testRemoveOffchainRandomConsumerBadAuth() public { + vm.prank(randomAdmin); + randomSeedProvider.addOffchainRandomConsumer(CONSUMER); + vm.expectRevert(); + randomSeedProvider.removeOffchainRandomConsumer(CONSUMER); + assertEq(randomSeedProvider.approvedForOffchainRandom(CONSUMER), true); + } +} + + contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTest { MockOffchainSource public offchainSource = new MockOffchainSource(); - function testTradNextBlock () public { (uint256 fulfillmentIndex, address source) = randomSeedProvider.requestRandomSeed(); assertEq(source, ONCHAIN, "source"); diff --git a/test/random/RandomValues.t.sol b/test/random/RandomValues.t.sol index 0369cbcc..11e71d07 100644 --- a/test/random/RandomValues.t.sol +++ b/test/random/RandomValues.t.sol @@ -50,6 +50,8 @@ contract UninitializedRandomValuesTest is Test { } contract SingleGameRandomValuesTest is UninitializedRandomValuesTest { + uint256 public constant NUM_VALUES = 3; + function testFirstValue() public returns (bytes32) { uint256 randomRequestId = game1.requestRandomValueCreation(); assertFalse(game1.isRandomValueReady(randomRequestId), "Ready in same block!"); @@ -68,7 +70,20 @@ contract SingleGameRandomValuesTest is UninitializedRandomValuesTest { assertNotEq(rand1, rand2, "Random Values equal"); } - function testMultiRequestScenario() public { + function testMultiFetch() public { + uint256 randomRequestId1 = game1.requestRandomValueCreation(); + vm.roll(block.number + 1); + bytes32 rand1a = game1.fetchRandom(randomRequestId1); + vm.roll(block.number + 1); + bytes32 rand1b = game1.fetchRandom(randomRequestId1); + vm.roll(block.number + 1); + bytes32 rand1c = game1.fetchRandom(randomRequestId1); + + assertEq(rand1a, rand1b, "rand1a, rand1b: Random Values not equal"); + assertEq(rand1a, rand1c, "rand1a, rand1c: Random Values not equal"); + } + + function testMultiInterleaved() public { uint256 randomRequestId1 = game1.requestRandomValueCreation(); uint256 randomRequestId2 = game1.requestRandomValueCreation(); uint256 randomRequestId3 = game1.requestRandomValueCreation(); @@ -91,4 +106,67 @@ contract SingleGameRandomValuesTest is UninitializedRandomValuesTest { assertEq(rand1a, rand1b, "rand1a, rand1b: Random Values not equal"); assertEq(rand1a, rand1c, "rand1a, rand1c: Random Values not equal"); } + + + function testFirstValues() public { + uint256 randomRequestId = game1.requestRandomValueCreation(); + assertFalse(game1.isRandomValueReady(randomRequestId), "Ready in same block!"); + vm.roll(block.number + 1); + assertTrue(game1.isRandomValueReady(randomRequestId), "Should be ready by next block!"); + + bytes32 randomValue = game1.fetchRandom(randomRequestId); + bytes32[] memory randomValues = game1.fetchRandomValues(randomRequestId, NUM_VALUES); + assertEq(randomValues.length, NUM_VALUES, "wrong length"); + assertNotEq(randomValue, randomValues[0], "randomValue, values[0]: Random Values equal"); + assertNotEq(randomValue, randomValues[1], "randomValue, values[0]: Random Values equal"); + assertNotEq(randomValue, randomValues[2], "randomValue, values[0]: Random Values equal"); + } + + function testSecondValues() public { + uint256 randomRequestId1 = game1.requestRandomValueCreation(); + uint256 randomRequestId2 = game1.requestRandomValueCreation(); + vm.roll(block.number + 1); + + bytes32[] memory randomValues1 = game1.fetchRandomValues(randomRequestId1, NUM_VALUES); + bytes32[] memory randomValues2 = game1.fetchRandomValues(randomRequestId2, NUM_VALUES); + + assertNotEq(randomValues1[0], randomValues2[0], "values1[0], values2[0]: Random Values equal"); + assertNotEq(randomValues1[1], randomValues2[1], "values1[1], values2[1]: Random Values equal"); + assertNotEq(randomValues1[2], randomValues2[2], "values1[2], values2[2]: Random Values equal"); + } + + function testMultiFetchValues() public { + uint256 randomRequestId1 = game1.requestRandomValueCreation(); + vm.roll(block.number + 1); + bytes32[] memory randomValues1 = game1.fetchRandomValues(randomRequestId1, NUM_VALUES); + vm.roll(block.number + 1); + bytes32[] memory randomValues2 = game1.fetchRandomValues(randomRequestId1, NUM_VALUES); + vm.roll(block.number + 1); + bytes32[] memory randomValues3 = game1.fetchRandomValues(randomRequestId1, NUM_VALUES); + + assertEq(randomValues1[0], randomValues2[0], "values1[0], values2[0]: Random Values not equal"); + assertEq(randomValues1[1], randomValues2[1], "values1[1], values2[1]: Random Values not equal"); + assertEq(randomValues1[2], randomValues2[2], "values1[2], values2[2]: Random Values not equal"); + assertEq(randomValues1[0], randomValues3[0], "values1[0], values3[0]: Random Values not equal"); + assertEq(randomValues1[1], randomValues3[1], "values1[1], values3[1]: Random Values not equal"); + assertEq(randomValues1[2], randomValues3[2], "values1[2], values3[2]: Random Values not equal"); + } + + function testMultipleGames() public { + MockGame game2 = new MockGame(address(randomSeedProvider)); + + uint256 randomRequestId1 = game1.requestRandomValueCreation(); + uint256 randomRequestId2 = game2.requestRandomValueCreation(); + assertFalse(game1.isRandomValueReady(randomRequestId1), "Ready in same block!"); + assertFalse(game2.isRandomValueReady(randomRequestId2), "Ready in same block!"); + + vm.roll(block.number + 1); + assertTrue(game1.isRandomValueReady(randomRequestId1), "Should be ready by next block!"); + assertTrue(game2.isRandomValueReady(randomRequestId2), "Should be ready by next block!"); + + bytes32 randomValue1 = game1.fetchRandom(randomRequestId1); + bytes32 randomValue2 = game2.fetchRandom(randomRequestId2); + assertNotEq(randomValue1, randomValue2, "Random Values equal"); + } + } From f23140463c6c4595f83eacdcb9ef1073372aa0fa Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 15 Jan 2024 17:36:38 +1000 Subject: [PATCH 051/100] Improve test coverage --- contracts/random/RandomSeedProvider.sol | 13 +- test/random/README.md | 23 ++- test/random/RandomSeedProvider.t.sol | 204 +++++++++++++++++++++++- 3 files changed, 218 insertions(+), 22 deletions(-) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 9970f2c8..f70696c4 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -42,8 +42,13 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { // The block number in which the last seed value was generated. uint256 public lastBlockRandomGenerated; - uint256 public prevOffchainRandomRequest; - uint256 public lastBlockOffchainRequest; + // The block when the last offchain random request occurred. + // This is used to limit off-chain random requests to once per block. + uint256 private lastBlockOffchainRequest; + + // The request id returned in the previous off-chain random request. + // This is used to limit off-chain random requests to once per block. + uint256 private prevOffchainRandomRequest; // @notice The source of new random numbers. This could be the special values for // @notice TRADITIONAL or RANDAO or the address of a Offchain Random Source contract. @@ -51,6 +56,8 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { // @dev to be switched without stopping in-flight random values from being retrieved. address public randomSource; + // Indicates that this blockchain supports the PREVRANDAO opcode and that + // PREVRANDAO should be used rather than block.hash for on-chain random values. bool public ranDaoAvailable; // Indicates an address is allow listed for the offchain random provider. @@ -173,7 +180,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { else { // If random source is not the address of a valid contract this will revert // with no revert information returned. - return IOffchainRandomSource(randomSource).getOffchainRandom(_randomFulfillmentIndex); + return IOffchainRandomSource(_randomSource).getOffchainRandom(_randomFulfillmentIndex); } } diff --git a/test/random/README.md b/test/random/README.md index 92c7b142..ff06b3d5 100644 --- a/test/random/README.md +++ b/test/random/README.md @@ -14,7 +14,7 @@ Initialize testing: | testGetRandomSeedInitRandao | getRandomSeed(), initial value, method RANDAO | Yes | Yes | | testGetRandomSeedNotGenTraditional | getRandomSeed(), when value not generated | No | Yes | | testGetRandomSeedNotGenRandao | getRandomSeed(), when value not generated | No | Yes | -| testGetRandomSeedNoOffchainSource | getRandomSeed(), when no offchain source configured | No | No | +| testGetRandomSeedNoOffchainSource | getRandomSeed(), when no offchain source configured | No | Yes | Control functions tests: @@ -36,26 +36,23 @@ Operational functions tests: | Test name |Description | Happy Case | Implemented | |---------------------------------| --------------------------------------------------|------------|-------------| | testTradNextBlock | Check basic request flow | Yes | Yes | -| testRanDaoNextBlock | Check basic request flow | Yes | No | -| testOffchainNextBlock | Check basic request flow | Yes | No | +| testRanDaoNextBlock | Check basic request flow | Yes | Yes | +| testOffchainNextBlock | Check basic request flow | Yes | Yes | | testTradTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | Yes | -| testRanDaoTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | No | -| testOffchainTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | No | +| testRanDaoTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | Yes | +| testOffchainTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | Yes | | testTradDelayedFulfillment | Request then wait several blocks before fulfillment | Yes | Yes | -| testRanDaoDelayedFulfillment | Request then wait several blocks before fulfillment | Yes | No | +| testRanDaoDelayedFulfillment | Request then wait several blocks before fulfillment | Yes | Yes | Scenario: Generate some random numbers, switch random generation methodology, generate some more numbers, check that the numbers generated earlier are still available: | Test name |Description | Happy Case | Implemented | |---------------------------------| --------------------------------------------------|------------|-------------| -| testSwitchTraditionalRandao | Traditional -> RanDAO. | Yes | No | -| testSwitchTraditionalOffchain | Traditional -> Off-chain. | Yes | No | -| testSwitchRandaoOffchain | RanDAO -> Traditional. | Yes | No | -| testSwitchRandaoOffchain | RanDAO -> Off-chain. | Yes | No | -| testSwitchOffchainTraditional | Off-chain -> Traditional. | Yes | No | -| testSwitchOffchainRandao | Off-chain -> RanDAO | Yes | No | -| testSwitchOffchainOffchain | Off-chain to another off-chain source. | Yes | No | +| testSwitchTraditionalOffchain | Traditional -> Off-chain. | Yes | Yes | +| testSwitchRandaoOffchain | RanDAO -> Off-chain. | Yes | Yes | +| testSwitchOffchainOffchain | Off-chain to another off-chain source. | Yes | Yes | +| testSwitchOffchainTraditional | Disable off-chain source. | Yes | Yes | diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index 195a3195..da652e69 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -13,6 +13,8 @@ import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.so contract UninitializedRandomSeedProviderTest is Test { error WaitForRandom(); + event OffchainRandomSourceSet(address _offchainRandomSource); + event RanDaoEnabled(); address public constant ONCHAIN = address(0); @@ -48,9 +50,9 @@ contract UninitializedRandomSeedProviderTest is Test { function testInit() public { assertEq(randomSeedProvider.nextRandomIndex(), 1, "nextRandomIndex"); assertEq(randomSeedProvider.lastBlockRandomGenerated(), block.number - 1, "lastBlockRandomGenerated"); - assertEq(randomSeedProvider.prevOffchainRandomRequest(), 0, "prevOffchainRandomRequest"); - assertEq(randomSeedProvider.lastBlockOffchainRequest(), 0, "lastBlockOffchainRequest"); assertEq(randomSeedProvider.randomSource(), ONCHAIN, "randomSource"); + assertFalse(randomSeedProvider.ranDaoAvailable(), "RAN DAO should not be available"); + assertTrue(randomSeedProviderRanDao.ranDaoAvailable(), "RAN DAO should be available"); } function testReinit() public { @@ -111,6 +113,8 @@ contract ControlRandomSeedProviderTest is UninitializedRandomSeedProviderTest { function testSetOffchainRandomSource() public { vm.prank(randomAdmin); + vm.expectEmit(true, true, true, true); + emit OffchainRandomSourceSet(NEW_SOURCE); randomSeedProvider.setOffchainRandomSource(NEW_SOURCE); assertEq(randomSeedProvider.randomSource(), NEW_SOURCE); } @@ -123,6 +127,8 @@ contract ControlRandomSeedProviderTest is UninitializedRandomSeedProviderTest { function testSetRanDaoAvailable() public { assertEq(randomSeedProvider.ranDaoAvailable(), false); vm.prank(randomAdmin); + vm.expectEmit(true, true, true, true); + emit RanDaoEnabled(); randomSeedProvider.setRanDaoAvailable(); assertEq(randomSeedProvider.ranDaoAvailable(), true); } @@ -169,7 +175,7 @@ contract ControlRandomSeedProviderTest is UninitializedRandomSeedProviderTest { contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTest { MockOffchainSource public offchainSource = new MockOffchainSource(); - function testTradNextBlock () public { + function testTradNextBlock() public { (uint256 fulfillmentIndex, address source) = randomSeedProvider.requestRandomSeed(); assertEq(source, ONCHAIN, "source"); assertEq(fulfillmentIndex, 2, "index"); @@ -182,10 +188,30 @@ contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTes available = randomSeedProvider.isRandomSeedReady(fulfillmentIndex, source); assertTrue(available, "Should be ready"); - randomSeedProvider.getRandomSeed(fulfillmentIndex, source); + bytes32 seed = randomSeedProvider.getRandomSeed(fulfillmentIndex, source); + assertNotEq(seed, bytes32(0), "Should not be zero"); } - function testOffchainNextBlock () public { + function testRanDaoNextBlock() public { + (uint256 fulfillmentIndex, address source) = randomSeedProviderRanDao.requestRandomSeed(); + assertEq(source, ONCHAIN, "source"); + assertEq(fulfillmentIndex, 2, "index"); + assertTrue(randomSeedProviderRanDao.ranDaoAvailable()); + + bool available = randomSeedProviderRanDao.isRandomSeedReady(fulfillmentIndex, source); + assertFalse(available, "Should not be ready yet"); + + vm.roll(block.number + 1); + + available = randomSeedProviderRanDao.isRandomSeedReady(fulfillmentIndex, source); + assertTrue(available, "Should be ready"); + + bytes32 seed = randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex, source); + assertNotEq(seed, bytes32(0), "Should not be zero"); + } + + + function testOffchainNextBlock() public { vm.prank(randomAdmin); randomSeedProvider.setOffchainRandomSource(address(offchainSource)); @@ -206,7 +232,8 @@ contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTes available = randomSeedProvider.isRandomSeedReady(fulfillmentIndex, source); assertTrue(available, "Should be ready"); - randomSeedProvider.getRandomSeed(fulfillmentIndex, source); + bytes32 seed = randomSeedProvider.getRandomSeed(fulfillmentIndex, source); + assertNotEq(seed, bytes32(0), "Should not be zero"); } function testTradTwoInOneBlock() public { @@ -217,7 +244,28 @@ contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTes assertEq(randomRequestId1, randomRequestId3, "Request id 1 and request id 3"); } + function testRanDaoTwoInOneBlock() public { + (uint256 randomRequestId1, ) = randomSeedProviderRanDao.requestRandomSeed(); + (uint256 randomRequestId2, ) = randomSeedProviderRanDao.requestRandomSeed(); + (uint256 randomRequestId3, ) = randomSeedProviderRanDao.requestRandomSeed(); + assertEq(randomRequestId1, randomRequestId2, "Request id 1 and request id 2"); + assertEq(randomRequestId1, randomRequestId3, "Request id 1 and request id 3"); + } + + function testOffchainTwoInOneBlock() public { + vm.prank(randomAdmin); + randomSeedProvider.setOffchainRandomSource(address(offchainSource)); + address aConsumer = makeAddr("aConsumer"); + vm.prank(randomAdmin); + randomSeedProvider.addOffchainRandomConsumer(aConsumer); + + vm.prank(aConsumer); + (uint256 fulfillmentIndex1, ) = randomSeedProvider.requestRandomSeed(); + vm.prank(aConsumer); + (uint256 fulfillmentIndex2, ) = randomSeedProvider.requestRandomSeed(); + assertEq(fulfillmentIndex1, fulfillmentIndex2, "Request id 1 and request id 3"); + } function testTradDelayedFulfillment() public { (uint256 randomRequestId1, address source1) = randomSeedProvider.requestRandomSeed(); @@ -246,4 +294,148 @@ contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTes assertEq(rand1a, rand1c, "rand1a, rand1c: Random Values not equal"); } + function testRanDaoDelayedFulfillment() public { + (uint256 randomRequestId1, address source1) = randomSeedProviderRanDao.requestRandomSeed(); + vm.roll(block.number + 1); + + (uint256 randomRequestId2, address source2) = randomSeedProviderRanDao.requestRandomSeed(); + bytes32 rand1a = randomSeedProviderRanDao.getRandomSeed(randomRequestId1, source1); + assertNotEq(rand1a, bytes32(0), "rand1a: Random Values is zero"); + (uint256 randomRequestId3,) = randomSeedProviderRanDao.requestRandomSeed(); + assertNotEq(randomRequestId1, randomRequestId2, "Request id 1 and request id 2"); + assertEq(randomRequestId2, randomRequestId3, "Request id 2 and request id 3"); + + vm.roll(block.number + 1); + bytes32 rand1b = randomSeedProviderRanDao.getRandomSeed(randomRequestId1, source1); + assertNotEq(rand1b, bytes32(0), "rand1b: Random Values is zero"); + { + bytes32 rand2 = randomSeedProviderRanDao.getRandomSeed(randomRequestId2, source2); + assertNotEq(rand2, bytes32(0), "rand2: Random Values is zero"); + assertNotEq(rand1a, rand2, "rand1a, rand2: Random Values equal"); + } + vm.roll(block.number + 1); + bytes32 rand1c = randomSeedProviderRanDao.getRandomSeed(randomRequestId1, source1); + assertNotEq(rand1c, bytes32(0), "rand1c: Random Values is zero"); + + assertEq(rand1a, rand1b, "rand1a, rand1b: Random Values not equal"); + assertEq(rand1a, rand1c, "rand1a, rand1c: Random Values not equal"); + } +} + +contract SwitchingRandomSeedProviderTest is UninitializedRandomSeedProviderTest { + MockOffchainSource public offchainSource = new MockOffchainSource(); + MockOffchainSource public offchainSource2 = new MockOffchainSource(); + + function testSwitchTraditionalOffchain() public { + address aConsumer = makeAddr("aConsumer"); + vm.prank(randomAdmin); + randomSeedProvider.addOffchainRandomConsumer(aConsumer); + + (uint256 fulfillmentIndex1, address source1) = randomSeedProvider.requestRandomSeed(); + assertEq(source1, ONCHAIN, "source"); + assertEq(fulfillmentIndex1, 2, "index"); + vm.roll(block.number + 1); + bytes32 seed1 = randomSeedProvider.getRandomSeed(fulfillmentIndex1, source1); + + vm.prank(randomAdmin); + randomSeedProvider.setOffchainRandomSource(address(offchainSource)); + + vm.prank(aConsumer); + (uint256 fulfillmentIndex2, address source2) = randomSeedProvider.requestRandomSeed(); + assertEq(source2, address(offchainSource), "offchain source"); + assertEq(fulfillmentIndex2, 1000, "index"); + + offchainSource.setIsReady(true); + bytes32 seed2 = randomSeedProvider.getRandomSeed(fulfillmentIndex2, source2); + + bytes32 seed1a = randomSeedProvider.getRandomSeed(fulfillmentIndex1, source1); + + assertEq(seed1, seed1a, "Seed still available"); + assertNotEq(seed1, seed2, "Must be different"); + } + + function testSwitchRanDaoOffchain() public { + address aConsumer = makeAddr("aConsumer"); + vm.prank(randomAdmin); + randomSeedProviderRanDao.addOffchainRandomConsumer(aConsumer); + + (uint256 fulfillmentIndex1, address source1) = randomSeedProviderRanDao.requestRandomSeed(); + assertEq(source1, ONCHAIN, "source"); + assertEq(fulfillmentIndex1, 2, "index"); + vm.roll(block.number + 1); + bytes32 seed1 = randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex1, source1); + + vm.prank(randomAdmin); + randomSeedProviderRanDao.setOffchainRandomSource(address(offchainSource)); + + vm.prank(aConsumer); + (uint256 fulfillmentIndex2, address source2) = randomSeedProviderRanDao.requestRandomSeed(); + assertEq(source2, address(offchainSource), "offchain source"); + assertEq(fulfillmentIndex2, 1000, "index"); + + offchainSource.setIsReady(true); + bytes32 seed2 = randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex2, source2); + + bytes32 seed1a = randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex1, source1); + + assertEq(seed1, seed1a, "Seed still available"); + assertNotEq(seed1, seed2, "Must be different"); + } + + function testSwitchOffchainOffchain() public { + address aConsumer = makeAddr("aConsumer"); + vm.prank(randomAdmin); + randomSeedProviderRanDao.addOffchainRandomConsumer(aConsumer); + + vm.prank(randomAdmin); + randomSeedProviderRanDao.setOffchainRandomSource(address(offchainSource)); + + vm.prank(aConsumer); + (uint256 fulfillmentIndex1, address source1) = randomSeedProviderRanDao.requestRandomSeed(); + assertEq(source1, address(offchainSource), "offchain source"); + assertEq(fulfillmentIndex1, 1000, "index"); + + vm.prank(randomAdmin); + randomSeedProviderRanDao.setOffchainRandomSource(address(offchainSource2)); + + vm.prank(aConsumer); + (uint256 fulfillmentIndex2, address source2) = randomSeedProviderRanDao.requestRandomSeed(); + assertEq(source2, address(offchainSource2), "offchain source 2"); + assertEq(fulfillmentIndex2, 1000, "index"); + + offchainSource.setIsReady(true); + randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex1, source1); + offchainSource2.setIsReady(true); + randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex2, source2); + } + + + function testSwitchOffchainTraditional() public { + address aConsumer = makeAddr("aConsumer"); + vm.prank(randomAdmin); + randomSeedProviderRanDao.addOffchainRandomConsumer(aConsumer); + + vm.prank(randomAdmin); + randomSeedProviderRanDao.setOffchainRandomSource(address(offchainSource)); + + vm.prank(aConsumer); + (uint256 fulfillmentIndex1, address source1) = randomSeedProviderRanDao.requestRandomSeed(); + assertEq(source1, address(offchainSource), "offchain source"); + assertEq(fulfillmentIndex1, 1000, "index"); + + vm.prank(randomAdmin); + randomSeedProviderRanDao.setOffchainRandomSource(ONCHAIN); + + vm.prank(aConsumer); + (uint256 fulfillmentIndex2, address source2) = randomSeedProviderRanDao.requestRandomSeed(); + assertEq(source2, ONCHAIN, "on chain"); + assertEq(fulfillmentIndex2, 2, "index"); + + offchainSource.setIsReady(true); + randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex1, source1); + + vm.roll(block.number + 1); + randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex2, source2); + } } + From f286c007554a9c6973f65c48d7c8f470ebd8ac22 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 15 Jan 2024 17:43:05 +1000 Subject: [PATCH 052/100] Emit events when adding offchain consumers --- contracts/random/RandomSeedProvider.sol | 8 ++++++++ test/random/RandomSeedProvider.t.sol | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index f70696c4..6c461583 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -25,6 +25,12 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { // Indicates that new random values will be generated using the RanDAO source. event RanDaoEnabled(); + // Indicates that a game contract that can consume off-chain random has been added. + event OffchainRandomConsumerAdded(address _consumer); + + // Indicates that a game contract that can consume off-chain random has been removed. + event OffchainRandomConsumerRemoved(address _consumer); + // Admin role that can enable RanDAO and offchain random sources. bytes32 public constant RANDOM_ADMIN_ROLE = keccak256("RANDOM_ADMIN_ROLE"); @@ -115,6 +121,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { */ function addOffchainRandomConsumer(address _consumer) external onlyRole(RANDOM_ADMIN_ROLE) { approvedForOffchainRandom[_consumer] = true; + emit OffchainRandomConsumerAdded(_consumer); } /** @@ -124,6 +131,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { */ function removeOffchainRandomConsumer(address _consumer) external onlyRole(RANDOM_ADMIN_ROLE) { approvedForOffchainRandom[_consumer] = false; + emit OffchainRandomConsumerRemoved(_consumer); } diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index da652e69..ab99eba6 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -15,6 +15,9 @@ contract UninitializedRandomSeedProviderTest is Test { error WaitForRandom(); event OffchainRandomSourceSet(address _offchainRandomSource); event RanDaoEnabled(); + event OffchainRandomConsumerAdded(address _consumer); + event OffchainRandomConsumerRemoved(address _consumer); + address public constant ONCHAIN = address(0); @@ -143,6 +146,8 @@ contract ControlRandomSeedProviderTest is UninitializedRandomSeedProviderTest { function testAddOffchainRandomConsumer() public { assertEq(randomSeedProvider.approvedForOffchainRandom(CONSUMER), false); vm.prank(randomAdmin); + vm.expectEmit(true, true, true, true); + emit OffchainRandomConsumerAdded(CONSUMER); randomSeedProvider.addOffchainRandomConsumer(CONSUMER); assertEq(randomSeedProvider.approvedForOffchainRandom(CONSUMER), true); } @@ -158,6 +163,8 @@ contract ControlRandomSeedProviderTest is UninitializedRandomSeedProviderTest { randomSeedProvider.addOffchainRandomConsumer(CONSUMER); assertEq(randomSeedProvider.approvedForOffchainRandom(CONSUMER), true); vm.prank(randomAdmin); + vm.expectEmit(true, true, true, true); + emit OffchainRandomConsumerRemoved(CONSUMER); randomSeedProvider.removeOffchainRandomConsumer(CONSUMER); assertEq(randomSeedProvider.approvedForOffchainRandom(CONSUMER), false); } From 68db3d5d15b7d83925655eec5a0e3b84ded93300 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 15 Jan 2024 18:04:06 +1000 Subject: [PATCH 053/100] RandomSeedProvider and RandomValues: 100% coverage --- test/random/README.md | 1 + test/random/RandomSeedProvider.t.sol | 45 +- x.txt | 6717 ++++++++++++++++++++++++++ 3 files changed, 6758 insertions(+), 5 deletions(-) create mode 100644 x.txt diff --git a/test/random/README.md b/test/random/README.md index ff06b3d5..d85edeaa 100644 --- a/test/random/README.md +++ b/test/random/README.md @@ -38,6 +38,7 @@ Operational functions tests: | testTradNextBlock | Check basic request flow | Yes | Yes | | testRanDaoNextBlock | Check basic request flow | Yes | Yes | | testOffchainNextBlock | Check basic request flow | Yes | Yes | +| testOffchainNotReady | Attempt to fetch offchain random when not ready | No | Yes | | testTradTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | Yes | | testRanDaoTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | Yes | | testOffchainTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | Yes | diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index ab99eba6..aabf5f44 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -18,6 +18,8 @@ contract UninitializedRandomSeedProviderTest is Test { event OffchainRandomConsumerAdded(address _consumer); event OffchainRandomConsumerRemoved(address _consumer); + bytes32 public constant DEFAULT_ADMIN_ROLE = bytes32(0); + bytes32 public constant RANDOM_ADMIN_ROLE = keccak256("RANDOM_ADMIN_ROLE"); address public constant ONCHAIN = address(0); @@ -51,13 +53,31 @@ contract UninitializedRandomSeedProviderTest is Test { } function testInit() public { - assertEq(randomSeedProvider.nextRandomIndex(), 1, "nextRandomIndex"); - assertEq(randomSeedProvider.lastBlockRandomGenerated(), block.number - 1, "lastBlockRandomGenerated"); - assertEq(randomSeedProvider.randomSource(), ONCHAIN, "randomSource"); - assertFalse(randomSeedProvider.ranDaoAvailable(), "RAN DAO should not be available"); + // This set-up mirrors what is in the setUp function. Have this code here + // so that the coverage tool picks up the use of the initialize function. + RandomSeedProvider impl1 = new RandomSeedProvider(); + TransparentUpgradeableProxy proxy1 = new TransparentUpgradeableProxy(address(impl1), proxyAdmin, + abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, false)); + RandomSeedProvider randomSeedProvider1 = RandomSeedProvider(address(proxy1)); + vm.roll(block.number + 1); + + // Check that the initialize funciton has worked correctly. + assertEq(randomSeedProvider1.nextRandomIndex(), 1, "nextRandomIndex"); + assertEq(randomSeedProvider1.lastBlockRandomGenerated(), block.number - 1, "lastBlockRandomGenerated"); + assertEq(randomSeedProvider1.randomSource(), ONCHAIN, "randomSource"); + assertFalse(randomSeedProvider1.ranDaoAvailable(), "RAN DAO should not be available"); assertTrue(randomSeedProviderRanDao.ranDaoAvailable(), "RAN DAO should be available"); + + assertTrue(randomSeedProvider1.hasRole(DEFAULT_ADMIN_ROLE, roleAdmin)); + assertTrue(randomSeedProvider1.hasRole(RANDOM_ADMIN_ROLE, randomAdmin)); + } + + // This test does nothing, except call initialize, which has been called in the setUp + // function and tested in various functions. + function testInit2() public virtual { } + function testReinit() public { vm.expectRevert(); randomSeedProvider.initialize(roleAdmin, randomAdmin, true); @@ -94,7 +114,6 @@ contract UninitializedRandomSeedProviderTest is Test { contract ControlRandomSeedProviderTest is UninitializedRandomSeedProviderTest { - bytes32 public constant RANDOM_ADMIN_ROLE = keccak256("RANDOM_ADMIN_ROLE"); address public constant NEW_SOURCE = address(10001); address public constant CONSUMER = address(10001); @@ -243,6 +262,22 @@ contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTes assertNotEq(seed, bytes32(0), "Should not be zero"); } + function testOffchainNotReady() public { + vm.prank(randomAdmin); + randomSeedProvider.setOffchainRandomSource(address(offchainSource)); + + address aConsumer = makeAddr("aConsumer"); + vm.prank(randomAdmin); + randomSeedProvider.addOffchainRandomConsumer(aConsumer); + + vm.prank(aConsumer); + (uint256 fulfillmentIndex, address source) = randomSeedProvider.requestRandomSeed(); + + vm.expectRevert(abi.encodeWithSelector(WaitForRandom.selector)); + randomSeedProvider.getRandomSeed(fulfillmentIndex, source); + } + + function testTradTwoInOneBlock() public { (uint256 randomRequestId1, ) = randomSeedProvider.requestRandomSeed(); (uint256 randomRequestId2, ) = randomSeedProvider.requestRandomSeed(); diff --git a/x.txt b/x.txt new file mode 100644 index 00000000..2732f1d1 --- /dev/null +++ b/x.txt @@ -0,0 +1,6717 @@ +Compiling 111 files with 0.8.19 +Compiling 11 files with 0.8.14 +Compiling 42 files with 0.8.20 +Compiling 77 files with 0.8.17 +Solc 0.8.14 finished in 102.46ms +Solc 0.8.20 finished in 672.01ms +Solc 0.8.17 finished in 1.58s +Solc 0.8.19 finished in 3.76s +Compiler run successful! +Analysing contracts... +Running tests... +Uncovered for contracts/allowlist/OperatorAllowlist.sol: +- Function "removeAddressFromAllowlist" (location: source ID 1, line 77, chars 2962-3266, hits: 0) +- Line (location: source ID 1, line 78, chars 3082-3091, hits: 0) +- Statement (location: source ID 1, line 78, chars 3082-3091, hits: 0) +- Statement (location: source ID 1, line 78, chars 3093-3118, hits: 0) +- Statement (location: source ID 1, line 78, chars 3120-3123, hits: 0) +- Line (location: source ID 1, line 79, chars 3139-3181, hits: 0) +- Statement (location: source ID 1, line 79, chars 3139-3181, hits: 0) +- Line (location: source ID 1, line 80, chars 3195-3249, hits: 0) +- Statement (location: source ID 1, line 80, chars 3195-3249, hits: 0) +- Function "removeWalletFromAllowlist" (location: source ID 1, line 111, chars 4462-4968, hits: 0) +- Line (location: source ID 1, line 113, chars 4595-4611, hits: 0) +- Statement (location: source ID 1, line 113, chars 4595-4611, hits: 0) +- Line (location: source ID 1, line 115, chars 4644-4679, hits: 0) +- Statement (location: source ID 1, line 115, chars 4644-4679, hits: 0) +- Line (location: source ID 1, line 117, chars 4698-4732, hits: 0) +- Statement (location: source ID 1, line 117, chars 4698-4732, hits: 0) +- Line (location: source ID 1, line 119, chars 4782-4841, hits: 0) +- Statement (location: source ID 1, line 119, chars 4782-4841, hits: 0) +- Statement (location: source ID 1, line 119, chars 4797-4841, hits: 0) +- Line (location: source ID 1, line 120, chars 4851-4894, hits: 0) +- Statement (location: source ID 1, line 120, chars 4851-4894, hits: 0) +- Line (location: source ID 1, line 122, chars 4905-4961, hits: 0) +- Statement (location: source ID 1, line 122, chars 4905-4961, hits: 0) +- Function "grantRegistrarRole" (location: source ID 1, line 129, chars 5128-5256, hits: 0) +- Line (location: source ID 1, line 130, chars 5218-5249, hits: 0) +- Statement (location: source ID 1, line 130, chars 5218-5249, hits: 0) +- Function "revokeRegistrarRole" (location: source ID 1, line 137, chars 5424-5554, hits: 0) +- Line (location: source ID 1, line 138, chars 5515-5547, hits: 0) +- Statement (location: source ID 1, line 138, chars 5515-5547, hits: 0) +- Branch (branch: 1, path: 0) (location: source ID 1, line 157, chars 6105-6367, hits: 0) +- Function "supportsInterface" (location: source ID 1, line 171, chars 6539-6768, hits: 0) +- Line (location: source ID 1, line 172, chars 6663-6761, hits: 0) +- Statement (location: source ID 1, line 172, chars 6663-6761, hits: 0) + +Uncovered for contracts/allowlist/OperatorAllowlistEnforced.sol: +- Function "setOperatorAllowlistRegistry" (location: source ID 2, line 94, chars 3760-3928, hits: 0) +- Line (location: source ID 2, line 95, chars 3872-3921, hits: 0) +- Statement (location: source ID 2, line 95, chars 3872-3921, hits: 0) +- Function "supportsInterface" (location: source ID 2, line 102, chars 4071-4222, hits: 0) +- Line (location: source ID 2, line 103, chars 4172-4215, hits: 0) +- Statement (location: source ID 2, line 103, chars 4172-4215, hits: 0) +- Function "_setOperatorAllowlistRegistry" (location: source ID 2, line 110, chars 4419-4842, hits: 0) +- Line (location: source ID 2, line 111, chars 4509-4593, hits: 0) +- Statement (location: source ID 2, line 111, chars 4509-4593, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 2, line 111, chars 4505-4672, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 2, line 111, chars 4505-4672, hits: 0) +- Line (location: source ID 2, line 112, chars 4609-4661, hits: 0) +- Statement (location: source ID 2, line 112, chars 4609-4661, hits: 0) +- Line (location: source ID 2, line 115, chars 4682-4767, hits: 0) +- Statement (location: source ID 2, line 115, chars 4682-4767, hits: 0) +- Line (location: source ID 2, line 116, chars 4777-4835, hits: 0) +- Statement (location: source ID 2, line 116, chars 4777-4835, hits: 0) + +Uncovered for contracts/bridge/x/Registration.sol: +- Function "registerAndDepositNft" (location: source ID 2, line 13, chars 200-532, hits: 0) +- Line (location: source ID 2, line 21, chars 417-462, hits: 0) +- Statement (location: source ID 2, line 21, chars 417-462, hits: 0) +- Line (location: source ID 2, line 22, chars 472-525, hits: 0) +- Statement (location: source ID 2, line 22, chars 472-525, hits: 0) +- Function "registerAndWithdraw" (location: source ID 2, line 25, chars 538-798, hits: 0) +- Line (location: source ID 2, line 31, chars 703-748, hits: 0) +- Statement (location: source ID 2, line 31, chars 703-748, hits: 0) +- Line (location: source ID 2, line 32, chars 758-791, hits: 0) +- Statement (location: source ID 2, line 32, chars 758-791, hits: 0) +- Function "registerAndWithdrawTo" (location: source ID 2, line 35, chars 804-1106, hits: 0) +- Line (location: source ID 2, line 42, chars 998-1043, hits: 0) +- Statement (location: source ID 2, line 42, chars 998-1043, hits: 0) +- Line (location: source ID 2, line 43, chars 1053-1099, hits: 0) +- Statement (location: source ID 2, line 43, chars 1053-1099, hits: 0) +- Function "registerAndWithdrawNft" (location: source ID 2, line 46, chars 1112-1412, hits: 0) +- Line (location: source ID 2, line 53, chars 1305-1350, hits: 0) +- Statement (location: source ID 2, line 53, chars 1305-1350, hits: 0) +- Line (location: source ID 2, line 54, chars 1360-1405, hits: 0) +- Statement (location: source ID 2, line 54, chars 1360-1405, hits: 0) +- Function "registerAndWithdrawNftTo" (location: source ID 2, line 57, chars 1418-1760, hits: 0) +- Line (location: source ID 2, line 65, chars 1640-1685, hits: 0) +- Statement (location: source ID 2, line 65, chars 1640-1685, hits: 0) +- Line (location: source ID 2, line 66, chars 1695-1753, hits: 0) +- Statement (location: source ID 2, line 66, chars 1695-1753, hits: 0) +- Function "regsiterAndWithdrawAndMint" (location: source ID 2, line 69, chars 1766-2089, hits: 0) +- Line (location: source ID 2, line 76, chars 1974-2019, hits: 0) +- Statement (location: source ID 2, line 76, chars 1974-2019, hits: 0) +- Line (location: source ID 2, line 77, chars 2029-2082, hits: 0) +- Statement (location: source ID 2, line 77, chars 2029-2082, hits: 0) +- Function "isRegistered" (location: source ID 2, line 80, chars 2095-2223, hits: 0) +- Line (location: source ID 2, line 81, chars 2172-2216, hits: 0) +- Statement (location: source ID 2, line 81, chars 2172-2216, hits: 0) + +Uncovered for contracts/mocks/MockDisguisedEOA.sol: +- Function "executeTransfer" (location: source ID 3, line 14, chars 295-449, hits: 0) +- Line (location: source ID 3, line 15, chars 390-442, hits: 0) +- Statement (location: source ID 3, line 15, chars 390-442, hits: 0) + +Uncovered for contracts/mocks/MockEIP1271Wallet.sol: +- Function "isValidSignature" (location: source ID 4, line 14, chars 316-633, hits: 0) +- Line (location: source ID 4, line 15, chars 428-485, hits: 0) +- Statement (location: source ID 4, line 15, chars 428-485, hits: 0) +- Statement (location: source ID 4, line 15, chars 455-485, hits: 0) +- Line (location: source ID 4, line 16, chars 499-524, hits: 0) +- Statement (location: source ID 4, line 16, chars 499-524, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 4, line 16, chars 495-588, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 4, line 16, chars 495-588, hits: 0) +- Line (location: source ID 4, line 17, chars 540-577, hits: 0) +- Statement (location: source ID 4, line 17, chars 540-577, hits: 0) +- Line (location: source ID 4, line 19, chars 608-616, hits: 0) +- Statement (location: source ID 4, line 19, chars 608-616, hits: 0) + +Uncovered for contracts/mocks/MockFactory.sol: +- Function "computeAddress" (location: source ID 5, line 7, chars 152-300, hits: 0) +- Line (location: source ID 5, line 8, chars 248-293, hits: 0) +- Statement (location: source ID 5, line 8, chars 248-293, hits: 0) +- Function "deploy" (location: source ID 5, line 11, chars 306-408, hits: 0) +- Line (location: source ID 5, line 12, chars 372-401, hits: 0) +- Statement (location: source ID 5, line 12, chars 372-401, hits: 0) + +Uncovered for contracts/mocks/MockMarketplace.sol: +- Function "executeTransfer" (location: source ID 6, line 16, chars 421-565, hits: 0) +- Line (location: source ID 6, line 17, chars 500-558, hits: 0) +- Statement (location: source ID 6, line 17, chars 500-558, hits: 0) +- Function "executeTransferFrom" (location: source ID 6, line 20, chars 571-713, hits: 0) +- Line (location: source ID 6, line 21, chars 661-706, hits: 0) +- Statement (location: source ID 6, line 21, chars 661-706, hits: 0) +- Function "executeApproveForAll" (location: source ID 6, line 24, chars 719-856, hits: 0) +- Line (location: source ID 6, line 25, chars 799-849, hits: 0) +- Statement (location: source ID 6, line 25, chars 799-849, hits: 0) +- Function "executeTransferRoyalties" (location: source ID 6, line 28, chars 862-1355, hits: 0) +- Line (location: source ID 6, line 29, chars 987-1040, hits: 0) +- Statement (location: source ID 6, line 29, chars 987-1040, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 6, line 29, chars 987-1040, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 6, line 29, chars 987-1040, hits: 0) +- Line (location: source ID 6, line 30, chars 1050-1137, hits: 0) +- Statement (location: source ID 6, line 30, chars 1050-1137, hits: 0) +- Statement (location: source ID 6, line 30, chars 1094-1137, hits: 0) +- Line (location: source ID 6, line 31, chars 1147-1192, hits: 0) +- Statement (location: source ID 6, line 31, chars 1147-1192, hits: 0) +- Statement (location: source ID 6, line 31, chars 1167-1192, hits: 0) +- Line (location: source ID 6, line 32, chars 1202-1243, hits: 0) +- Statement (location: source ID 6, line 32, chars 1202-1243, hits: 0) +- Line (location: source ID 6, line 33, chars 1253-1286, hits: 0) +- Statement (location: source ID 6, line 33, chars 1253-1286, hits: 0) +- Line (location: source ID 6, line 34, chars 1296-1348, hits: 0) +- Statement (location: source ID 6, line 34, chars 1296-1348, hits: 0) + +Uncovered for contracts/mocks/MockOnReceive.sol: +- Function "onERC721Received" (location: source ID 7, line 16, chars 412-712, hits: 0) +- Line (location: source ID 7, line 22, chars 598-658, hits: 0) +- Statement (location: source ID 7, line 22, chars 598-658, hits: 0) +- Line (location: source ID 7, line 23, chars 668-705, hits: 0) +- Statement (location: source ID 7, line 23, chars 668-705, hits: 0) + +Uncovered for contracts/mocks/MockWallet.sol: +- Function "transferNFT" (location: source ID 8, line 12, chars 341-492, hits: 0) +- Line (location: source ID 8, line 13, chars 439-485, hits: 0) +- Statement (location: source ID 8, line 13, chars 439-485, hits: 0) +- Function "transfer1155" (location: source ID 8, line 16, chars 498-683, hits: 0) +- Line (location: source ID 8, line 17, chars 613-676, hits: 0) +- Statement (location: source ID 8, line 17, chars 613-676, hits: 0) +- Function "batchTransfer1155" (location: source ID 8, line 20, chars 689-952, hits: 0) +- Line (location: source ID 8, line 27, chars 875-945, hits: 0) +- Statement (location: source ID 8, line 27, chars 875-945, hits: 0) +- Function "onERC1155Received" (location: source ID 8, line 30, chars 958-1294, hits: 0) +- Line (location: source ID 8, line 37, chars 1147-1193, hits: 0) +- Statement (location: source ID 8, line 37, chars 1147-1193, hits: 0) +- Line (location: source ID 8, line 38, chars 1203-1287, hits: 0) +- Statement (location: source ID 8, line 38, chars 1203-1287, hits: 0) +- Function "onERC1155BatchReceived" (location: source ID 8, line 41, chars 1300-1681, hits: 0) +- Line (location: source ID 8, line 48, chars 1518-1571, hits: 0) +- Statement (location: source ID 8, line 48, chars 1518-1571, hits: 0) +- Line (location: source ID 8, line 49, chars 1581-1674, hits: 0) +- Statement (location: source ID 8, line 49, chars 1581-1674, hits: 0) +- Function "transferNFT" (location: source ID 4, line 12, chars 341-492, hits: 0) +- Line (location: source ID 4, line 13, chars 439-485, hits: 0) +- Statement (location: source ID 4, line 13, chars 439-485, hits: 0) +- Function "transfer1155" (location: source ID 4, line 16, chars 498-683, hits: 0) +- Line (location: source ID 4, line 17, chars 613-676, hits: 0) +- Statement (location: source ID 4, line 17, chars 613-676, hits: 0) +- Function "batchTransfer1155" (location: source ID 4, line 20, chars 689-952, hits: 0) +- Line (location: source ID 4, line 27, chars 875-945, hits: 0) +- Statement (location: source ID 4, line 27, chars 875-945, hits: 0) +- Function "onERC1155Received" (location: source ID 4, line 30, chars 958-1294, hits: 0) +- Line (location: source ID 4, line 37, chars 1147-1193, hits: 0) +- Statement (location: source ID 4, line 37, chars 1147-1193, hits: 0) +- Line (location: source ID 4, line 38, chars 1203-1287, hits: 0) +- Statement (location: source ID 4, line 38, chars 1203-1287, hits: 0) +- Function "onERC1155BatchReceived" (location: source ID 4, line 41, chars 1300-1681, hits: 0) +- Line (location: source ID 4, line 48, chars 1518-1571, hits: 0) +- Statement (location: source ID 4, line 48, chars 1518-1571, hits: 0) +- Line (location: source ID 4, line 49, chars 1581-1674, hits: 0) +- Statement (location: source ID 4, line 49, chars 1581-1674, hits: 0) + +Uncovered for contracts/mocks/MockWalletFactory.sol: +- Function "getAddress" (location: source ID 9, line 8, chars 1496-1916, hits: 0) +- Line (location: source ID 9, line 9, chars 1601-1860, hits: 0) +- Statement (location: source ID 9, line 9, chars 1601-1860, hits: 0) +- Statement (location: source ID 9, line 9, chars 1617-1860, hits: 0) +- Line (location: source ID 9, line 17, chars 1870-1909, hits: 0) +- Statement (location: source ID 9, line 17, chars 1870-1909, hits: 0) +- Function "deploy" (location: source ID 9, line 20, chars 1922-2345, hits: 0) +- Line (location: source ID 9, line 21, chars 2027-2114, hits: 0) +- Statement (location: source ID 9, line 21, chars 2027-2114, hits: 0) +- Statement (location: source ID 9, line 21, chars 2047-2114, hits: 0) +- Line (location: source ID 9, line 23, chars 2147-2215, hits: 0) +- Statement (location: source ID 9, line 23, chars 2147-2215, hits: 0) +- Line (location: source ID 9, line 26, chars 2270-2338, hits: 0) +- Statement (location: source ID 9, line 26, chars 2270-2338, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 9, line 26, chars 2270-2338, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 9, line 26, chars 2270-2338, hits: 0) +- Function "getAddress" (location: source ID 5, line 8, chars 1496-1916, hits: 0) +- Line (location: source ID 5, line 9, chars 1601-1860, hits: 0) +- Statement (location: source ID 5, line 9, chars 1601-1860, hits: 0) +- Statement (location: source ID 5, line 9, chars 1617-1860, hits: 0) +- Line (location: source ID 5, line 17, chars 1870-1909, hits: 0) +- Statement (location: source ID 5, line 17, chars 1870-1909, hits: 0) +- Function "deploy" (location: source ID 5, line 20, chars 1922-2345, hits: 0) +- Line (location: source ID 5, line 21, chars 2027-2114, hits: 0) +- Statement (location: source ID 5, line 21, chars 2027-2114, hits: 0) +- Statement (location: source ID 5, line 21, chars 2047-2114, hits: 0) +- Line (location: source ID 5, line 23, chars 2147-2215, hits: 0) +- Statement (location: source ID 5, line 23, chars 2147-2215, hits: 0) +- Line (location: source ID 5, line 26, chars 2270-2338, hits: 0) +- Statement (location: source ID 5, line 26, chars 2270-2338, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 5, line 26, chars 2270-2338, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 5, line 26, chars 2270-2338, hits: 0) + +Uncovered for contracts/random/RandomSeedProvider.sol: +- Line (location: source ID 7, line 83, chars 3938-3980, hits: 0) +- Statement (location: source ID 7, line 83, chars 3938-3980, hits: 0) +- Line (location: source ID 7, line 84, chars 3990-4033, hits: 0) +- Statement (location: source ID 7, line 84, chars 3990-4033, hits: 0) +- Line (location: source ID 7, line 89, chars 4235-4309, hits: 0) +- Statement (location: source ID 7, line 89, chars 4235-4309, hits: 0) +- Line (location: source ID 7, line 90, chars 4319-4338, hits: 0) +- Statement (location: source ID 7, line 90, chars 4319-4338, hits: 0) +- Line (location: source ID 7, line 91, chars 4348-4387, hits: 0) +- Statement (location: source ID 7, line 91, chars 4348-4387, hits: 0) +- Line (location: source ID 7, line 93, chars 4398-4420, hits: 0) +- Statement (location: source ID 7, line 93, chars 4398-4420, hits: 0) +- Line (location: source ID 7, line 94, chars 4430-4464, hits: 0) +- Statement (location: source ID 7, line 94, chars 4430-4464, hits: 0) + +Uncovered for contracts/random/RandomValues.sol: + +Uncovered for contracts/random/offchainsources/ChainlinkSourceAdaptor.sol: +- Function "configureRequests" (location: source ID 9, line 49, chars 1836-2064, hits: 0) +- Line (location: source ID 9, line 50, chars 1969-1987, hits: 0) +- Statement (location: source ID 9, line 50, chars 1969-1987, hits: 0) +- Line (location: source ID 9, line 51, chars 1997-2011, hits: 0) +- Statement (location: source ID 9, line 51, chars 1997-2011, hits: 0) +- Line (location: source ID 9, line 52, chars 2021-2057, hits: 0) +- Statement (location: source ID 9, line 52, chars 2021-2057, hits: 0) +- Function "requestOffchainRandom" (location: source ID 9, line 55, chars 2070-2261, hits: 0) +- Line (location: source ID 9, line 56, chars 2150-2254, hits: 0) +- Statement (location: source ID 9, line 56, chars 2150-2254, hits: 0) +- Function "fulfillRandomWords" (location: source ID 9, line 61, chars 2281-2680, hits: 0) +- Line (location: source ID 9, line 64, chars 2508-2532, hits: 0) +- Statement (location: source ID 9, line 64, chars 2508-2532, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 9, line 64, chars 2504-2612, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 9, line 64, chars 2504-2612, hits: 0) +- Line (location: source ID 9, line 65, chars 2548-2601, hits: 0) +- Statement (location: source ID 9, line 65, chars 2548-2601, hits: 0) +- Line (location: source ID 9, line 68, chars 2622-2673, hits: 0) +- Statement (location: source ID 9, line 68, chars 2622-2673, hits: 0) +- Function "getOffchainRandom" (location: source ID 9, line 72, chars 2687-2957, hits: 0) +- Line (location: source ID 9, line 73, chars 2795-2841, hits: 0) +- Statement (location: source ID 9, line 73, chars 2795-2841, hits: 0) +- Line (location: source ID 9, line 74, chars 2855-2873, hits: 0) +- Statement (location: source ID 9, line 74, chars 2855-2873, hits: 0) +- Branch (branch: 1, path: 0) (location: source ID 9, line 74, chars 2851-2922, hits: 0) +- Branch (branch: 1, path: 1) (location: source ID 9, line 74, chars 2851-2922, hits: 0) +- Line (location: source ID 9, line 75, chars 2889-2911, hits: 0) +- Statement (location: source ID 9, line 75, chars 2889-2911, hits: 0) +- Line (location: source ID 9, line 77, chars 2931-2950, hits: 0) +- Statement (location: source ID 9, line 77, chars 2931-2950, hits: 0) +- Function "isOffchainRandomReady" (location: source ID 9, line 80, chars 2963-3118, hits: 0) +- Line (location: source ID 9, line 81, chars 3059-3111, hits: 0) +- Statement (location: source ID 9, line 81, chars 3059-3111, hits: 0) + +Uncovered for contracts/token/erc1155/abstract/ERC1155Permit.Sol: +- Branch (branch: 1, path: 0) (location: source ID 11, line 32, chars 1220-1360, hits: 0) +- Line (location: source ID 11, line 33, chars 1285-1329, hits: 0) +- Statement (location: source ID 11, line 33, chars 1285-1329, hits: 0) +- Line (location: source ID 11, line 34, chars 1343-1350, hits: 0) +- Statement (location: source ID 11, line 34, chars 1343-1350, hits: 0) +- Branch (branch: 2, path: 0) (location: source ID 11, line 40, chars 1440-1690, hits: 0) +- Line (location: source ID 11, line 42, chars 1503-1679, hits: 0) +- Statement (location: source ID 11, line 42, chars 1503-1679, hits: 0) +- Branch (branch: 3, path: 1) (location: source ID 11, line 47, chars 1696-1820, hits: 0) +- Line (location: source ID 11, line 51, chars 1840-1865, hits: 0) +- Statement (location: source ID 11, line 51, chars 1840-1865, hits: 0) +- Function "DOMAIN_SEPARATOR" (location: source ID 11, line 76, chars 2563-2676, hits: 0) +- Line (location: source ID 11, line 77, chars 2642-2669, hits: 0) +- Statement (location: source ID 11, line 77, chars 2642-2669, hits: 0) +- Function "supportsInterface" (location: source ID 11, line 85, chars 2987-3255, hits: 0) +- Line (location: source ID 11, line 92, chars 3128-3248, hits: 0) +- Statement (location: source ID 11, line 92, chars 3128-3248, hits: 0) +- Branch (branch: 5, path: 0) (location: source ID 11, line 140, chars 4842-5056, hits: 0) +- Branch (branch: 5, path: 1) (location: source ID 11, line 140, chars 4842-5056, hits: 0) +- Line (location: source ID 11, line 141, chars 4889-4934, hits: 0) +- Statement (location: source ID 11, line 141, chars 4889-4934, hits: 0) +- Statement (location: source ID 11, line 141, chars 4909-4934, hits: 0) +- Line (location: source ID 11, line 142, chars 4952-5000, hits: 0) +- Statement (location: source ID 11, line 142, chars 4952-5000, hits: 0) +- Branch (branch: 6, path: 0) (location: source ID 11, line 142, chars 4948-5046, hits: 0) +- Branch (branch: 6, path: 1) (location: source ID 11, line 142, chars 4948-5046, hits: 0) +- Line (location: source ID 11, line 143, chars 5020-5031, hits: 0) +- Statement (location: source ID 11, line 143, chars 5020-5031, hits: 0) + +Uncovered for contracts/token/erc1155/abstract/ImmutableERC1155Base.sol: +- Function "setDefaultRoyaltyReceiver" (location: source ID 13, line 61, chars 1879-2048, hits: 0) +- Line (location: source ID 13, line 62, chars 1999-2041, hits: 0) +- Statement (location: source ID 13, line 62, chars 1999-2041, hits: 0) +- Function "setNFTRoyaltyReceiver" (location: source ID 13, line 71, chars 2328-2540, hits: 0) +- Line (location: source ID 13, line 76, chars 2484-2533, hits: 0) +- Statement (location: source ID 13, line 76, chars 2484-2533, hits: 0) +- Function "setNFTRoyaltyReceiverBatch" (location: source ID 13, line 85, chars 2822-3122, hits: 0) +- Line (location: source ID 13, line 90, chars 3000-3010, hits: 0) +- Statement (location: source ID 13, line 90, chars 3000-3010, hits: 0) +- Statement (location: source ID 13, line 90, chars 3012-3031, hits: 0) +- Statement (location: source ID 13, line 90, chars 3033-3036, hits: 0) +- Line (location: source ID 13, line 91, chars 3052-3105, hits: 0) +- Statement (location: source ID 13, line 91, chars 3052-3105, hits: 0) +- Function "revokeMinterRole" (location: source ID 13, line 107, chars 3522-3644, hits: 0) +- Line (location: source ID 13, line 108, chars 3608-3637, hits: 0) +- Statement (location: source ID 13, line 108, chars 3608-3637, hits: 0) +- Function "exists" (location: source ID 13, line 146, chars 4984-5090, hits: 0) +- Line (location: source ID 13, line 147, chars 5057-5083, hits: 0) +- Statement (location: source ID 13, line 147, chars 5057-5083, hits: 0) +- Function "supportsInterface" (location: source ID 13, line 155, chars 5395-5655, hits: 0) +- Line (location: source ID 13, line 164, chars 5605-5648, hits: 0) +- Statement (location: source ID 13, line 164, chars 5605-5648, hits: 0) +- Function "uri" (location: source ID 13, line 195, chars 6793-6900, hits: 0) +- Line (location: source ID 13, line 196, chars 6878-6893, hits: 0) +- Statement (location: source ID 13, line 196, chars 6878-6893, hits: 0) +- Function "getAdmins" (location: source ID 13, line 203, chars 7055-7394, hits: 0) +- Line (location: source ID 13, line 204, chars 7125-7184, hits: 0) +- Statement (location: source ID 13, line 204, chars 7125-7184, hits: 0) +- Statement (location: source ID 13, line 204, chars 7146-7184, hits: 0) +- Line (location: source ID 13, line 205, chars 7194-7245, hits: 0) +- Statement (location: source ID 13, line 205, chars 7194-7245, hits: 0) +- Statement (location: source ID 13, line 205, chars 7220-7245, hits: 0) +- Line (location: source ID 13, line 206, chars 7260-7269, hits: 0) +- Statement (location: source ID 13, line 206, chars 7260-7269, hits: 0) +- Statement (location: source ID 13, line 206, chars 7271-7285, hits: 0) +- Statement (location: source ID 13, line 206, chars 7287-7290, hits: 0) +- Line (location: source ID 13, line 207, chars 7306-7354, hits: 0) +- Statement (location: source ID 13, line 207, chars 7306-7354, hits: 0) +- Line (location: source ID 13, line 209, chars 7374-7387, hits: 0) +- Statement (location: source ID 13, line 209, chars 7374-7387, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 13, line 231, chars 8185-8341, hits: 0) +- Branch (branch: 1, path: 0) (location: source ID 13, line 237, chars 8351-8775, hits: 0) +- Branch (branch: 2, path: 0) (location: source ID 13, line 242, chars 8579-8648, hits: 0) + +Uncovered for contracts/token/erc1155/preset/draft-ImmutableERC1155.sol: + +Uncovered for contracts/token/erc721/abstract/ERC721Hybrid.sol: +- Function "burnBatch" (location: source ID 16, line 60, chars 1977-2135, hits: 0) +- Line (location: source ID 16, line 61, chars 2049-2059, hits: 0) +- Statement (location: source ID 16, line 61, chars 2049-2059, hits: 0) +- Statement (location: source ID 16, line 61, chars 2061-2080, hits: 0) +- Statement (location: source ID 16, line 61, chars 2082-2085, hits: 0) +- Line (location: source ID 16, line 62, chars 2101-2118, hits: 0) +- Statement (location: source ID 16, line 62, chars 2101-2118, hits: 0) +- Function "burn" (location: source ID 16, line 69, chars 2246-2455, hits: 0) +- Line (location: source ID 16, line 70, chars 2306-2348, hits: 0) +- Statement (location: source ID 16, line 70, chars 2306-2348, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 16, line 70, chars 2302-2425, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 16, line 70, chars 2302-2425, hits: 0) +- Line (location: source ID 16, line 71, chars 2364-2414, hits: 0) +- Statement (location: source ID 16, line 71, chars 2364-2414, hits: 0) +- Line (location: source ID 16, line 73, chars 2434-2448, hits: 0) +- Statement (location: source ID 16, line 73, chars 2434-2448, hits: 0) +- Function "safeBurn" (location: source ID 16, line 80, chars 2656-2928, hits: 0) +- Line (location: source ID 16, line 81, chars 2731-2770, hits: 0) +- Statement (location: source ID 16, line 81, chars 2731-2770, hits: 0) +- Statement (location: source ID 16, line 81, chars 2754-2770, hits: 0) +- Line (location: source ID 16, line 82, chars 2784-2805, hits: 0) +- Statement (location: source ID 16, line 82, chars 2784-2805, hits: 0) +- Branch (branch: 1, path: 0) (location: source ID 16, line 82, chars 2780-2898, hits: 0) +- Branch (branch: 1, path: 1) (location: source ID 16, line 82, chars 2780-2898, hits: 0) +- Line (location: source ID 16, line 83, chars 2821-2887, hits: 0) +- Statement (location: source ID 16, line 83, chars 2821-2887, hits: 0) +- Line (location: source ID 16, line 86, chars 2908-2921, hits: 0) +- Statement (location: source ID 16, line 86, chars 2908-2921, hits: 0) +- Function "mintBatchByQuantityThreshold" (location: source ID 16, line 92, chars 3053-3163, hits: 0) +- Line (location: source ID 16, line 93, chars 3141-3156, hits: 0) +- Statement (location: source ID 16, line 93, chars 3141-3156, hits: 0) +- Function "exists" (location: source ID 16, line 99, chars 3300-3408, hits: 0) +- Line (location: source ID 16, line 100, chars 3378-3401, hits: 0) +- Statement (location: source ID 16, line 100, chars 3378-3401, hits: 0) +- Function "balanceOf" (location: source ID 16, line 106, chars 3592-3765, hits: 0) +- Line (location: source ID 16, line 107, chars 3699-3758, hits: 0) +- Statement (location: source ID 16, line 107, chars 3699-3758, hits: 0) +- Function "totalSupply" (location: source ID 16, line 113, chars 3948-4105, hits: 0) +- Line (location: source ID 16, line 114, chars 4039-4098, hits: 0) +- Statement (location: source ID 16, line 114, chars 4039-4098, hits: 0) +- Function "ownerOf" (location: source ID 16, line 118, chars 4163-4423, hits: 0) +- Line (location: source ID 16, line 119, chars 4277-4317, hits: 0) +- Statement (location: source ID 16, line 119, chars 4277-4317, hits: 0) +- Branch (branch: 2, path: 0) (location: source ID 16, line 119, chars 4273-4374, hits: 0) +- Branch (branch: 2, path: 1) (location: source ID 16, line 119, chars 4273-4374, hits: 0) +- Line (location: source ID 16, line 120, chars 4333-4363, hits: 0) +- Statement (location: source ID 16, line 120, chars 4333-4363, hits: 0) +- Line (location: source ID 16, line 122, chars 4383-4416, hits: 0) +- Statement (location: source ID 16, line 122, chars 4383-4416, hits: 0) +- Function "tokenURI" (location: source ID 16, line 132, chars 4648-4803, hits: 0) +- Line (location: source ID 16, line 133, chars 4765-4796, hits: 0) +- Statement (location: source ID 16, line 133, chars 4765-4796, hits: 0) +- Function "name" (location: source ID 16, line 139, chars 4851-4976, hits: 0) +- Line (location: source ID 16, line 140, chars 4949-4969, hits: 0) +- Statement (location: source ID 16, line 140, chars 4949-4969, hits: 0) +- Function "symbol" (location: source ID 16, line 146, chars 5024-5153, hits: 0) +- Line (location: source ID 16, line 147, chars 5124-5146, hits: 0) +- Statement (location: source ID 16, line 147, chars 5124-5146, hits: 0) +- Function "supportsInterface" (location: source ID 16, line 153, chars 5201-5372, hits: 0) +- Line (location: source ID 16, line 154, chars 5321-5365, hits: 0) +- Statement (location: source ID 16, line 154, chars 5321-5365, hits: 0) +- Function "setApprovalForAll" (location: source ID 16, line 160, chars 5420-5591, hits: 0) +- Line (location: source ID 16, line 161, chars 5533-5584, hits: 0) +- Statement (location: source ID 16, line 161, chars 5533-5584, hits: 0) +- Function "safeTransferFrom" (location: source ID 16, line 167, chars 5639-5807, hits: 0) +- Line (location: source ID 16, line 168, chars 5761-5800, hits: 0) +- Statement (location: source ID 16, line 168, chars 5761-5800, hits: 0) +- Function "safeTransferFrom" (location: source ID 16, line 172, chars 5861-6243, hits: 0) +- Line (location: source ID 16, line 178, chars 6045-6085, hits: 0) +- Statement (location: source ID 16, line 178, chars 6045-6085, hits: 0) +- Branch (branch: 3, path: 0) (location: source ID 16, line 178, chars 6041-6168, hits: 0) +- Branch (branch: 3, path: 1) (location: source ID 16, line 178, chars 6041-6168, hits: 0) +- Line (location: source ID 16, line 179, chars 6101-6157, hits: 0) +- Statement (location: source ID 16, line 179, chars 6101-6157, hits: 0) +- Line (location: source ID 16, line 181, chars 6177-6236, hits: 0) +- Statement (location: source ID 16, line 181, chars 6177-6236, hits: 0) +- Function "isApprovedForAll" (location: source ID 16, line 185, chars 6297-6505, hits: 0) +- Line (location: source ID 16, line 189, chars 6451-6498, hits: 0) +- Statement (location: source ID 16, line 189, chars 6451-6498, hits: 0) +- Function "getApproved" (location: source ID 16, line 193, chars 6559-6831, hits: 0) +- Line (location: source ID 16, line 194, chars 6677-6717, hits: 0) +- Statement (location: source ID 16, line 194, chars 6677-6717, hits: 0) +- Branch (branch: 4, path: 0) (location: source ID 16, line 194, chars 6673-6778, hits: 0) +- Branch (branch: 4, path: 1) (location: source ID 16, line 194, chars 6673-6778, hits: 0) +- Line (location: source ID 16, line 195, chars 6733-6767, hits: 0) +- Statement (location: source ID 16, line 195, chars 6733-6767, hits: 0) +- Line (location: source ID 16, line 197, chars 6787-6824, hits: 0) +- Statement (location: source ID 16, line 197, chars 6787-6824, hits: 0) +- Function "approve" (location: source ID 16, line 201, chars 6885-7142, hits: 0) +- Line (location: source ID 16, line 202, chars 6988-7028, hits: 0) +- Statement (location: source ID 16, line 202, chars 6988-7028, hits: 0) +- Branch (branch: 5, path: 0) (location: source ID 16, line 202, chars 6984-7089, hits: 0) +- Branch (branch: 5, path: 1) (location: source ID 16, line 202, chars 6984-7089, hits: 0) +- Line (location: source ID 16, line 203, chars 7044-7078, hits: 0) +- Statement (location: source ID 16, line 203, chars 7044-7078, hits: 0) +- Line (location: source ID 16, line 205, chars 7098-7135, hits: 0) +- Statement (location: source ID 16, line 205, chars 7098-7135, hits: 0) +- Function "transferFrom" (location: source ID 16, line 209, chars 7196-7494, hits: 0) +- Line (location: source ID 16, line 210, chars 7318-7358, hits: 0) +- Statement (location: source ID 16, line 210, chars 7318-7358, hits: 0) +- Branch (branch: 6, path: 0) (location: source ID 16, line 210, chars 7314-7430, hits: 0) +- Branch (branch: 6, path: 1) (location: source ID 16, line 210, chars 7314-7430, hits: 0) +- Line (location: source ID 16, line 211, chars 7374-7419, hits: 0) +- Statement (location: source ID 16, line 211, chars 7374-7419, hits: 0) +- Line (location: source ID 16, line 213, chars 7439-7487, hits: 0) +- Statement (location: source ID 16, line 213, chars 7439-7487, hits: 0) +- Function "_mintByQuantity" (location: source ID 16, line 220, chars 7687-7797, hits: 0) +- Line (location: source ID 16, line 221, chars 7761-7790, hits: 0) +- Statement (location: source ID 16, line 221, chars 7761-7790, hits: 0) +- Function "_safeMintByQuantity" (location: source ID 16, line 228, chars 7995-8113, hits: 0) +- Line (location: source ID 16, line 229, chars 8073-8106, hits: 0) +- Statement (location: source ID 16, line 229, chars 8073-8106, hits: 0) +- Function "_mintBatchByQuantity" (location: source ID 16, line 235, chars 8272-8488, hits: 0) +- Line (location: source ID 16, line 236, chars 8349-8359, hits: 0) +- Statement (location: source ID 16, line 236, chars 8349-8359, hits: 0) +- Statement (location: source ID 16, line 236, chars 8361-8377, hits: 0) +- Statement (location: source ID 16, line 236, chars 8379-8382, hits: 0) +- Line (location: source ID 16, line 237, chars 8398-8424, hits: 0) +- Statement (location: source ID 16, line 237, chars 8398-8424, hits: 0) +- Line (location: source ID 16, line 238, chars 8438-8471, hits: 0) +- Statement (location: source ID 16, line 238, chars 8438-8471, hits: 0) +- Function "_safeMintBatchByQuantity" (location: source ID 16, line 245, chars 8652-8876, hits: 0) +- Line (location: source ID 16, line 246, chars 8733-8743, hits: 0) +- Statement (location: source ID 16, line 246, chars 8733-8743, hits: 0) +- Statement (location: source ID 16, line 246, chars 8745-8761, hits: 0) +- Statement (location: source ID 16, line 246, chars 8763-8766, hits: 0) +- Line (location: source ID 16, line 247, chars 8782-8808, hits: 0) +- Statement (location: source ID 16, line 247, chars 8782-8808, hits: 0) +- Line (location: source ID 16, line 248, chars 8822-8859, hits: 0) +- Statement (location: source ID 16, line 248, chars 8822-8859, hits: 0) +- Function "_mintByID" (location: source ID 16, line 257, chars 9087-9471, hits: 0) +- Line (location: source ID 16, line 258, chars 9158-9199, hits: 0) +- Statement (location: source ID 16, line 258, chars 9158-9199, hits: 0) +- Branch (branch: 7, path: 0) (location: source ID 16, line 258, chars 9154-9274, hits: 0) +- Branch (branch: 7, path: 1) (location: source ID 16, line 258, chars 9154-9274, hits: 0) +- Line (location: source ID 16, line 259, chars 9215-9263, hits: 0) +- Statement (location: source ID 16, line 259, chars 9215-9263, hits: 0) +- Line (location: source ID 16, line 262, chars 9288-9314, hits: 0) +- Statement (location: source ID 16, line 262, chars 9288-9314, hits: 0) +- Branch (branch: 8, path: 0) (location: source ID 16, line 262, chars 9284-9391, hits: 0) +- Branch (branch: 8, path: 1) (location: source ID 16, line 262, chars 9284-9391, hits: 0) +- Line (location: source ID 16, line 263, chars 9330-9380, hits: 0) +- Statement (location: source ID 16, line 263, chars 9330-9380, hits: 0) +- Line (location: source ID 16, line 266, chars 9409-9429, hits: 0) +- Statement (location: source ID 16, line 266, chars 9409-9429, hits: 0) +- Line (location: source ID 16, line 267, chars 9439-9464, hits: 0) +- Statement (location: source ID 16, line 267, chars 9439-9464, hits: 0) +- Function "_safeMintByID" (location: source ID 16, line 274, chars 9676-10064, hits: 0) +- Line (location: source ID 16, line 275, chars 9751-9792, hits: 0) +- Statement (location: source ID 16, line 275, chars 9751-9792, hits: 0) +- Branch (branch: 9, path: 0) (location: source ID 16, line 275, chars 9747-9867, hits: 0) +- Branch (branch: 9, path: 1) (location: source ID 16, line 275, chars 9747-9867, hits: 0) +- Line (location: source ID 16, line 276, chars 9808-9856, hits: 0) +- Statement (location: source ID 16, line 276, chars 9808-9856, hits: 0) +- Line (location: source ID 16, line 279, chars 9881-9907, hits: 0) +- Statement (location: source ID 16, line 279, chars 9881-9907, hits: 0) +- Branch (branch: 10, path: 0) (location: source ID 16, line 279, chars 9877-9984, hits: 0) +- Branch (branch: 10, path: 1) (location: source ID 16, line 279, chars 9877-9984, hits: 0) +- Line (location: source ID 16, line 280, chars 9923-9973, hits: 0) +- Statement (location: source ID 16, line 280, chars 9923-9973, hits: 0) +- Line (location: source ID 16, line 283, chars 9994-10014, hits: 0) +- Statement (location: source ID 16, line 283, chars 9994-10014, hits: 0) +- Line (location: source ID 16, line 284, chars 10024-10053, hits: 0) +- Statement (location: source ID 16, line 284, chars 10024-10053, hits: 0) +- Function "_mintBatchByID" (location: source ID 16, line 291, chars 10252-10436, hits: 0) +- Line (location: source ID 16, line 292, chars 10341-10351, hits: 0) +- Statement (location: source ID 16, line 292, chars 10341-10351, hits: 0) +- Statement (location: source ID 16, line 292, chars 10353-10372, hits: 0) +- Statement (location: source ID 16, line 292, chars 10374-10377, hits: 0) +- Line (location: source ID 16, line 293, chars 10393-10419, hits: 0) +- Statement (location: source ID 16, line 293, chars 10393-10419, hits: 0) +- Function "_safeMintBatchByID" (location: source ID 16, line 301, chars 10630-10822, hits: 0) +- Line (location: source ID 16, line 302, chars 10723-10733, hits: 0) +- Statement (location: source ID 16, line 302, chars 10723-10733, hits: 0) +- Statement (location: source ID 16, line 302, chars 10735-10754, hits: 0) +- Statement (location: source ID 16, line 302, chars 10756-10759, hits: 0) +- Line (location: source ID 16, line 303, chars 10775-10805, hits: 0) +- Statement (location: source ID 16, line 303, chars 10775-10805, hits: 0) +- Function "_mintBatchByIDToMultiple" (location: source ID 16, line 310, chars 10970-11193, hits: 0) +- Line (location: source ID 16, line 311, chars 11053-11063, hits: 0) +- Statement (location: source ID 16, line 311, chars 11053-11063, hits: 0) +- Statement (location: source ID 16, line 311, chars 11065-11081, hits: 0) +- Statement (location: source ID 16, line 311, chars 11083-11086, hits: 0) +- Line (location: source ID 16, line 312, chars 11102-11130, hits: 0) +- Statement (location: source ID 16, line 312, chars 11102-11130, hits: 0) +- Line (location: source ID 16, line 313, chars 11144-11176, hits: 0) +- Statement (location: source ID 16, line 313, chars 11144-11176, hits: 0) +- Function "_safeMintBatchByIDToMultiple" (location: source ID 16, line 320, chars 11346-11577, hits: 0) +- Line (location: source ID 16, line 321, chars 11433-11443, hits: 0) +- Statement (location: source ID 16, line 321, chars 11433-11443, hits: 0) +- Statement (location: source ID 16, line 321, chars 11445-11461, hits: 0) +- Statement (location: source ID 16, line 321, chars 11463-11466, hits: 0) +- Line (location: source ID 16, line 322, chars 11482-11510, hits: 0) +- Statement (location: source ID 16, line 322, chars 11482-11510, hits: 0) +- Line (location: source ID 16, line 323, chars 11524-11560, hits: 0) +- Statement (location: source ID 16, line 323, chars 11524-11560, hits: 0) +- Function "_safeBurnBatch" (location: source ID 16, line 330, chars 11741-12031, hits: 0) +- Line (location: source ID 16, line 331, chars 11814-11824, hits: 0) +- Statement (location: source ID 16, line 331, chars 11814-11824, hits: 0) +- Statement (location: source ID 16, line 331, chars 11826-11842, hits: 0) +- Statement (location: source ID 16, line 331, chars 11844-11847, hits: 0) +- Line (location: source ID 16, line 332, chars 11863-11891, hits: 0) +- Statement (location: source ID 16, line 332, chars 11863-11891, hits: 0) +- Line (location: source ID 16, line 333, chars 11910-11920, hits: 0) +- Statement (location: source ID 16, line 333, chars 11910-11920, hits: 0) +- Statement (location: source ID 16, line 333, chars 11922-11943, hits: 0) +- Statement (location: source ID 16, line 333, chars 11945-11948, hits: 0) +- Line (location: source ID 16, line 334, chars 11968-12000, hits: 0) +- Statement (location: source ID 16, line 334, chars 11968-12000, hits: 0) +- Function "_transfer" (location: source ID 16, line 340, chars 12085-12383, hits: 0) +- Line (location: source ID 16, line 341, chars 12206-12246, hits: 0) +- Statement (location: source ID 16, line 341, chars 12206-12246, hits: 0) +- Branch (branch: 11, path: 0) (location: source ID 16, line 341, chars 12202-12308, hits: 0) +- Branch (branch: 11, path: 1) (location: source ID 16, line 341, chars 12202-12308, hits: 0) +- Line (location: source ID 16, line 342, chars 12262-12297, hits: 0) +- Statement (location: source ID 16, line 342, chars 12262-12297, hits: 0) +- Line (location: source ID 16, line 344, chars 12328-12366, hits: 0) +- Statement (location: source ID 16, line 344, chars 12328-12366, hits: 0) +- Function "_burn" (location: source ID 16, line 352, chars 12644-12974, hits: 0) +- Line (location: source ID 16, line 353, chars 12743-12783, hits: 0) +- Statement (location: source ID 16, line 353, chars 12743-12783, hits: 0) +- Branch (branch: 12, path: 0) (location: source ID 16, line 353, chars 12739-12905, hits: 0) +- Branch (branch: 12, path: 1) (location: source ID 16, line 353, chars 12739-12905, hits: 0) +- Line (location: source ID 16, line 354, chars 12799-12820, hits: 0) +- Statement (location: source ID 16, line 354, chars 12799-12820, hits: 0) +- Line (location: source ID 16, line 355, chars 12834-12860, hits: 0) +- Statement (location: source ID 16, line 355, chars 12834-12860, hits: 0) +- Line (location: source ID 16, line 356, chars 12874-12894, hits: 0) +- Statement (location: source ID 16, line 356, chars 12874-12894, hits: 0) +- Line (location: source ID 16, line 358, chars 12925-12957, hits: 0) +- Statement (location: source ID 16, line 358, chars 12925-12957, hits: 0) +- Function "_approve" (location: source ID 16, line 363, chars 13028-13290, hits: 0) +- Line (location: source ID 16, line 364, chars 13134-13174, hits: 0) +- Statement (location: source ID 16, line 364, chars 13134-13174, hits: 0) +- Branch (branch: 13, path: 0) (location: source ID 16, line 364, chars 13130-13236, hits: 0) +- Branch (branch: 13, path: 1) (location: source ID 16, line 364, chars 13130-13236, hits: 0) +- Line (location: source ID 16, line 365, chars 13190-13225, hits: 0) +- Statement (location: source ID 16, line 365, chars 13190-13225, hits: 0) +- Line (location: source ID 16, line 367, chars 13245-13283, hits: 0) +- Statement (location: source ID 16, line 367, chars 13245-13283, hits: 0) +- Function "_safeTransfer" (location: source ID 16, line 371, chars 13344-13719, hits: 0) +- Line (location: source ID 16, line 377, chars 13527-13567, hits: 0) +- Statement (location: source ID 16, line 377, chars 13527-13567, hits: 0) +- Branch (branch: 14, path: 0) (location: source ID 16, line 377, chars 13523-13647, hits: 0) +- Branch (branch: 14, path: 1) (location: source ID 16, line 377, chars 13523-13647, hits: 0) +- Line (location: source ID 16, line 378, chars 13583-13636, hits: 0) +- Statement (location: source ID 16, line 378, chars 13583-13636, hits: 0) +- Line (location: source ID 16, line 380, chars 13656-13712, hits: 0) +- Statement (location: source ID 16, line 380, chars 13656-13712, hits: 0) +- Function "_safeMint" (location: source ID 16, line 391, chars 14178-14316, hits: 0) +- Line (location: source ID 16, line 392, chars 14281-14309, hits: 0) +- Statement (location: source ID 16, line 392, chars 14281-14309, hits: 0) +- Function "_safeMint" (location: source ID 16, line 398, chars 14511-14676, hits: 0) +- Line (location: source ID 16, line 399, chars 14634-14669, hits: 0) +- Statement (location: source ID 16, line 399, chars 14634-14669, hits: 0) +- Function "_mint" (location: source ID 16, line 405, chars 14867-14997, hits: 0) +- Line (location: source ID 16, line 406, chars 14966-14990, hits: 0) +- Statement (location: source ID 16, line 406, chars 14966-14990, hits: 0) +- Function "_isApprovedOrOwner" (location: source ID 16, line 410, chars 15051-15400, hits: 0) +- Line (location: source ID 16, line 414, chars 15214-15254, hits: 0) +- Statement (location: source ID 16, line 414, chars 15214-15254, hits: 0) +- Branch (branch: 15, path: 0) (location: source ID 16, line 414, chars 15210-15331, hits: 0) +- Branch (branch: 15, path: 1) (location: source ID 16, line 414, chars 15210-15331, hits: 0) +- Line (location: source ID 16, line 415, chars 15270-15320, hits: 0) +- Statement (location: source ID 16, line 415, chars 15270-15320, hits: 0) +- Line (location: source ID 16, line 417, chars 15340-15393, hits: 0) +- Statement (location: source ID 16, line 417, chars 15340-15393, hits: 0) +- Function "_exists" (location: source ID 16, line 421, chars 15454-15777, hits: 0) +- Line (location: source ID 16, line 422, chars 15575-15615, hits: 0) +- Statement (location: source ID 16, line 422, chars 15575-15615, hits: 0) +- Branch (branch: 16, path: 0) (location: source ID 16, line 422, chars 15571-15720, hits: 0) +- Branch (branch: 16, path: 1) (location: source ID 16, line 422, chars 15571-15720, hits: 0) +- Line (location: source ID 16, line 423, chars 15631-15709, hits: 0) +- Statement (location: source ID 16, line 423, chars 15631-15709, hits: 0) +- Line (location: source ID 16, line 425, chars 15729-15770, hits: 0) +- Statement (location: source ID 16, line 425, chars 15729-15770, hits: 0) +- Function "_startTokenId" (location: source ID 16, line 429, chars 15876-16015, hits: 0) +- Line (location: source ID 16, line 430, chars 15971-16008, hits: 0) +- Statement (location: source ID 16, line 430, chars 15971-16008, hits: 0) +- Function "_baseURI" (location: source ID 16, line 436, chars 16063-16198, hits: 0) +- Line (location: source ID 16, line 437, chars 16167-16191, hits: 0) +- Statement (location: source ID 16, line 437, chars 16167-16191, hits: 0) + +Uncovered for contracts/token/erc721/abstract/ERC721HybridPermit.sol: +- Function "permit" (location: source ID 17, line 46, chars 1738-1899, hits: 0) +- Line (location: source ID 17, line 47, chars 1852-1892, hits: 0) +- Statement (location: source ID 17, line 47, chars 1852-1892, hits: 0) +- Function "nonces" (location: source ID 17, line 55, chars 2107-2212, hits: 0) +- Line (location: source ID 17, line 56, chars 2182-2205, hits: 0) +- Statement (location: source ID 17, line 56, chars 2182-2205, hits: 0) +- Function "DOMAIN_SEPARATOR" (location: source ID 17, line 63, chars 2395-2508, hits: 0) +- Line (location: source ID 17, line 64, chars 2474-2501, hits: 0) +- Statement (location: source ID 17, line 64, chars 2474-2501, hits: 0) +- Function "supportsInterface" (location: source ID 17, line 72, chars 2819-3076, hits: 0) +- Line (location: source ID 17, line 73, chars 2943-3069, hits: 0) +- Statement (location: source ID 17, line 73, chars 2943-3069, hits: 0) +- Function "_transfer" (location: source ID 17, line 84, chars 3419-3600, hits: 0) +- Line (location: source ID 17, line 85, chars 3531-3549, hits: 0) +- Statement (location: source ID 17, line 85, chars 3531-3549, hits: 0) +- Line (location: source ID 17, line 86, chars 3559-3593, hits: 0) +- Statement (location: source ID 17, line 86, chars 3559-3593, hits: 0) +- Function "_permit" (location: source ID 17, line 89, chars 3606-4760, hits: 0) +- Line (location: source ID 17, line 90, chars 3724-3750, hits: 0) +- Statement (location: source ID 17, line 90, chars 3724-3750, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 17, line 90, chars 3720-3799, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 17, line 90, chars 3720-3799, hits: 0) +- Line (location: source ID 17, line 91, chars 3766-3788, hits: 0) +- Statement (location: source ID 17, line 91, chars 3766-3788, hits: 0) +- Line (location: source ID 17, line 94, chars 3809-3872, hits: 0) +- Statement (location: source ID 17, line 94, chars 3809-3872, hits: 0) +- Statement (location: source ID 17, line 94, chars 3826-3872, hits: 0) +- Line (location: source ID 17, line 97, chars 3941-3996, hits: 0) +- Statement (location: source ID 17, line 97, chars 3941-3996, hits: 0) +- Branch (branch: 1, path: 0) (location: source ID 17, line 97, chars 3937-4069, hits: 0) +- Branch (branch: 1, path: 1) (location: source ID 17, line 97, chars 3937-4069, hits: 0) +- Line (location: source ID 17, line 98, chars 4012-4038, hits: 0) +- Statement (location: source ID 17, line 98, chars 4012-4038, hits: 0) +- Line (location: source ID 17, line 99, chars 4052-4059, hits: 0) +- Statement (location: source ID 17, line 99, chars 4052-4059, hits: 0) +- Line (location: source ID 17, line 102, chars 4079-4102, hits: 0) +- Statement (location: source ID 17, line 102, chars 4079-4102, hits: 0) +- Line (location: source ID 17, line 105, chars 4153-4169, hits: 0) +- Statement (location: source ID 17, line 105, chars 4153-4169, hits: 0) +- Branch (branch: 2, path: 0) (location: source ID 17, line 105, chars 4149-4399, hits: 0) +- Branch (branch: 2, path: 1) (location: source ID 17, line 105, chars 4149-4399, hits: 0) +- Line (location: source ID 17, line 107, chars 4212-4388, hits: 0) +- Statement (location: source ID 17, line 107, chars 4212-4388, hits: 0) +- Line (location: source ID 17, line 112, chars 4409-4425, hits: 0) +- Statement (location: source ID 17, line 112, chars 4409-4425, hits: 0) +- Branch (branch: 3, path: 0) (location: source ID 17, line 112, chars 4405-4529, hits: 0) +- Branch (branch: 3, path: 1) (location: source ID 17, line 112, chars 4405-4529, hits: 0) +- Line (location: source ID 17, line 114, chars 4474-4518, hits: 0) +- Statement (location: source ID 17, line 114, chars 4474-4518, hits: 0) +- Line (location: source ID 17, line 116, chars 4549-4574, hits: 0) +- Statement (location: source ID 17, line 116, chars 4549-4574, hits: 0) +- Line (location: source ID 17, line 119, chars 4599-4645, hits: 0) +- Statement (location: source ID 17, line 119, chars 4599-4645, hits: 0) +- Branch (branch: 4, path: 0) (location: source ID 17, line 119, chars 4595-4698, hits: 0) +- Branch (branch: 4, path: 1) (location: source ID 17, line 119, chars 4595-4698, hits: 0) +- Line (location: source ID 17, line 120, chars 4661-4687, hits: 0) +- Statement (location: source ID 17, line 120, chars 4661-4687, hits: 0) +- Line (location: source ID 17, line 122, chars 4718-4743, hits: 0) +- Statement (location: source ID 17, line 122, chars 4718-4743, hits: 0) +- Function "_buildPermitDigest" (location: source ID 17, line 133, chars 5176-5415, hits: 0) +- Line (location: source ID 17, line 134, chars 5298-5408, hits: 0) +- Statement (location: source ID 17, line 134, chars 5298-5408, hits: 0) +- Function "_isValidEOASignature" (location: source ID 17, line 143, chars 5726-5927, hits: 0) +- Line (location: source ID 17, line 144, chars 5836-5920, hits: 0) +- Statement (location: source ID 17, line 144, chars 5836-5920, hits: 0) +- Function "_isValidERC1271Signature" (location: source ID 17, line 154, chars 6300-6825, hits: 0) +- Line (location: source ID 17, line 155, chars 6423-6571, hits: 0) +- Statement (location: source ID 17, line 155, chars 6423-6571, hits: 0) +- Statement (location: source ID 17, line 155, chars 6458-6571, hits: 0) +- Line (location: source ID 17, line 159, chars 6586-6613, hits: 0) +- Statement (location: source ID 17, line 159, chars 6586-6613, hits: 0) +- Branch (branch: 5, path: 0) (location: source ID 17, line 159, chars 6582-6796, hits: 0) +- Branch (branch: 5, path: 1) (location: source ID 17, line 159, chars 6582-6796, hits: 0) +- Line (location: source ID 17, line 160, chars 6629-6674, hits: 0) +- Statement (location: source ID 17, line 160, chars 6629-6674, hits: 0) +- Statement (location: source ID 17, line 160, chars 6649-6674, hits: 0) +- Line (location: source ID 17, line 161, chars 6692-6740, hits: 0) +- Statement (location: source ID 17, line 161, chars 6692-6740, hits: 0) +- Branch (branch: 6, path: 0) (location: source ID 17, line 161, chars 6688-6786, hits: 0) +- Branch (branch: 6, path: 1) (location: source ID 17, line 161, chars 6688-6786, hits: 0) +- Line (location: source ID 17, line 162, chars 6760-6771, hits: 0) +- Statement (location: source ID 17, line 162, chars 6760-6771, hits: 0) +- Line (location: source ID 17, line 166, chars 6806-6818, hits: 0) +- Statement (location: source ID 17, line 166, chars 6806-6818, hits: 0) + +Uncovered for contracts/token/erc721/abstract/ERC721Permit.sol: +- Function "permit" (location: source ID 18, line 52, chars 1866-2065, hits: 0) +- Line (location: source ID 18, line 58, chars 2018-2058, hits: 0) +- Statement (location: source ID 18, line 58, chars 2018-2058, hits: 0) +- Function "nonces" (location: source ID 18, line 66, chars 2273-2392, hits: 0) +- Line (location: source ID 18, line 69, chars 2362-2385, hits: 0) +- Statement (location: source ID 18, line 69, chars 2362-2385, hits: 0) +- Function "DOMAIN_SEPARATOR" (location: source ID 18, line 76, chars 2575-2688, hits: 0) +- Line (location: source ID 18, line 77, chars 2654-2681, hits: 0) +- Statement (location: source ID 18, line 77, chars 2654-2681, hits: 0) +- Function "supportsInterface" (location: source ID 18, line 85, chars 2999-3269, hits: 0) +- Line (location: source ID 18, line 92, chars 3148-3262, hits: 0) +- Statement (location: source ID 18, line 92, chars 3148-3262, hits: 0) +- Function "_transfer" (location: source ID 18, line 103, chars 3612-3816, hits: 0) +- Line (location: source ID 18, line 108, chars 3747-3765, hits: 0) +- Statement (location: source ID 18, line 108, chars 3747-3765, hits: 0) +- Line (location: source ID 18, line 109, chars 3775-3809, hits: 0) +- Statement (location: source ID 18, line 109, chars 3775-3809, hits: 0) +- Function "_permit" (location: source ID 18, line 112, chars 3822-5007, hits: 0) +- Line (location: source ID 18, line 118, chars 3978-4004, hits: 0) +- Statement (location: source ID 18, line 118, chars 3978-4004, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 18, line 118, chars 3974-4053, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 18, line 118, chars 3974-4053, hits: 0) +- Line (location: source ID 18, line 119, chars 4020-4042, hits: 0) +- Statement (location: source ID 18, line 119, chars 4020-4042, hits: 0) +- Line (location: source ID 18, line 122, chars 4063-4126, hits: 0) +- Statement (location: source ID 18, line 122, chars 4063-4126, hits: 0) +- Statement (location: source ID 18, line 122, chars 4080-4126, hits: 0) +- Line (location: source ID 18, line 125, chars 4188-4243, hits: 0) +- Statement (location: source ID 18, line 125, chars 4188-4243, hits: 0) +- Branch (branch: 1, path: 0) (location: source ID 18, line 125, chars 4184-4316, hits: 0) +- Branch (branch: 1, path: 1) (location: source ID 18, line 125, chars 4184-4316, hits: 0) +- Line (location: source ID 18, line 126, chars 4259-4285, hits: 0) +- Statement (location: source ID 18, line 126, chars 4259-4285, hits: 0) +- Line (location: source ID 18, line 127, chars 4299-4306, hits: 0) +- Statement (location: source ID 18, line 127, chars 4299-4306, hits: 0) +- Line (location: source ID 18, line 130, chars 4326-4349, hits: 0) +- Statement (location: source ID 18, line 130, chars 4326-4349, hits: 0) +- Line (location: source ID 18, line 133, chars 4400-4416, hits: 0) +- Statement (location: source ID 18, line 133, chars 4400-4416, hits: 0) +- Branch (branch: 2, path: 0) (location: source ID 18, line 133, chars 4396-4646, hits: 0) +- Branch (branch: 2, path: 1) (location: source ID 18, line 133, chars 4396-4646, hits: 0) +- Line (location: source ID 18, line 135, chars 4459-4635, hits: 0) +- Statement (location: source ID 18, line 135, chars 4459-4635, hits: 0) +- Line (location: source ID 18, line 140, chars 4656-4672, hits: 0) +- Statement (location: source ID 18, line 140, chars 4656-4672, hits: 0) +- Branch (branch: 3, path: 0) (location: source ID 18, line 140, chars 4652-4776, hits: 0) +- Branch (branch: 3, path: 1) (location: source ID 18, line 140, chars 4652-4776, hits: 0) +- Line (location: source ID 18, line 142, chars 4721-4765, hits: 0) +- Statement (location: source ID 18, line 142, chars 4721-4765, hits: 0) +- Line (location: source ID 18, line 144, chars 4796-4821, hits: 0) +- Statement (location: source ID 18, line 144, chars 4796-4821, hits: 0) +- Line (location: source ID 18, line 147, chars 4846-4892, hits: 0) +- Statement (location: source ID 18, line 147, chars 4846-4892, hits: 0) +- Branch (branch: 4, path: 0) (location: source ID 18, line 147, chars 4842-4945, hits: 0) +- Branch (branch: 4, path: 1) (location: source ID 18, line 147, chars 4842-4945, hits: 0) +- Line (location: source ID 18, line 148, chars 4908-4934, hits: 0) +- Statement (location: source ID 18, line 148, chars 4908-4934, hits: 0) +- Line (location: source ID 18, line 150, chars 4965-4990, hits: 0) +- Statement (location: source ID 18, line 150, chars 4965-4990, hits: 0) +- Function "_buildPermitDigest" (location: source ID 18, line 161, chars 5423-5862, hits: 0) +- Line (location: source ID 18, line 166, chars 5575-5855, hits: 0) +- Statement (location: source ID 18, line 166, chars 5575-5855, hits: 0) +- Function "_isValidEOASignature" (location: source ID 18, line 185, chars 6173-6373, hits: 0) +- Line (location: source ID 18, line 186, chars 6282-6366, hits: 0) +- Statement (location: source ID 18, line 186, chars 6282-6366, hits: 0) +- Function "_isValidERC1271Signature" (location: source ID 18, line 196, chars 6746-7332, hits: 0) +- Line (location: source ID 18, line 197, chars 6868-7078, hits: 0) +- Statement (location: source ID 18, line 197, chars 6868-7078, hits: 0) +- Statement (location: source ID 18, line 197, chars 6903-7078, hits: 0) +- Line (location: source ID 18, line 205, chars 7093-7120, hits: 0) +- Statement (location: source ID 18, line 205, chars 7093-7120, hits: 0) +- Branch (branch: 5, path: 0) (location: source ID 18, line 205, chars 7089-7303, hits: 0) +- Branch (branch: 5, path: 1) (location: source ID 18, line 205, chars 7089-7303, hits: 0) +- Line (location: source ID 18, line 206, chars 7136-7181, hits: 0) +- Statement (location: source ID 18, line 206, chars 7136-7181, hits: 0) +- Statement (location: source ID 18, line 206, chars 7156-7181, hits: 0) +- Line (location: source ID 18, line 207, chars 7199-7247, hits: 0) +- Statement (location: source ID 18, line 207, chars 7199-7247, hits: 0) +- Branch (branch: 6, path: 0) (location: source ID 18, line 207, chars 7195-7293, hits: 0) +- Branch (branch: 6, path: 1) (location: source ID 18, line 207, chars 7195-7293, hits: 0) +- Line (location: source ID 18, line 208, chars 7267-7278, hits: 0) +- Statement (location: source ID 18, line 208, chars 7267-7278, hits: 0) +- Line (location: source ID 18, line 212, chars 7313-7325, hits: 0) +- Statement (location: source ID 18, line 212, chars 7313-7325, hits: 0) + +Uncovered for contracts/token/erc721/abstract/ImmutableERC721Base.sol: +- Function "setDefaultRoyaltyReceiver" (location: source ID 20, line 100, chars 3242-3411, hits: 0) +- Line (location: source ID 20, line 101, chars 3362-3404, hits: 0) +- Statement (location: source ID 20, line 101, chars 3362-3404, hits: 0) +- Function "setNFTRoyaltyReceiver" (location: source ID 20, line 110, chars 3770-3982, hits: 0) +- Line (location: source ID 20, line 115, chars 3926-3975, hits: 0) +- Statement (location: source ID 20, line 115, chars 3926-3975, hits: 0) +- Function "setNFTRoyaltyReceiverBatch" (location: source ID 20, line 124, chars 4350-4650, hits: 0) +- Line (location: source ID 20, line 129, chars 4528-4538, hits: 0) +- Statement (location: source ID 20, line 129, chars 4528-4538, hits: 0) +- Statement (location: source ID 20, line 129, chars 4540-4559, hits: 0) +- Statement (location: source ID 20, line 129, chars 4561-4564, hits: 0) +- Line (location: source ID 20, line 130, chars 4580-4633, hits: 0) +- Statement (location: source ID 20, line 130, chars 4580-4633, hits: 0) +- Function "burn" (location: source ID 20, line 138, chars 4818-4977, hits: 0) +- Line (location: source ID 20, line 139, chars 4891-4910, hits: 0) +- Statement (location: source ID 20, line 139, chars 4891-4910, hits: 0) +- Line (location: source ID 20, line 140, chars 4920-4946, hits: 0) +- Statement (location: source ID 20, line 140, chars 4920-4946, hits: 0) +- Line (location: source ID 20, line 141, chars 4956-4970, hits: 0) +- Statement (location: source ID 20, line 141, chars 4956-4970, hits: 0) +- Function "safeBurn" (location: source ID 20, line 148, chars 5167-5439, hits: 0) +- Line (location: source ID 20, line 149, chars 5242-5281, hits: 0) +- Statement (location: source ID 20, line 149, chars 5242-5281, hits: 0) +- Statement (location: source ID 20, line 149, chars 5265-5281, hits: 0) +- Line (location: source ID 20, line 150, chars 5295-5316, hits: 0) +- Statement (location: source ID 20, line 150, chars 5295-5316, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 20, line 150, chars 5291-5409, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 20, line 150, chars 5291-5409, hits: 0) +- Line (location: source ID 20, line 151, chars 5332-5398, hits: 0) +- Statement (location: source ID 20, line 151, chars 5332-5398, hits: 0) +- Line (location: source ID 20, line 154, chars 5419-5432, hits: 0) +- Statement (location: source ID 20, line 154, chars 5419-5432, hits: 0) +- Function "_safeBurnBatch" (location: source ID 20, line 160, chars 5634-5930, hits: 0) +- Line (location: source ID 20, line 161, chars 5713-5723, hits: 0) +- Statement (location: source ID 20, line 161, chars 5713-5723, hits: 0) +- Statement (location: source ID 20, line 161, chars 5725-5741, hits: 0) +- Statement (location: source ID 20, line 161, chars 5743-5746, hits: 0) +- Line (location: source ID 20, line 162, chars 5762-5790, hits: 0) +- Statement (location: source ID 20, line 162, chars 5762-5790, hits: 0) +- Line (location: source ID 20, line 163, chars 5809-5819, hits: 0) +- Statement (location: source ID 20, line 163, chars 5809-5819, hits: 0) +- Statement (location: source ID 20, line 163, chars 5821-5842, hits: 0) +- Statement (location: source ID 20, line 163, chars 5844-5847, hits: 0) +- Line (location: source ID 20, line 164, chars 5867-5899, hits: 0) +- Statement (location: source ID 20, line 164, chars 5867-5899, hits: 0) +- Function "setBaseURI" (location: source ID 20, line 173, chars 6087-6202, hits: 0) +- Line (location: source ID 20, line 174, chars 6177-6195, hits: 0) +- Statement (location: source ID 20, line 174, chars 6177-6195, hits: 0) +- Function "setContractURI" (location: source ID 20, line 181, chars 6367-6498, hits: 0) +- Line (location: source ID 20, line 182, chars 6465-6491, hits: 0) +- Statement (location: source ID 20, line 182, chars 6465-6491, hits: 0) +- Function "setApprovalForAll" (location: source ID 20, line 189, chars 6610-6781, hits: 0) +- Line (location: source ID 20, line 190, chars 6731-6774, hits: 0) +- Statement (location: source ID 20, line 190, chars 6731-6774, hits: 0) +- Function "supportsInterface" (location: source ID 20, line 196, chars 6907-7191, hits: 0) +- Line (location: source ID 20, line 205, chars 7141-7184, hits: 0) +- Statement (location: source ID 20, line 205, chars 7141-7184, hits: 0) +- Function "totalSupply" (location: source ID 20, line 209, chars 7261-7358, hits: 0) +- Line (location: source ID 20, line 210, chars 7332-7351, hits: 0) +- Statement (location: source ID 20, line 210, chars 7332-7351, hits: 0) +- Function "_approve" (location: source ID 20, line 217, chars 7472-7610, hits: 0) +- Line (location: source ID 20, line 218, chars 7576-7603, hits: 0) +- Statement (location: source ID 20, line 218, chars 7576-7603, hits: 0) +- Function "_transfer" (location: source ID 20, line 225, chars 7739-7941, hits: 0) +- Line (location: source ID 20, line 230, chars 7900-7934, hits: 0) +- Statement (location: source ID 20, line 230, chars 7900-7934, hits: 0) +- Function "_batchMint" (location: source ID 20, line 239, chars 8219-8622, hits: 0) +- Line (location: source ID 20, line 240, chars 8291-8319, hits: 0) +- Statement (location: source ID 20, line 240, chars 8291-8319, hits: 0) +- Branch (branch: 1, path: 0) (location: source ID 20, line 240, chars 8287-8393, hits: 0) +- Branch (branch: 1, path: 1) (location: source ID 20, line 240, chars 8287-8393, hits: 0) +- Line (location: source ID 20, line 241, chars 8335-8382, hits: 0) +- Statement (location: source ID 20, line 241, chars 8335-8382, hits: 0) +- Line (location: source ID 20, line 244, chars 8411-8468, hits: 0) +- Statement (location: source ID 20, line 244, chars 8411-8468, hits: 0) +- Line (location: source ID 20, line 245, chars 8483-8496, hits: 0) +- Statement (location: source ID 20, line 245, chars 8483-8496, hits: 0) +- Statement (location: source ID 20, line 245, chars 8498-8529, hits: 0) +- Statement (location: source ID 20, line 245, chars 8531-8534, hits: 0) +- Line (location: source ID 20, line 246, chars 8550-8596, hits: 0) +- Statement (location: source ID 20, line 246, chars 8550-8596, hits: 0) +- Function "_safeBatchMint" (location: source ID 20, line 255, chars 8863-9252, hits: 0) +- Line (location: source ID 20, line 256, chars 8939-8967, hits: 0) +- Statement (location: source ID 20, line 256, chars 8939-8967, hits: 0) +- Branch (branch: 2, path: 0) (location: source ID 20, line 256, chars 8935-9041, hits: 0) +- Branch (branch: 2, path: 1) (location: source ID 20, line 256, chars 8935-9041, hits: 0) +- Line (location: source ID 20, line 257, chars 8983-9030, hits: 0) +- Statement (location: source ID 20, line 257, chars 8983-9030, hits: 0) +- Line (location: source ID 20, line 259, chars 9055-9064, hits: 0) +- Statement (location: source ID 20, line 259, chars 9055-9064, hits: 0) +- Statement (location: source ID 20, line 259, chars 9066-9097, hits: 0) +- Statement (location: source ID 20, line 259, chars 9099-9102, hits: 0) +- Line (location: source ID 20, line 260, chars 9118-9168, hits: 0) +- Statement (location: source ID 20, line 260, chars 9118-9168, hits: 0) +- Line (location: source ID 20, line 262, chars 9188-9245, hits: 0) +- Statement (location: source ID 20, line 262, chars 9188-9245, hits: 0) +- Function "_mint" (location: source ID 20, line 270, chars 9460-9687, hits: 0) +- Line (location: source ID 20, line 271, chars 9544-9570, hits: 0) +- Statement (location: source ID 20, line 271, chars 9544-9570, hits: 0) +- Branch (branch: 3, path: 0) (location: source ID 20, line 271, chars 9540-9647, hits: 0) +- Branch (branch: 3, path: 1) (location: source ID 20, line 271, chars 9540-9647, hits: 0) +- Line (location: source ID 20, line 272, chars 9586-9636, hits: 0) +- Statement (location: source ID 20, line 272, chars 9586-9636, hits: 0) +- Line (location: source ID 20, line 274, chars 9656-9680, hits: 0) +- Statement (location: source ID 20, line 274, chars 9656-9680, hits: 0) +- Function "_safeMint" (location: source ID 20, line 282, chars 9904-10139, hits: 0) +- Line (location: source ID 20, line 283, chars 9992-10018, hits: 0) +- Statement (location: source ID 20, line 283, chars 9992-10018, hits: 0) +- Branch (branch: 4, path: 0) (location: source ID 20, line 283, chars 9988-10095, hits: 0) +- Branch (branch: 4, path: 1) (location: source ID 20, line 283, chars 9988-10095, hits: 0) +- Line (location: source ID 20, line 284, chars 10034-10084, hits: 0) +- Statement (location: source ID 20, line 284, chars 10034-10084, hits: 0) +- Line (location: source ID 20, line 286, chars 10104-10132, hits: 0) +- Statement (location: source ID 20, line 286, chars 10104-10132, hits: 0) +- Function "_baseURI" (location: source ID 20, line 290, chars 10181-10295, hits: 0) +- Line (location: source ID 20, line 291, chars 10274-10288, hits: 0) +- Statement (location: source ID 20, line 291, chars 10274-10288, hits: 0) + +Uncovered for contracts/token/erc721/abstract/ImmutableERC721HybridBase.sol: +- Function "supportsInterface" (location: source ID 21, line 51, chars 2034-2324, hits: 0) +- Line (location: source ID 21, line 60, chars 2274-2317, hits: 0) +- Statement (location: source ID 21, line 60, chars 2274-2317, hits: 0) +- Function "_baseURI" (location: source ID 21, line 64, chars 2384-2490, hits: 0) +- Line (location: source ID 21, line 65, chars 2469-2483, hits: 0) +- Statement (location: source ID 21, line 65, chars 2469-2483, hits: 0) +- Function "setBaseURI" (location: source ID 21, line 71, chars 2597-2712, hits: 0) +- Line (location: source ID 21, line 72, chars 2687-2705, hits: 0) +- Statement (location: source ID 21, line 72, chars 2687-2705, hits: 0) +- Function "setContractURI" (location: source ID 21, line 79, chars 2877-3008, hits: 0) +- Line (location: source ID 21, line 80, chars 2975-3001, hits: 0) +- Statement (location: source ID 21, line 80, chars 2975-3001, hits: 0) +- Function "setApprovalForAll" (location: source ID 21, line 87, chars 3126-3333, hits: 0) +- Line (location: source ID 21, line 91, chars 3283-3326, hits: 0) +- Statement (location: source ID 21, line 91, chars 3283-3326, hits: 0) +- Function "_approve" (location: source ID 21, line 98, chars 3453-3605, hits: 0) +- Line (location: source ID 21, line 99, chars 3571-3598, hits: 0) +- Statement (location: source ID 21, line 99, chars 3571-3598, hits: 0) +- Function "_transfer" (location: source ID 21, line 106, chars 3740-3956, hits: 0) +- Line (location: source ID 21, line 111, chars 3915-3949, hits: 0) +- Statement (location: source ID 21, line 111, chars 3915-3949, hits: 0) +- Function "setDefaultRoyaltyReceiver" (location: source ID 21, line 119, chars 4245-4414, hits: 0) +- Line (location: source ID 21, line 120, chars 4365-4407, hits: 0) +- Statement (location: source ID 21, line 120, chars 4365-4407, hits: 0) +- Function "setNFTRoyaltyReceiver" (location: source ID 21, line 129, chars 4776-4988, hits: 0) +- Line (location: source ID 21, line 134, chars 4932-4981, hits: 0) +- Statement (location: source ID 21, line 134, chars 4932-4981, hits: 0) +- Function "setNFTRoyaltyReceiverBatch" (location: source ID 21, line 143, chars 5356-5656, hits: 0) +- Line (location: source ID 21, line 148, chars 5534-5544, hits: 0) +- Statement (location: source ID 21, line 148, chars 5534-5544, hits: 0) +- Statement (location: source ID 21, line 148, chars 5546-5565, hits: 0) +- Statement (location: source ID 21, line 148, chars 5567-5570, hits: 0) +- Line (location: source ID 21, line 149, chars 5586-5639, hits: 0) +- Statement (location: source ID 21, line 149, chars 5586-5639, hits: 0) + +Uncovered for contracts/token/erc721/abstract/MintingAccessControl.sol: +- Function "grantMinterRole" (location: source ID 22, line 15, chars 511-631, hits: 0) +- Line (location: source ID 22, line 16, chars 596-624, hits: 0) +- Statement (location: source ID 22, line 16, chars 596-624, hits: 0) +- Function "revokeMinterRole" (location: source ID 22, line 22, chars 780-902, hits: 0) +- Line (location: source ID 22, line 23, chars 866-895, hits: 0) +- Statement (location: source ID 22, line 23, chars 866-895, hits: 0) +- Function "getAdmins" (location: source ID 22, line 27, chars 980-1319, hits: 0) +- Line (location: source ID 22, line 28, chars 1050-1109, hits: 0) +- Statement (location: source ID 22, line 28, chars 1050-1109, hits: 0) +- Statement (location: source ID 22, line 28, chars 1071-1109, hits: 0) +- Line (location: source ID 22, line 29, chars 1119-1170, hits: 0) +- Statement (location: source ID 22, line 29, chars 1119-1170, hits: 0) +- Statement (location: source ID 22, line 29, chars 1145-1170, hits: 0) +- Line (location: source ID 22, line 30, chars 1185-1194, hits: 0) +- Statement (location: source ID 22, line 30, chars 1185-1194, hits: 0) +- Statement (location: source ID 22, line 30, chars 1196-1210, hits: 0) +- Statement (location: source ID 22, line 30, chars 1212-1215, hits: 0) +- Line (location: source ID 22, line 31, chars 1231-1279, hits: 0) +- Statement (location: source ID 22, line 31, chars 1231-1279, hits: 0) +- Line (location: source ID 22, line 33, chars 1299-1312, hits: 0) +- Statement (location: source ID 22, line 33, chars 1299-1312, hits: 0) + +Uncovered for contracts/token/erc721/erc721psi/ERC721Psi.sol: +- Function "_startTokenId" (location: source ID 23, line 64, chars 2275-2425, hits: 0) +- Line (location: source ID 23, line 66, chars 2410-2418, hits: 0) +- Statement (location: source ID 23, line 66, chars 2410-2418, hits: 0) +- Function "_nextTokenId" (location: source ID 23, line 72, chars 2499-2600, hits: 0) +- Line (location: source ID 23, line 73, chars 2573-2593, hits: 0) +- Statement (location: source ID 23, line 73, chars 2573-2593, hits: 0) +- Function "_totalMinted" (location: source ID 23, line 79, chars 2693-2812, hits: 0) +- Line (location: source ID 23, line 80, chars 2767-2805, hits: 0) +- Statement (location: source ID 23, line 80, chars 2767-2805, hits: 0) +- Function "supportsInterface" (location: source ID 23, line 86, chars 2879-3179, hits: 0) +- Line (location: source ID 23, line 87, chars 2997-3172, hits: 0) +- Statement (location: source ID 23, line 87, chars 2997-3172, hits: 0) +- Function "balanceOf" (location: source ID 23, line 96, chars 3238-3663, hits: 0) +- Line (location: source ID 23, line 97, chars 3326-3403, hits: 0) +- Statement (location: source ID 23, line 97, chars 3326-3403, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 23, line 97, chars 3326-3403, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 23, line 97, chars 3326-3403, hits: 0) +- Line (location: source ID 23, line 99, chars 3414-3424, hits: 0) +- Statement (location: source ID 23, line 99, chars 3414-3424, hits: 0) +- Line (location: source ID 23, line 100, chars 3439-3463, hits: 0) +- Statement (location: source ID 23, line 100, chars 3439-3463, hits: 0) +- Statement (location: source ID 23, line 100, chars 3448-3463, hits: 0) +- Statement (location: source ID 23, line 100, chars 3465-3483, hits: 0) +- Statement (location: source ID 23, line 100, chars 3485-3488, hits: 0) +- Line (location: source ID 23, line 101, chars 3508-3518, hits: 0) +- Statement (location: source ID 23, line 101, chars 3508-3518, hits: 0) +- Branch (branch: 1, path: 0) (location: source ID 23, line 101, chars 3504-3625, hits: 0) +- Branch (branch: 1, path: 1) (location: source ID 23, line 101, chars 3504-3625, hits: 0) +- Line (location: source ID 23, line 102, chars 3542-3561, hits: 0) +- Statement (location: source ID 23, line 102, chars 3542-3561, hits: 0) +- Branch (branch: 2, path: 0) (location: source ID 23, line 102, chars 3538-3611, hits: 0) +- Branch (branch: 2, path: 1) (location: source ID 23, line 102, chars 3538-3611, hits: 0) +- Line (location: source ID 23, line 103, chars 3585-3592, hits: 0) +- Statement (location: source ID 23, line 103, chars 3585-3592, hits: 0) +- Line (location: source ID 23, line 107, chars 3644-3656, hits: 0) +- Statement (location: source ID 23, line 107, chars 3644-3656, hits: 0) +- Function "ownerOf" (location: source ID 23, line 113, chars 3720-3889, hits: 0) +- Line (location: source ID 23, line 114, chars 3811-3860, hits: 0) +- Statement (location: source ID 23, line 114, chars 3811-3860, hits: 0) +- Statement (location: source ID 23, line 114, chars 3831-3860, hits: 0) +- Line (location: source ID 23, line 115, chars 3870-3882, hits: 0) +- Statement (location: source ID 23, line 115, chars 3870-3882, hits: 0) +- Function "_ownerAndBatchHeadOf" (location: source ID 23, line 118, chars 3895-4190, hits: 0) +- Line (location: source ID 23, line 119, chars 4016-4089, hits: 0) +- Statement (location: source ID 23, line 119, chars 4016-4089, hits: 0) +- Branch (branch: 3, path: 0) (location: source ID 23, line 119, chars 4016-4089, hits: 0) +- Branch (branch: 3, path: 1) (location: source ID 23, line 119, chars 4016-4089, hits: 0) +- Line (location: source ID 23, line 120, chars 4099-4140, hits: 0) +- Statement (location: source ID 23, line 120, chars 4099-4140, hits: 0) +- Line (location: source ID 23, line 121, chars 4150-4183, hits: 0) +- Statement (location: source ID 23, line 121, chars 4150-4183, hits: 0) +- Function "name" (location: source ID 23, line 127, chars 4252-4350, hits: 0) +- Line (location: source ID 23, line 128, chars 4331-4343, hits: 0) +- Statement (location: source ID 23, line 128, chars 4331-4343, hits: 0) +- Function "symbol" (location: source ID 23, line 134, chars 4414-4516, hits: 0) +- Line (location: source ID 23, line 135, chars 4495-4509, hits: 0) +- Statement (location: source ID 23, line 135, chars 4495-4509, hits: 0) +- Function "tokenURI" (location: source ID 23, line 141, chars 4582-4906, hits: 0) +- Line (location: source ID 23, line 142, chars 4680-4751, hits: 0) +- Statement (location: source ID 23, line 142, chars 4680-4751, hits: 0) +- Branch (branch: 4, path: 0) (location: source ID 23, line 142, chars 4680-4751, hits: 0) +- Branch (branch: 4, path: 1) (location: source ID 23, line 142, chars 4680-4751, hits: 0) +- Line (location: source ID 23, line 144, chars 4762-4796, hits: 0) +- Statement (location: source ID 23, line 144, chars 4762-4796, hits: 0) +- Statement (location: source ID 23, line 144, chars 4786-4796, hits: 0) +- Line (location: source ID 23, line 145, chars 4806-4899, hits: 0) +- Statement (location: source ID 23, line 145, chars 4806-4899, hits: 0) +- Function "_baseURI" (location: source ID 23, line 153, chars 5147-5239, hits: 0) +- Line (location: source ID 23, line 154, chars 5223-5232, hits: 0) +- Statement (location: source ID 23, line 154, chars 5223-5232, hits: 0) +- Function "approve" (location: source ID 23, line 160, chars 5296-5696, hits: 0) +- Line (location: source ID 23, line 161, chars 5376-5408, hits: 0) +- Statement (location: source ID 23, line 161, chars 5376-5408, hits: 0) +- Statement (location: source ID 23, line 161, chars 5392-5408, hits: 0) +- Line (location: source ID 23, line 162, chars 5418-5478, hits: 0) +- Statement (location: source ID 23, line 162, chars 5418-5478, hits: 0) +- Branch (branch: 5, path: 0) (location: source ID 23, line 162, chars 5418-5478, hits: 0) +- Branch (branch: 5, path: 1) (location: source ID 23, line 162, chars 5418-5478, hits: 0) +- Line (location: source ID 23, line 164, chars 5489-5657, hits: 0) +- Statement (location: source ID 23, line 164, chars 5489-5657, hits: 0) +- Branch (branch: 6, path: 0) (location: source ID 23, line 164, chars 5489-5657, hits: 0) +- Branch (branch: 6, path: 1) (location: source ID 23, line 164, chars 5489-5657, hits: 0) +- Line (location: source ID 23, line 169, chars 5668-5689, hits: 0) +- Statement (location: source ID 23, line 169, chars 5668-5689, hits: 0) +- Function "getApproved" (location: source ID 23, line 175, chars 5757-5977, hits: 0) +- Line (location: source ID 23, line 176, chars 5852-5928, hits: 0) +- Statement (location: source ID 23, line 176, chars 5852-5928, hits: 0) +- Branch (branch: 7, path: 0) (location: source ID 23, line 176, chars 5852-5928, hits: 0) +- Branch (branch: 7, path: 1) (location: source ID 23, line 176, chars 5852-5928, hits: 0) +- Line (location: source ID 23, line 178, chars 5939-5970, hits: 0) +- Statement (location: source ID 23, line 178, chars 5939-5970, hits: 0) +- Function "setApprovalForAll" (location: source ID 23, line 184, chars 6044-6337, hits: 0) +- Line (location: source ID 23, line 185, chars 6138-6203, hits: 0) +- Statement (location: source ID 23, line 185, chars 6138-6203, hits: 0) +- Branch (branch: 8, path: 0) (location: source ID 23, line 185, chars 6138-6203, hits: 0) +- Branch (branch: 8, path: 1) (location: source ID 23, line 185, chars 6138-6203, hits: 0) +- Line (location: source ID 23, line 187, chars 6214-6267, hits: 0) +- Statement (location: source ID 23, line 187, chars 6214-6267, hits: 0) +- Line (location: source ID 23, line 188, chars 6277-6330, hits: 0) +- Statement (location: source ID 23, line 188, chars 6277-6330, hits: 0) +- Function "isApprovedForAll" (location: source ID 23, line 194, chars 6403-6565, hits: 0) +- Line (location: source ID 23, line 195, chars 6516-6558, hits: 0) +- Statement (location: source ID 23, line 195, chars 6516-6558, hits: 0) +- Function "transferFrom" (location: source ID 23, line 201, chars 6627-6930, hits: 0) +- Line (location: source ID 23, line 203, chars 6778-6884, hits: 0) +- Statement (location: source ID 23, line 203, chars 6778-6884, hits: 0) +- Branch (branch: 9, path: 0) (location: source ID 23, line 203, chars 6778-6884, hits: 0) +- Branch (branch: 9, path: 1) (location: source ID 23, line 203, chars 6778-6884, hits: 0) +- Line (location: source ID 23, line 205, chars 6895-6923, hits: 0) +- Statement (location: source ID 23, line 205, chars 6895-6923, hits: 0) +- Function "safeTransferFrom" (location: source ID 23, line 211, chars 6996-7145, hits: 0) +- Line (location: source ID 23, line 212, chars 7099-7138, hits: 0) +- Statement (location: source ID 23, line 212, chars 7099-7138, hits: 0) +- Function "safeTransferFrom" (location: source ID 23, line 218, chars 7211-7496, hits: 0) +- Line (location: source ID 23, line 219, chars 7334-7440, hits: 0) +- Statement (location: source ID 23, line 219, chars 7334-7440, hits: 0) +- Branch (branch: 10, path: 0) (location: source ID 23, line 219, chars 7334-7440, hits: 0) +- Branch (branch: 10, path: 1) (location: source ID 23, line 219, chars 7334-7440, hits: 0) +- Line (location: source ID 23, line 220, chars 7450-7489, hits: 0) +- Statement (location: source ID 23, line 220, chars 7450-7489, hits: 0) +- Function "_safeTransfer" (location: source ID 23, line 241, chars 8358-8667, hits: 0) +- Line (location: source ID 23, line 242, chars 8471-8499, hits: 0) +- Statement (location: source ID 23, line 242, chars 8471-8499, hits: 0) +- Line (location: source ID 23, line 243, chars 8509-8660, hits: 0) +- Statement (location: source ID 23, line 243, chars 8509-8660, hits: 0) +- Branch (branch: 11, path: 0) (location: source ID 23, line 243, chars 8509-8660, hits: 0) +- Branch (branch: 11, path: 1) (location: source ID 23, line 243, chars 8509-8660, hits: 0) +- Function "_exists" (location: source ID 23, line 256, chars 8913-9062, hits: 0) +- Line (location: source ID 23, line 257, chars 8994-9055, hits: 0) +- Statement (location: source ID 23, line 257, chars 8994-9055, hits: 0) +- Function "_isApprovedOrOwner" (location: source ID 23, line 267, chars 9220-9560, hits: 0) +- Line (location: source ID 23, line 268, chars 9329-9405, hits: 0) +- Statement (location: source ID 23, line 268, chars 9329-9405, hits: 0) +- Branch (branch: 12, path: 0) (location: source ID 23, line 268, chars 9329-9405, hits: 0) +- Branch (branch: 12, path: 1) (location: source ID 23, line 268, chars 9329-9405, hits: 0) +- Line (location: source ID 23, line 269, chars 9415-9447, hits: 0) +- Statement (location: source ID 23, line 269, chars 9415-9447, hits: 0) +- Statement (location: source ID 23, line 269, chars 9431-9447, hits: 0) +- Line (location: source ID 23, line 270, chars 9457-9553, hits: 0) +- Statement (location: source ID 23, line 270, chars 9457-9553, hits: 0) +- Function "_safeMint" (location: source ID 23, line 283, chars 9911-10031, hits: 0) +- Line (location: source ID 23, line 284, chars 9987-10024, hits: 0) +- Statement (location: source ID 23, line 284, chars 9987-10024, hits: 0) +- Function "_safeMint" (location: source ID 23, line 287, chars 10037-10534, hits: 0) +- Line (location: source ID 23, line 288, chars 10133-10169, hits: 0) +- Statement (location: source ID 23, line 288, chars 10133-10169, hits: 0) +- Statement (location: source ID 23, line 288, chars 10155-10169, hits: 0) +- Line (location: source ID 23, line 291, chars 10320-10349, hits: 0) +- Statement (location: source ID 23, line 291, chars 10320-10349, hits: 0) +- Line (location: source ID 23, line 292, chars 10359-10527, hits: 0) +- Statement (location: source ID 23, line 292, chars 10359-10527, hits: 0) +- Branch (branch: 13, path: 0) (location: source ID 23, line 292, chars 10359-10527, hits: 0) +- Branch (branch: 13, path: 1) (location: source ID 23, line 292, chars 10359-10527, hits: 0) +- Function "_mint" (location: source ID 23, line 298, chars 10540-12535, hits: 0) +- Line (location: source ID 23, line 299, chars 10612-10648, hits: 0) +- Statement (location: source ID 23, line 299, chars 10612-10648, hits: 0) +- Statement (location: source ID 23, line 299, chars 10634-10648, hits: 0) +- Line (location: source ID 23, line 301, chars 10659-10721, hits: 0) +- Statement (location: source ID 23, line 301, chars 10659-10721, hits: 0) +- Branch (branch: 14, path: 0) (location: source ID 23, line 301, chars 10659-10721, hits: 0) +- Branch (branch: 14, path: 1) (location: source ID 23, line 301, chars 10659-10721, hits: 0) +- Line (location: source ID 23, line 302, chars 10731-10795, hits: 0) +- Statement (location: source ID 23, line 302, chars 10731-10795, hits: 0) +- Branch (branch: 15, path: 0) (location: source ID 23, line 302, chars 10731-10795, hits: 0) +- Branch (branch: 15, path: 1) (location: source ID 23, line 302, chars 10731-10795, hits: 0) +- Line (location: source ID 23, line 304, chars 10806-10866, hits: 0) +- Statement (location: source ID 23, line 304, chars 10806-10866, hits: 0) +- Line (location: source ID 23, line 305, chars 10876-10901, hits: 0) +- Statement (location: source ID 23, line 305, chars 10876-10901, hits: 0) +- Line (location: source ID 23, line 306, chars 10911-10936, hits: 0) +- Statement (location: source ID 23, line 306, chars 10911-10936, hits: 0) +- Line (location: source ID 23, line 307, chars 10946-10973, hits: 0) +- Statement (location: source ID 23, line 307, chars 10946-10973, hits: 0) +- Line (location: source ID 23, line 309, chars 10984-11000, hits: 0) +- Statement (location: source ID 23, line 309, chars 10984-11000, hits: 0) +- Line (location: source ID 23, line 310, chars 11010-11046, hits: 0) +- Statement (location: source ID 23, line 310, chars 11010-11046, hits: 0) +- Statement (location: source ID 23, line 310, chars 11024-11046, hits: 0) +- Line (location: source ID 23, line 318, chars 11503-11540, hits: 0) +- Statement (location: source ID 23, line 318, chars 11503-11540, hits: 0) +- Line (location: source ID 23, line 342, chars 12469-12528, hits: 0) +- Statement (location: source ID 23, line 342, chars 12469-12528, hits: 0) +- Function "_transfer" (location: source ID 23, line 356, chars 12859-13793, hits: 0) +- Line (location: source ID 23, line 357, chars 12948-13021, hits: 0) +- Statement (location: source ID 23, line 357, chars 12948-13021, hits: 0) +- Statement (location: source ID 23, line 357, chars 12992-13021, hits: 0) +- Line (location: source ID 23, line 359, chars 13032-13102, hits: 0) +- Statement (location: source ID 23, line 359, chars 13032-13102, hits: 0) +- Branch (branch: 16, path: 0) (location: source ID 23, line 359, chars 13032-13102, hits: 0) +- Branch (branch: 16, path: 1) (location: source ID 23, line 359, chars 13032-13102, hits: 0) +- Line (location: source ID 23, line 360, chars 13112-13180, hits: 0) +- Statement (location: source ID 23, line 360, chars 13112-13180, hits: 0) +- Branch (branch: 17, path: 0) (location: source ID 23, line 360, chars 13112-13180, hits: 0) +- Branch (branch: 17, path: 1) (location: source ID 23, line 360, chars 13112-13180, hits: 0) +- Line (location: source ID 23, line 362, chars 13191-13234, hits: 0) +- Statement (location: source ID 23, line 362, chars 13191-13234, hits: 0) +- Line (location: source ID 23, line 365, chars 13296-13325, hits: 0) +- Statement (location: source ID 23, line 365, chars 13296-13325, hits: 0) +- Line (location: source ID 23, line 367, chars 13336-13375, hits: 0) +- Statement (location: source ID 23, line 367, chars 13336-13375, hits: 0) +- Statement (location: source ID 23, line 367, chars 13364-13375, hits: 0) +- Line (location: source ID 23, line 369, chars 13390-13462, hits: 0) +- Statement (location: source ID 23, line 369, chars 13390-13462, hits: 0) +- Branch (branch: 18, path: 0) (location: source ID 23, line 369, chars 13386-13569, hits: 0) +- Branch (branch: 18, path: 1) (location: source ID 23, line 369, chars 13386-13569, hits: 0) +- Line (location: source ID 23, line 370, chars 13478-13511, hits: 0) +- Statement (location: source ID 23, line 370, chars 13478-13511, hits: 0) +- Line (location: source ID 23, line 371, chars 13525-13558, hits: 0) +- Statement (location: source ID 23, line 371, chars 13525-13558, hits: 0) +- Line (location: source ID 23, line 374, chars 13579-13600, hits: 0) +- Statement (location: source ID 23, line 374, chars 13579-13600, hits: 0) +- Line (location: source ID 23, line 375, chars 13614-13641, hits: 0) +- Statement (location: source ID 23, line 375, chars 13614-13641, hits: 0) +- Branch (branch: 19, path: 0) (location: source ID 23, line 375, chars 13610-13691, hits: 0) +- Branch (branch: 19, path: 1) (location: source ID 23, line 375, chars 13610-13691, hits: 0) +- Line (location: source ID 23, line 376, chars 13657-13680, hits: 0) +- Statement (location: source ID 23, line 376, chars 13657-13680, hits: 0) +- Line (location: source ID 23, line 379, chars 13701-13733, hits: 0) +- Statement (location: source ID 23, line 379, chars 13701-13733, hits: 0) +- Line (location: source ID 23, line 381, chars 13744-13786, hits: 0) +- Statement (location: source ID 23, line 381, chars 13744-13786, hits: 0) +- Function "_approve" (location: source ID 23, line 389, chars 13904-14068, hits: 0) +- Line (location: source ID 23, line 390, chars 13978-14007, hits: 0) +- Statement (location: source ID 23, line 390, chars 13978-14007, hits: 0) +- Line (location: source ID 23, line 391, chars 14017-14061, hits: 0) +- Statement (location: source ID 23, line 391, chars 14017-14061, hits: 0) +- Function "_checkOnERC721Received" (location: source ID 23, line 405, chars 14709-15724, hits: 0) +- Line (location: source ID 23, line 412, chars 14912-14927, hits: 0) +- Statement (location: source ID 23, line 412, chars 14912-14927, hits: 0) +- Branch (branch: 20, path: 0) (location: source ID 23, line 412, chars 14908-15676, hits: 0) +- Branch (branch: 20, path: 1) (location: source ID 23, line 412, chars 14908-15676, hits: 0) +- Line (location: source ID 23, line 413, chars 14943-14951, hits: 0) +- Statement (location: source ID 23, line 413, chars 14943-14951, hits: 0) +- Line (location: source ID 23, line 414, chars 14970-15000, hits: 0) +- Statement (location: source ID 23, line 414, chars 14970-15000, hits: 0) +- Statement (location: source ID 23, line 414, chars 15002-15035, hits: 0) +- Statement (location: source ID 23, line 414, chars 15037-15046, hits: 0) +- Line (location: source ID 23, line 415, chars 15070-15142, hits: 0) +- Statement (location: source ID 23, line 415, chars 15070-15142, hits: 0) +- Line (location: source ID 23, line 427, chars 15657-15665, hits: 0) +- Statement (location: source ID 23, line 427, chars 15657-15665, hits: 0) +- Line (location: source ID 23, line 429, chars 15696-15707, hits: 0) +- Statement (location: source ID 23, line 429, chars 15696-15707, hits: 0) +- Function "_getBatchHead" (location: source ID 23, line 433, chars 15730-15886, hits: 0) +- Line (location: source ID 23, line 434, chars 15829-15879, hits: 0) +- Statement (location: source ID 23, line 434, chars 15829-15879, hits: 0) +- Function "totalSupply" (location: source ID 23, line 437, chars 15892-15991, hits: 0) +- Line (location: source ID 23, line 438, chars 15963-15984, hits: 0) +- Statement (location: source ID 23, line 438, chars 15963-15984, hits: 0) +- Function "_beforeTokenTransfers" (location: source ID 23, line 453, chars 16465-16581, hits: 0) +- Function "_afterTokenTransfers" (location: source ID 23, line 467, chars 16979-17094, hits: 0) + +Uncovered for contracts/token/erc721/erc721psi/ERC721PsiBurnable.sol: +- Function "_burn" (location: source ID 24, line 31, chars 760-1065, hits: 0) +- Line (location: source ID 24, line 32, chars 819-850, hits: 0) +- Statement (location: source ID 24, line 32, chars 819-850, hits: 0) +- Statement (location: source ID 24, line 32, chars 834-850, hits: 0) +- Line (location: source ID 24, line 33, chars 860-911, hits: 0) +- Statement (location: source ID 24, line 33, chars 860-911, hits: 0) +- Line (location: source ID 24, line 34, chars 921-946, hits: 0) +- Statement (location: source ID 24, line 34, chars 921-946, hits: 0) +- Line (location: source ID 24, line 36, chars 957-997, hits: 0) +- Statement (location: source ID 24, line 36, chars 957-997, hits: 0) +- Line (location: source ID 24, line 38, chars 1008-1058, hits: 0) +- Statement (location: source ID 24, line 38, chars 1008-1058, hits: 0) +- Function "_exists" (location: source ID 24, line 49, chars 1368-1571, hits: 0) +- Line (location: source ID 24, line 50, chars 1462-1487, hits: 0) +- Statement (location: source ID 24, line 50, chars 1462-1487, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 24, line 50, chars 1458-1526, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 24, line 50, chars 1458-1526, hits: 0) +- Line (location: source ID 24, line 51, chars 1503-1515, hits: 0) +- Statement (location: source ID 24, line 51, chars 1503-1515, hits: 0) +- Line (location: source ID 24, line 53, chars 1535-1564, hits: 0) +- Statement (location: source ID 24, line 53, chars 1535-1564, hits: 0) +- Function "totalSupply" (location: source ID 24, line 59, chars 1642-1762, hits: 0) +- Line (location: source ID 24, line 60, chars 1722-1755, hits: 0) +- Statement (location: source ID 24, line 60, chars 1722-1755, hits: 0) +- Function "_burned" (location: source ID 24, line 66, chars 1828-2170, hits: 0) +- Line (location: source ID 24, line 67, chars 1896-1938, hits: 0) +- Statement (location: source ID 24, line 67, chars 1896-1938, hits: 0) +- Statement (location: source ID 24, line 67, chars 1918-1938, hits: 0) +- Line (location: source ID 24, line 68, chars 1948-1994, hits: 0) +- Statement (location: source ID 24, line 68, chars 1948-1994, hits: 0) +- Statement (location: source ID 24, line 68, chars 1969-1994, hits: 0) +- Line (location: source ID 24, line 70, chars 2010-2033, hits: 0) +- Statement (location: source ID 24, line 70, chars 2010-2033, hits: 0) +- Statement (location: source ID 24, line 70, chars 2035-2049, hits: 0) +- Statement (location: source ID 24, line 70, chars 2051-2054, hits: 0) +- Line (location: source ID 24, line 71, chars 2070-2112, hits: 0) +- Statement (location: source ID 24, line 71, chars 2070-2112, hits: 0) +- Statement (location: source ID 24, line 71, chars 2087-2112, hits: 0) +- Line (location: source ID 24, line 72, chars 2126-2153, hits: 0) +- Statement (location: source ID 24, line 72, chars 2126-2153, hits: 0) +- Function "_popcount" (location: source ID 24, line 79, chars 2232-2393, hits: 0) +- Line (location: source ID 24, line 81, chars 2338-2347, hits: 0) +- Statement (location: source ID 24, line 81, chars 2338-2347, hits: 0) +- Statement (location: source ID 24, line 81, chars 2349-2355, hits: 0) +- Statement (location: source ID 24, line 81, chars 2357-2364, hits: 0) +- Statement (location: source ID 24, line 81, chars 2366-2376, hits: 0) + +Uncovered for contracts/token/erc721/preset/ImmutableERC721.sol: +- Function "mint" (location: source ID 25, line 49, chars 1728-1841, hits: 0) +- Line (location: source ID 25, line 50, chars 1812-1834, hits: 0) +- Statement (location: source ID 25, line 50, chars 1812-1834, hits: 0) +- Function "safeMint" (location: source ID 25, line 57, chars 2054-2175, hits: 0) +- Line (location: source ID 25, line 58, chars 2142-2168, hits: 0) +- Statement (location: source ID 25, line 58, chars 2142-2168, hits: 0) +- Function "mintByQuantity" (location: source ID 25, line 65, chars 2386-2517, hits: 0) +- Line (location: source ID 25, line 66, chars 2481-2510, hits: 0) +- Statement (location: source ID 25, line 66, chars 2481-2510, hits: 0) +- Function "safeMintByQuantity" (location: source ID 25, line 74, chars 2758-2897, hits: 0) +- Line (location: source ID 25, line 75, chars 2857-2890, hits: 0) +- Statement (location: source ID 25, line 75, chars 2857-2890, hits: 0) +- Function "mintBatchByQuantity" (location: source ID 25, line 81, chars 3113-3240, hits: 0) +- Line (location: source ID 25, line 82, chars 3206-3233, hits: 0) +- Statement (location: source ID 25, line 82, chars 3206-3233, hits: 0) +- Function "safeMintBatchByQuantity" (location: source ID 25, line 88, chars 3461-3596, hits: 0) +- Line (location: source ID 25, line 89, chars 3558-3589, hits: 0) +- Statement (location: source ID 25, line 89, chars 3558-3589, hits: 0) +- Function "mintBatch" (location: source ID 25, line 96, chars 3886-4009, hits: 0) +- Line (location: source ID 25, line 97, chars 3971-4002, hits: 0) +- Statement (location: source ID 25, line 97, chars 3971-4002, hits: 0) +- Function "safeMintBatch" (location: source ID 25, line 104, chars 4299-4430, hits: 0) +- Line (location: source ID 25, line 105, chars 4388-4423, hits: 0) +- Statement (location: source ID 25, line 105, chars 4388-4423, hits: 0) +- Function "safeBurnBatch" (location: source ID 25, line 111, chars 4605-4700, hits: 0) +- Line (location: source ID 25, line 112, chars 4672-4693, hits: 0) +- Statement (location: source ID 25, line 112, chars 4672-4693, hits: 0) +- Function "safeTransferFromBatch" (location: source ID 25, line 119, chars 4935-5269, hits: 0) +- Line (location: source ID 25, line 120, chars 5018-5053, hits: 0) +- Statement (location: source ID 25, line 120, chars 5018-5053, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 25, line 120, chars 5014-5130, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 25, line 120, chars 5014-5130, hits: 0) +- Line (location: source ID 25, line 121, chars 5069-5119, hits: 0) +- Statement (location: source ID 25, line 121, chars 5069-5119, hits: 0) +- Line (location: source ID 25, line 124, chars 5145-5155, hits: 0) +- Statement (location: source ID 25, line 124, chars 5145-5155, hits: 0) +- Statement (location: source ID 25, line 124, chars 5157-5179, hits: 0) +- Statement (location: source ID 25, line 124, chars 5181-5184, hits: 0) +- Line (location: source ID 25, line 125, chars 5200-5252, hits: 0) +- Statement (location: source ID 25, line 125, chars 5200-5252, hits: 0) + +Uncovered for contracts/token/erc721/preset/ImmutableERC721MintByID.sol: +- Function "safeMint" (location: source ID 26, line 40, chars 1482-1627, hits: 0) +- Line (location: source ID 26, line 41, chars 1570-1584, hits: 0) +- Statement (location: source ID 26, line 41, chars 1570-1584, hits: 0) +- Line (location: source ID 26, line 42, chars 1594-1620, hits: 0) +- Statement (location: source ID 26, line 42, chars 1594-1620, hits: 0) +- Function "mint" (location: source ID 26, line 49, chars 1804-1937, hits: 0) +- Line (location: source ID 26, line 50, chars 1888-1902, hits: 0) +- Statement (location: source ID 26, line 50, chars 1888-1902, hits: 0) +- Line (location: source ID 26, line 51, chars 1912-1930, hits: 0) +- Statement (location: source ID 26, line 51, chars 1912-1930, hits: 0) +- Function "safeMintBatch" (location: source ID 26, line 58, chars 2149-2357, hits: 0) +- Line (location: source ID 26, line 59, chars 2250-2263, hits: 0) +- Statement (location: source ID 26, line 59, chars 2250-2263, hits: 0) +- Statement (location: source ID 26, line 59, chars 2265-2288, hits: 0) +- Statement (location: source ID 26, line 59, chars 2290-2293, hits: 0) +- Line (location: source ID 26, line 60, chars 2309-2340, hits: 0) +- Statement (location: source ID 26, line 60, chars 2309-2340, hits: 0) +- Function "mintBatch" (location: source ID 26, line 68, chars 2564-2764, hits: 0) +- Line (location: source ID 26, line 69, chars 2661-2674, hits: 0) +- Statement (location: source ID 26, line 69, chars 2661-2674, hits: 0) +- Statement (location: source ID 26, line 69, chars 2676-2699, hits: 0) +- Statement (location: source ID 26, line 69, chars 2701-2704, hits: 0) +- Line (location: source ID 26, line 70, chars 2720-2747, hits: 0) +- Statement (location: source ID 26, line 70, chars 2720-2747, hits: 0) +- Function "burnBatch" (location: source ID 26, line 78, chars 2905-3063, hits: 0) +- Line (location: source ID 26, line 79, chars 2977-2987, hits: 0) +- Statement (location: source ID 26, line 79, chars 2977-2987, hits: 0) +- Statement (location: source ID 26, line 79, chars 2989-3008, hits: 0) +- Statement (location: source ID 26, line 79, chars 3010-3013, hits: 0) +- Line (location: source ID 26, line 80, chars 3029-3046, hits: 0) +- Statement (location: source ID 26, line 80, chars 3029-3046, hits: 0) +- Function "safeBurnBatch" (location: source ID 26, line 88, chars 3256-3351, hits: 0) +- Line (location: source ID 26, line 89, chars 3323-3344, hits: 0) +- Statement (location: source ID 26, line 89, chars 3323-3344, hits: 0) +- Function "safeTransferFromBatch" (location: source ID 26, line 96, chars 3586-3920, hits: 0) +- Line (location: source ID 26, line 97, chars 3669-3704, hits: 0) +- Statement (location: source ID 26, line 97, chars 3669-3704, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 26, line 97, chars 3665-3781, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 26, line 97, chars 3665-3781, hits: 0) +- Line (location: source ID 26, line 98, chars 3720-3770, hits: 0) +- Statement (location: source ID 26, line 98, chars 3720-3770, hits: 0) +- Line (location: source ID 26, line 101, chars 3796-3806, hits: 0) +- Statement (location: source ID 26, line 101, chars 3796-3806, hits: 0) +- Statement (location: source ID 26, line 101, chars 3808-3830, hits: 0) +- Statement (location: source ID 26, line 101, chars 3832-3835, hits: 0) +- Line (location: source ID 26, line 102, chars 3851-3903, hits: 0) +- Statement (location: source ID 26, line 102, chars 3851-3903, hits: 0) + +Uncovered for contracts/token/erc721/x/Asset.sol: +- Function "_mintFor" (location: source ID 11, line 15, chars 394-536, hits: 0) +- Line (location: source ID 11, line 20, chars 510-529, hits: 0) +- Statement (location: source ID 11, line 20, chars 510-529, hits: 0) + +Uncovered for contracts/token/erc721/x/Mintable.sol: +- Function "mintFor" (location: source ID 13, line 25, chars 748-1154, hits: 0) +- Line (location: source ID 13, line 30, chars 898-950, hits: 0) +- Statement (location: source ID 13, line 30, chars 898-950, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 13, line 30, chars 898-950, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 13, line 30, chars 898-950, hits: 0) +- Line (location: source ID 13, line 31, chars 960-1025, hits: 0) +- Statement (location: source ID 13, line 31, chars 960-1025, hits: 0) +- Statement (location: source ID 13, line 31, chars 999-1025, hits: 0) +- Line (location: source ID 13, line 32, chars 1035-1064, hits: 0) +- Statement (location: source ID 13, line 32, chars 1035-1064, hits: 0) +- Line (location: source ID 13, line 33, chars 1074-1100, hits: 0) +- Statement (location: source ID 13, line 33, chars 1074-1100, hits: 0) +- Line (location: source ID 13, line 34, chars 1110-1147, hits: 0) +- Statement (location: source ID 13, line 34, chars 1110-1147, hits: 0) + +Uncovered for contracts/token/erc721/x/utils/Bytes.sol: +- Function "fromUint" (location: source ID 14, line 10, chars 295-834, hits: 0) +- Line (location: source ID 14, line 11, chars 380-390, hits: 0) +- Statement (location: source ID 14, line 11, chars 380-390, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 14, line 11, chars 376-427, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 14, line 11, chars 376-427, hits: 0) +- Line (location: source ID 14, line 12, chars 406-416, hits: 0) +- Statement (location: source ID 14, line 12, chars 406-416, hits: 0) +- Line (location: source ID 14, line 14, chars 436-456, hits: 0) +- Statement (location: source ID 14, line 14, chars 436-456, hits: 0) +- Line (location: source ID 14, line 15, chars 466-480, hits: 0) +- Statement (location: source ID 14, line 15, chars 466-480, hits: 0) +- Line (location: source ID 14, line 16, chars 497-506, hits: 0) +- Statement (location: source ID 14, line 16, chars 497-506, hits: 0) +- Line (location: source ID 14, line 17, chars 522-530, hits: 0) +- Statement (location: source ID 14, line 17, chars 522-530, hits: 0) +- Line (location: source ID 14, line 18, chars 544-554, hits: 0) +- Statement (location: source ID 14, line 18, chars 544-554, hits: 0) +- Line (location: source ID 14, line 20, chars 574-613, hits: 0) +- Statement (location: source ID 14, line 20, chars 574-613, hits: 0) +- Statement (location: source ID 14, line 20, chars 596-613, hits: 0) +- Line (location: source ID 14, line 21, chars 623-649, hits: 0) +- Statement (location: source ID 14, line 21, chars 623-649, hits: 0) +- Statement (location: source ID 14, line 21, chars 639-649, hits: 0) +- Line (location: source ID 14, line 22, chars 659-671, hits: 0) +- Statement (location: source ID 14, line 22, chars 659-671, hits: 0) +- Line (location: source ID 14, line 23, chars 688-697, hits: 0) +- Statement (location: source ID 14, line 23, chars 688-697, hits: 0) +- Line (location: source ID 14, line 24, chars 713-762, hits: 0) +- Statement (location: source ID 14, line 24, chars 713-762, hits: 0) +- Line (location: source ID 14, line 25, chars 776-786, hits: 0) +- Statement (location: source ID 14, line 25, chars 776-786, hits: 0) +- Line (location: source ID 14, line 27, chars 806-827, hits: 0) +- Statement (location: source ID 14, line 27, chars 806-827, hits: 0) +- Function "indexOf" (location: source ID 14, line 48, chars 1641-2061, hits: 0) +- Line (location: source ID 14, line 53, chars 1788-1828, hits: 0) +- Statement (location: source ID 14, line 53, chars 1788-1828, hits: 0) +- Statement (location: source ID 14, line 53, chars 1815-1828, hits: 0) +- Line (location: source ID 14, line 55, chars 1839-1870, hits: 0) +- Statement (location: source ID 14, line 55, chars 1839-1870, hits: 0) +- Branch (branch: 1, path: 0) (location: source ID 14, line 55, chars 1839-1870, hits: 0) +- Branch (branch: 1, path: 1) (location: source ID 14, line 55, chars 1839-1870, hits: 0) +- Line (location: source ID 14, line 57, chars 1886-1905, hits: 0) +- Statement (location: source ID 14, line 57, chars 1886-1905, hits: 0) +- Statement (location: source ID 14, line 57, chars 1907-1923, hits: 0) +- Statement (location: source ID 14, line 57, chars 1925-1928, hits: 0) +- Line (location: source ID 14, line 58, chars 1948-1974, hits: 0) +- Statement (location: source ID 14, line 58, chars 1948-1974, hits: 0) +- Branch (branch: 2, path: 0) (location: source ID 14, line 58, chars 1944-2025, hits: 0) +- Branch (branch: 2, path: 1) (location: source ID 14, line 58, chars 1944-2025, hits: 0) +- Line (location: source ID 14, line 59, chars 1994-2010, hits: 0) +- Statement (location: source ID 14, line 59, chars 1994-2010, hits: 0) +- Line (location: source ID 14, line 63, chars 2045-2054, hits: 0) +- Statement (location: source ID 14, line 63, chars 2045-2054, hits: 0) +- Function "substring" (location: source ID 14, line 66, chars 2067-2435, hits: 0) +- Line (location: source ID 14, line 71, chars 2225-2279, hits: 0) +- Statement (location: source ID 14, line 71, chars 2225-2279, hits: 0) +- Statement (location: source ID 14, line 71, chars 2247-2279, hits: 0) +- Line (location: source ID 14, line 72, chars 2294-2316, hits: 0) +- Statement (location: source ID 14, line 72, chars 2294-2316, hits: 0) +- Statement (location: source ID 14, line 72, chars 2318-2330, hits: 0) +- Statement (location: source ID 14, line 72, chars 2332-2335, hits: 0) +- Line (location: source ID 14, line 73, chars 2351-2387, hits: 0) +- Statement (location: source ID 14, line 73, chars 2351-2387, hits: 0) +- Line (location: source ID 14, line 75, chars 2407-2428, hits: 0) +- Statement (location: source ID 14, line 75, chars 2407-2428, hits: 0) +- Function "toUint" (location: source ID 14, line 78, chars 2441-2955, hits: 0) +- Line (location: source ID 14, line 79, chars 2515-2533, hits: 0) +- Statement (location: source ID 14, line 79, chars 2515-2533, hits: 0) +- Line (location: source ID 14, line 80, chars 2548-2561, hits: 0) +- Statement (location: source ID 14, line 80, chars 2548-2561, hits: 0) +- Statement (location: source ID 14, line 80, chars 2563-2575, hits: 0) +- Statement (location: source ID 14, line 80, chars 2577-2580, hits: 0) +- Line (location: source ID 14, line 81, chars 2596-2630, hits: 0) +- Statement (location: source ID 14, line 81, chars 2596-2630, hits: 0) +- Statement (location: source ID 14, line 81, chars 2610-2630, hits: 0) +- Line (location: source ID 14, line 82, chars 2648-2670, hits: 0) +- Statement (location: source ID 14, line 82, chars 2648-2670, hits: 0) +- Branch (branch: 3, path: 0) (location: source ID 14, line 82, chars 2644-2770, hits: 0) +- Branch (branch: 3, path: 1) (location: source ID 14, line 82, chars 2644-2770, hits: 0) +- Line (location: source ID 14, line 84, chars 2722-2755, hits: 0) +- Statement (location: source ID 14, line 84, chars 2722-2755, hits: 0) +- Line (location: source ID 14, line 87, chars 2856-2901, hits: 0) +- Statement (location: source ID 14, line 87, chars 2856-2901, hits: 0) +- Line (location: source ID 14, line 90, chars 2935-2948, hits: 0) +- Statement (location: source ID 14, line 90, chars 2935-2948, hits: 0) + +Uncovered for contracts/token/erc721/x/utils/Minting.sol: +- Function "split" (location: source ID 15, line 10, chars 215-822, hits: 0) +- Line (location: source ID 15, line 15, chars 335-377, hits: 0) +- Statement (location: source ID 15, line 15, chars 335-377, hits: 0) +- Statement (location: source ID 15, line 15, chars 350-377, hits: 0) +- Line (location: source ID 15, line 16, chars 387-430, hits: 0) +- Statement (location: source ID 15, line 16, chars 387-430, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 15, line 16, chars 387-430, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 15, line 16, chars 387-430, hits: 0) +- Line (location: source ID 15, line 18, chars 488-546, hits: 0) +- Statement (location: source ID 15, line 18, chars 488-546, hits: 0) +- Statement (location: source ID 15, line 18, chars 506-546, hits: 0) +- Line (location: source ID 15, line 19, chars 556-614, hits: 0) +- Statement (location: source ID 15, line 19, chars 556-614, hits: 0) +- Statement (location: source ID 15, line 19, chars 582-614, hits: 0) +- Line (location: source ID 15, line 20, chars 628-648, hits: 0) +- Statement (location: source ID 15, line 20, chars 628-648, hits: 0) +- Branch (branch: 1, path: 0) (location: source ID 15, line 20, chars 624-702, hits: 0) +- Branch (branch: 1, path: 1) (location: source ID 15, line 20, chars 624-702, hits: 0) +- Line (location: source ID 15, line 21, chars 664-691, hits: 0) +- Statement (location: source ID 15, line 21, chars 664-691, hits: 0) +- Line (location: source ID 15, line 23, chars 711-778, hits: 0) +- Statement (location: source ID 15, line 23, chars 711-778, hits: 0) +- Line (location: source ID 15, line 24, chars 788-815, hits: 0) +- Statement (location: source ID 15, line 24, chars 788-815, hits: 0) + +Uncovered for contracts/trading/seaport/ImmutableSeaport.sol: +- Function "setAllowedZone" (location: source ID 0, line 59, chars 2091-2251, hits: 0) +- Line (location: source ID 0, line 60, chars 2172-2200, hits: 0) +- Statement (location: source ID 0, line 60, chars 2172-2200, hits: 0) +- Line (location: source ID 0, line 61, chars 2210-2244, hits: 0) +- Statement (location: source ID 0, line 61, chars 2210-2244, hits: 0) +- Function "_name" (location: source ID 0, line 70, chars 2419-2569, hits: 0) +- Line (location: source ID 0, line 72, chars 2537-2562, hits: 0) +- Statement (location: source ID 0, line 72, chars 2537-2562, hits: 0) +- Function "_nameString" (location: source ID 0, line 81, chars 2811-2967, hits: 0) +- Line (location: source ID 0, line 83, chars 2935-2960, hits: 0) +- Statement (location: source ID 0, line 83, chars 2935-2960, hits: 0) +- Function "_rejectIfZoneInvalid" (location: source ID 0, line 89, chars 3068-3216, hits: 0) +- Line (location: source ID 0, line 90, chars 3140-3159, hits: 0) +- Statement (location: source ID 0, line 90, chars 3140-3159, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 0, line 90, chars 3136-3210, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 0, line 90, chars 3136-3210, hits: 0) +- Line (location: source ID 0, line 91, chars 3175-3199, hits: 0) +- Statement (location: source ID 0, line 91, chars 3175-3199, hits: 0) +- Function "fulfillBasicOrder" (location: source ID 0, line 120, chars 4871-5368, hits: 0) +- Line (location: source ID 0, line 125, chars 5102-5198, hits: 0) +- Statement (location: source ID 0, line 125, chars 5102-5198, hits: 0) +- Branch (branch: 1, path: 0) (location: source ID 0, line 124, chars 5085-5261, hits: 0) +- Branch (branch: 1, path: 1) (location: source ID 0, line 124, chars 5085-5261, hits: 0) +- Line (location: source ID 0, line 128, chars 5223-5250, hits: 0) +- Statement (location: source ID 0, line 128, chars 5223-5250, hits: 0) +- Line (location: source ID 0, line 131, chars 5271-5308, hits: 0) +- Statement (location: source ID 0, line 131, chars 5271-5308, hits: 0) +- Line (location: source ID 0, line 133, chars 5319-5361, hits: 0) +- Statement (location: source ID 0, line 133, chars 5319-5361, hits: 0) +- Function "fulfillBasicOrder_efficient_6GL6yc" (location: source ID 0, line 164, chars 7241-7772, hits: 0) +- Line (location: source ID 0, line 169, chars 7489-7585, hits: 0) +- Statement (location: source ID 0, line 169, chars 7489-7585, hits: 0) +- Branch (branch: 2, path: 0) (location: source ID 0, line 168, chars 7472-7648, hits: 0) +- Branch (branch: 2, path: 1) (location: source ID 0, line 168, chars 7472-7648, hits: 0) +- Line (location: source ID 0, line 172, chars 7610-7637, hits: 0) +- Statement (location: source ID 0, line 172, chars 7610-7637, hits: 0) +- Line (location: source ID 0, line 175, chars 7658-7695, hits: 0) +- Statement (location: source ID 0, line 175, chars 7658-7695, hits: 0) +- Line (location: source ID 0, line 177, chars 7706-7765, hits: 0) +- Statement (location: source ID 0, line 177, chars 7706-7765, hits: 0) +- Function "fulfillOrder" (location: source ID 0, line 202, chars 9130-9679, hits: 0) +- Line (location: source ID 0, line 210, chars 9363-9492, hits: 0) +- Statement (location: source ID 0, line 210, chars 9363-9492, hits: 0) +- Branch (branch: 3, path: 0) (location: source ID 0, line 209, chars 9346-9555, hits: 0) +- Branch (branch: 3, path: 1) (location: source ID 0, line 209, chars 9346-9555, hits: 0) +- Line (location: source ID 0, line 213, chars 9517-9544, hits: 0) +- Statement (location: source ID 0, line 213, chars 9517-9544, hits: 0) +- Line (location: source ID 0, line 216, chars 9565-9608, hits: 0) +- Statement (location: source ID 0, line 216, chars 9565-9608, hits: 0) +- Line (location: source ID 0, line 218, chars 9619-9672, hits: 0) +- Statement (location: source ID 0, line 218, chars 9619-9672, hits: 0) +- Function "fulfillAdvancedOrder" (location: source ID 0, line 264, chars 12651-13540, hits: 0) +- Line (location: source ID 0, line 277, chars 13064-13209, hits: 0) +- Statement (location: source ID 0, line 277, chars 13064-13209, hits: 0) +- Branch (branch: 4, path: 0) (location: source ID 0, line 276, chars 13047-13272, hits: 0) +- Branch (branch: 4, path: 1) (location: source ID 0, line 276, chars 13047-13272, hits: 0) +- Line (location: source ID 0, line 280, chars 13234-13261, hits: 0) +- Statement (location: source ID 0, line 280, chars 13234-13261, hits: 0) +- Line (location: source ID 0, line 283, chars 13282-13333, hits: 0) +- Statement (location: source ID 0, line 283, chars 13282-13333, hits: 0) +- Line (location: source ID 0, line 285, chars 13344-13533, hits: 0) +- Statement (location: source ID 0, line 285, chars 13344-13533, hits: 0) +- Function "fulfillAvailableOrders" (location: source ID 0, line 347, chars 17257-18576, hits: 0) +- Line (location: source ID 0, line 372, chars 17932-17945, hits: 0) +- Statement (location: source ID 0, line 372, chars 17932-17945, hits: 0) +- Statement (location: source ID 0, line 372, chars 17947-17964, hits: 0) +- Statement (location: source ID 0, line 372, chars 17966-17969, hits: 0) +- Line (location: source ID 0, line 373, chars 17985-18015, hits: 0) +- Statement (location: source ID 0, line 373, chars 17985-18015, hits: 0) +- Line (location: source ID 0, line 375, chars 18050-18183, hits: 0) +- Statement (location: source ID 0, line 375, chars 18050-18183, hits: 0) +- Branch (branch: 5, path: 0) (location: source ID 0, line 374, chars 18029-18258, hits: 0) +- Branch (branch: 5, path: 1) (location: source ID 0, line 374, chars 18029-18258, hits: 0) +- Line (location: source ID 0, line 378, chars 18216-18243, hits: 0) +- Statement (location: source ID 0, line 378, chars 18216-18243, hits: 0) +- Line (location: source ID 0, line 380, chars 18271-18314, hits: 0) +- Statement (location: source ID 0, line 380, chars 18271-18314, hits: 0) +- Line (location: source ID 0, line 383, chars 18335-18569, hits: 0) +- Statement (location: source ID 0, line 383, chars 18335-18569, hits: 0) +- Function "fulfillAvailableAdvancedOrders" (location: source ID 0, line 471, chars 24241-25907, hits: 0) +- Line (location: source ID 0, line 501, chars 25096-25109, hits: 0) +- Statement (location: source ID 0, line 501, chars 25096-25109, hits: 0) +- Statement (location: source ID 0, line 501, chars 25111-25136, hits: 0) +- Statement (location: source ID 0, line 501, chars 25138-25141, hits: 0) +- Line (location: source ID 0, line 502, chars 25157-25211, hits: 0) +- Statement (location: source ID 0, line 502, chars 25157-25211, hits: 0) +- Line (location: source ID 0, line 504, chars 25246-25427, hits: 0) +- Statement (location: source ID 0, line 504, chars 25246-25427, hits: 0) +- Branch (branch: 6, path: 0) (location: source ID 0, line 503, chars 25225-25502, hits: 0) +- Branch (branch: 6, path: 1) (location: source ID 0, line 503, chars 25225-25502, hits: 0) +- Line (location: source ID 0, line 509, chars 25460-25487, hits: 0) +- Statement (location: source ID 0, line 509, chars 25460-25487, hits: 0) +- Line (location: source ID 0, line 512, chars 25516-25567, hits: 0) +- Statement (location: source ID 0, line 512, chars 25516-25567, hits: 0) +- Line (location: source ID 0, line 515, chars 25588-25900, hits: 0) +- Statement (location: source ID 0, line 515, chars 25588-25900, hits: 0) +- Function "matchOrders" (location: source ID 0, line 556, chars 27792-28606, hits: 0) +- Line (location: source ID 0, line 572, chars 28150-28163, hits: 0) +- Statement (location: source ID 0, line 572, chars 28150-28163, hits: 0) +- Statement (location: source ID 0, line 572, chars 28165-28182, hits: 0) +- Statement (location: source ID 0, line 572, chars 28184-28187, hits: 0) +- Line (location: source ID 0, line 573, chars 28203-28233, hits: 0) +- Statement (location: source ID 0, line 573, chars 28203-28233, hits: 0) +- Line (location: source ID 0, line 575, chars 28268-28401, hits: 0) +- Statement (location: source ID 0, line 575, chars 28268-28401, hits: 0) +- Branch (branch: 7, path: 0) (location: source ID 0, line 574, chars 28247-28476, hits: 0) +- Branch (branch: 7, path: 1) (location: source ID 0, line 574, chars 28247-28476, hits: 0) +- Line (location: source ID 0, line 578, chars 28434-28461, hits: 0) +- Statement (location: source ID 0, line 578, chars 28434-28461, hits: 0) +- Line (location: source ID 0, line 580, chars 28489-28532, hits: 0) +- Statement (location: source ID 0, line 580, chars 28489-28532, hits: 0) +- Line (location: source ID 0, line 583, chars 28553-28599, hits: 0) +- Statement (location: source ID 0, line 583, chars 28553-28599, hits: 0) +- Function "matchAdvancedOrders" (location: source ID 0, line 638, chars 32247-33466, hits: 0) +- Line (location: source ID 0, line 659, chars 32785-32798, hits: 0) +- Statement (location: source ID 0, line 659, chars 32785-32798, hits: 0) +- Statement (location: source ID 0, line 659, chars 32800-32825, hits: 0) +- Statement (location: source ID 0, line 659, chars 32827-32830, hits: 0) +- Line (location: source ID 0, line 660, chars 32846-32900, hits: 0) +- Statement (location: source ID 0, line 660, chars 32846-32900, hits: 0) +- Line (location: source ID 0, line 662, chars 32935-33116, hits: 0) +- Statement (location: source ID 0, line 662, chars 32935-33116, hits: 0) +- Branch (branch: 8, path: 0) (location: source ID 0, line 661, chars 32914-33191, hits: 0) +- Branch (branch: 8, path: 1) (location: source ID 0, line 661, chars 32914-33191, hits: 0) +- Line (location: source ID 0, line 667, chars 33149-33176, hits: 0) +- Statement (location: source ID 0, line 667, chars 33149-33176, hits: 0) +- Line (location: source ID 0, line 670, chars 33205-33256, hits: 0) +- Statement (location: source ID 0, line 670, chars 33205-33256, hits: 0) +- Line (location: source ID 0, line 673, chars 33277-33459, hits: 0) +- Statement (location: source ID 0, line 673, chars 33277-33459, hits: 0) + +Uncovered for contracts/trading/seaport/zones/ImmutableSignedZone.sol: +- Function "addSigner" (location: source ID 5, line 145, chars 5328-6155, hits: 0) +- Line (location: source ID 5, line 147, chars 5471-5491, hits: 0) +- Statement (location: source ID 5, line 147, chars 5471-5491, hits: 0) +- Branch (branch: 0, path: 0) (location: source ID 5, line 147, chars 5467-5552, hits: 0) +- Branch (branch: 0, path: 1) (location: source ID 5, line 147, chars 5467-5552, hits: 0) +- Line (location: source ID 5, line 148, chars 5507-5541, hits: 0) +- Statement (location: source ID 5, line 148, chars 5507-5541, hits: 0) +- Line (location: source ID 5, line 152, chars 5612-5700, hits: 0) +- Branch (branch: 1, path: 0) (location: source ID 5, line 152, chars 5612-5700, hits: 0) +- Branch (branch: 1, path: 1) (location: source ID 5, line 152, chars 5612-5700, hits: 0) +- Line (location: source ID 5, line 153, chars 5655-5689, hits: 0) +- Statement (location: source ID 5, line 153, chars 5655-5689, hits: 0) +- Line (location: source ID 5, line 159, chars 5873-5978, hits: 0) +- Branch (branch: 2, path: 0) (location: source ID 5, line 159, chars 5873-5978, hits: 0) +- Branch (branch: 2, path: 1) (location: source ID 5, line 159, chars 5873-5978, hits: 0) +- Line (location: source ID 5, line 160, chars 5926-5967, hits: 0) +- Statement (location: source ID 5, line 160, chars 5926-5967, hits: 0) +- Line (location: source ID 5, line 164, chars 6020-6061, hits: 0) +- Statement (location: source ID 5, line 164, chars 6020-6061, hits: 0) +- Line (location: source ID 5, line 167, chars 6124-6148, hits: 0) +- Statement (location: source ID 5, line 167, chars 6124-6148, hits: 0) +- Function "removeSigner" (location: source ID 5, line 175, chars 6289-6688, hits: 0) +- Line (location: source ID 5, line 177, chars 6416-6440, hits: 0) +- Statement (location: source ID 5, line 177, chars 6416-6440, hits: 0) +- Branch (branch: 3, path: 0) (location: source ID 5, line 177, chars 6412-6497, hits: 0) +- Branch (branch: 3, path: 1) (location: source ID 5, line 177, chars 6412-6497, hits: 0) +- Line (location: source ID 5, line 178, chars 6456-6486, hits: 0) +- Statement (location: source ID 5, line 178, chars 6456-6486, hits: 0) +- Line (location: source ID 5, line 182, chars 6559-6590, hits: 0) +- Statement (location: source ID 5, line 182, chars 6559-6590, hits: 0) +- Line (location: source ID 5, line 185, chars 6655-6681, hits: 0) +- Statement (location: source ID 5, line 185, chars 6655-6681, hits: 0) +- Function "validateOrder" (location: source ID 5, line 197, chars 7041-10845, hits: 0) +- Line (location: source ID 5, line 201, chars 7265-7316, hits: 0) +- Statement (location: source ID 5, line 201, chars 7265-7316, hits: 0) +- Line (location: source ID 5, line 202, chars 7326-7370, hits: 0) +- Statement (location: source ID 5, line 202, chars 7326-7370, hits: 0) +- Line (location: source ID 5, line 205, chars 7444-7465, hits: 0) +- Statement (location: source ID 5, line 205, chars 7444-7465, hits: 0) +- Branch (branch: 4, path: 0) (location: source ID 5, line 205, chars 7440-7548, hits: 0) +- Branch (branch: 4, path: 1) (location: source ID 5, line 205, chars 7440-7548, hits: 0) +- Line (location: source ID 5, line 206, chars 7481-7537, hits: 0) +- Statement (location: source ID 5, line 206, chars 7481-7537, hits: 0) +- Line (location: source ID 5, line 214, chars 7844-7865, hits: 0) +- Statement (location: source ID 5, line 214, chars 7844-7865, hits: 0) +- Branch (branch: 5, path: 0) (location: source ID 5, line 214, chars 7840-8018, hits: 0) +- Branch (branch: 5, path: 1) (location: source ID 5, line 214, chars 7840-8018, hits: 0) +- Line (location: source ID 5, line 215, chars 7881-8007, hits: 0) +- Statement (location: source ID 5, line 215, chars 7881-8007, hits: 0) +- Line (location: source ID 5, line 222, chars 8086-8131, hits: 0) +- Statement (location: source ID 5, line 222, chars 8086-8131, hits: 0) +- Branch (branch: 6, path: 0) (location: source ID 5, line 222, chars 8082-8213, hits: 0) +- Branch (branch: 6, path: 1) (location: source ID 5, line 222, chars 8082-8213, hits: 0) +- Line (location: source ID 5, line 223, chars 8147-8202, hits: 0) +- Statement (location: source ID 5, line 223, chars 8147-8202, hits: 0) +- Line (location: source ID 5, line 228, chars 8322-8383, hits: 0) +- Statement (location: source ID 5, line 228, chars 8322-8383, hits: 0) +- Statement (location: source ID 5, line 228, chars 8350-8383, hits: 0) +- Line (location: source ID 5, line 231, chars 8458-8510, hits: 0) +- Statement (location: source ID 5, line 231, chars 8458-8510, hits: 0) +- Statement (location: source ID 5, line 231, chars 8478-8510, hits: 0) +- Line (location: source ID 5, line 235, chars 8625-8668, hits: 0) +- Statement (location: source ID 5, line 235, chars 8625-8668, hits: 0) +- Line (location: source ID 5, line 238, chars 8750-8789, hits: 0) +- Statement (location: source ID 5, line 238, chars 8750-8789, hits: 0) +- Line (location: source ID 5, line 241, chars 8834-8862, hits: 0) +- Statement (location: source ID 5, line 241, chars 8834-8862, hits: 0) +- Branch (branch: 7, path: 0) (location: source ID 5, line 241, chars 8830-8952, hits: 0) +- Branch (branch: 7, path: 1) (location: source ID 5, line 241, chars 8830-8952, hits: 0) +- Line (location: source ID 5, line 242, chars 8878-8941, hits: 0) +- Statement (location: source ID 5, line 242, chars 8878-8941, hits: 0) +- Line (location: source ID 5, line 246, chars 9027-9077, hits: 0) +- Statement (location: source ID 5, line 246, chars 9027-9077, hits: 0) +- Line (location: source ID 5, line 252, chars 9254-9337, hits: 0) +- Statement (location: source ID 5, line 252, chars 9254-9337, hits: 0) +- Branch (branch: 8, path: 0) (location: source ID 5, line 251, chars 9237-9505, hits: 0) +- Branch (branch: 8, path: 1) (location: source ID 5, line 251, chars 9237-9505, hits: 0) +- Line (location: source ID 5, line 255, chars 9362-9494, hits: 0) +- Statement (location: source ID 5, line 255, chars 9362-9494, hits: 0) +- Line (location: source ID 5, line 263, chars 9564-9712, hits: 0) +- Statement (location: source ID 5, line 263, chars 9564-9712, hits: 0) +- Line (location: source ID 5, line 270, chars 9762-9919, hits: 0) +- Statement (location: source ID 5, line 270, chars 9762-9919, hits: 0) +- Statement (location: source ID 5, line 270, chars 9788-9919, hits: 0) +- Line (location: source ID 5, line 279, chars 10053-10162, hits: 0) +- Statement (location: source ID 5, line 279, chars 10053-10162, hits: 0) +- Statement (location: source ID 5, line 279, chars 10070-10162, hits: 0) +- Line (location: source ID 5, line 286, chars 10303-10449, hits: 0) +- Statement (location: source ID 5, line 286, chars 10303-10449, hits: 0) +- Statement (location: source ID 5, line 286, chars 10329-10449, hits: 0) +- Line (location: source ID 5, line 294, chars 10593-10626, hits: 0) +- Statement (location: source ID 5, line 294, chars 10593-10626, hits: 0) +- Branch (branch: 9, path: 0) (location: source ID 5, line 294, chars 10589-10692, hits: 0) +- Branch (branch: 9, path: 1) (location: source ID 5, line 294, chars 10589-10692, hits: 0) +- Line (location: source ID 5, line 295, chars 10642-10681, hits: 0) +- Statement (location: source ID 5, line 295, chars 10642-10681, hits: 0) +- Line (location: source ID 5, line 299, chars 10779-10838, hits: 0) +- Statement (location: source ID 5, line 299, chars 10779-10838, hits: 0) +- Function "_domainSeparator" (location: source ID 5, line 310, chars 11163-11364, hits: 0) +- Line (location: source ID 5, line 311, chars 11233-11357, hits: 0) +- Statement (location: source ID 5, line 311, chars 11233-11357, hits: 0) +- Function "getSeaportMetadata" (location: source ID 5, line 324, chars 11595-12196, hits: 0) +- Line (location: source ID 5, line 330, chars 11778-11795, hits: 0) +- Statement (location: source ID 5, line 330, chars 11778-11795, hits: 0) +- Line (location: source ID 5, line 333, chars 11835-11860, hits: 0) +- Statement (location: source ID 5, line 333, chars 11835-11860, hits: 0) +- Line (location: source ID 5, line 334, chars 11870-11887, hits: 0) +- Statement (location: source ID 5, line 334, chars 11870-11887, hits: 0) +- Line (location: source ID 5, line 336, chars 11898-12189, hits: 0) +- Statement (location: source ID 5, line 336, chars 11898-12189, hits: 0) +- Function "_deriveDomainSeparator" (location: source ID 5, line 353, chars 12361-12759, hits: 0) +- Line (location: source ID 5, line 358, chars 12481-12752, hits: 0) +- Statement (location: source ID 5, line 358, chars 12481-12752, hits: 0) +- Function "updateAPIEndpoint" (location: source ID 5, line 375, chars 12901-13095, hits: 0) +- Line (location: source ID 5, line 379, chars 13055-13088, hits: 0) +- Statement (location: source ID 5, line 379, chars 13055-13088, hits: 0) +- Function "sip7Information" (location: source ID 5, line 387, chars 13253-13714, hits: 0) +- Line (location: source ID 5, line 398, chars 13531-13567, hits: 0) +- Statement (location: source ID 5, line 398, chars 13531-13567, hits: 0) +- Line (location: source ID 5, line 399, chars 13577-13607, hits: 0) +- Statement (location: source ID 5, line 399, chars 13577-13607, hits: 0) +- Line (location: source ID 5, line 401, chars 13618-13660, hits: 0) +- Statement (location: source ID 5, line 401, chars 13618-13660, hits: 0) +- Line (location: source ID 5, line 403, chars 13671-13707, hits: 0) +- Statement (location: source ID 5, line 403, chars 13671-13707, hits: 0) +- Function "_validateSubstandards" (location: source ID 5, line 411, chars 13849-16137, hits: 0) +- Line (location: source ID 5, line 419, chars 14210-14229, hits: 0) +- Statement (location: source ID 5, line 419, chars 14210-14229, hits: 0) +- Branch (branch: 10, path: 0) (location: source ID 5, line 419, chars 14206-14425, hits: 0) +- Branch (branch: 10, path: 1) (location: source ID 5, line 419, chars 14206-14425, hits: 0) +- Line (location: source ID 5, line 420, chars 14245-14414, hits: 0) +- Statement (location: source ID 5, line 420, chars 14245-14414, hits: 0) +- Line (location: source ID 5, line 427, chars 14503-14561, hits: 0) +- Statement (location: source ID 5, line 427, chars 14503-14561, hits: 0) +- Statement (location: source ID 5, line 427, chars 14539-14561, hits: 0) +- Line (location: source ID 5, line 428, chars 14575-14627, hits: 0) +- Statement (location: source ID 5, line 428, chars 14575-14627, hits: 0) +- Branch (branch: 11, path: 0) (location: source ID 5, line 428, chars 14571-14802, hits: 0) +- Branch (branch: 11, path: 1) (location: source ID 5, line 428, chars 14571-14802, hits: 0) +- Line (location: source ID 5, line 429, chars 14643-14791, hits: 0) +- Statement (location: source ID 5, line 429, chars 14643-14791, hits: 0) +- Line (location: source ID 5, line 439, chars 14950-14996, hits: 0) +- Statement (location: source ID 5, line 439, chars 14950-14996, hits: 0) +- Line (location: source ID 5, line 441, chars 15060-15093, hits: 0) +- Statement (location: source ID 5, line 441, chars 15060-15093, hits: 0) +- Branch (branch: 12, path: 0) (location: source ID 5, line 441, chars 15056-15285, hits: 0) +- Branch (branch: 12, path: 1) (location: source ID 5, line 441, chars 15056-15285, hits: 0) +- Line (location: source ID 5, line 442, chars 15109-15274, hits: 0) +- Statement (location: source ID 5, line 442, chars 15109-15274, hits: 0) +- Line (location: source ID 5, line 449, chars 15365-15469, hits: 0) +- Statement (location: source ID 5, line 449, chars 15365-15469, hits: 0) +- Statement (location: source ID 5, line 449, chars 15404-15469, hits: 0) +- Line (location: source ID 5, line 452, chars 15484-15497, hits: 0) +- Statement (location: source ID 5, line 452, chars 15484-15497, hits: 0) +- Statement (location: source ID 5, line 452, chars 15499-15531, hits: 0) +- Statement (location: source ID 5, line 452, chars 15533-15536, hits: 0) +- Line (location: source ID 5, line 453, chars 15552-15652, hits: 0) +- Statement (location: source ID 5, line 453, chars 15552-15652, hits: 0) +- Line (location: source ID 5, line 461, chars 15838-15953, hits: 0) +- Statement (location: source ID 5, line 461, chars 15838-15953, hits: 0) +- Branch (branch: 13, path: 0) (location: source ID 5, line 460, chars 15821-16131, hits: 0) +- Branch (branch: 13, path: 1) (location: source ID 5, line 460, chars 15821-16131, hits: 0) +- Line (location: source ID 5, line 466, chars 15978-16120, hits: 0) +- Statement (location: source ID 5, line 466, chars 15978-16120, hits: 0) +- Function "_getSupportedSubstandards" (location: source ID 5, line 480, chars 16292-16557, hits: 0) +- Line (location: source ID 5, line 486, chars 16461-16492, hits: 0) +- Statement (location: source ID 5, line 486, chars 16461-16492, hits: 0) +- Line (location: source ID 5, line 487, chars 16502-16521, hits: 0) +- Statement (location: source ID 5, line 487, chars 16502-16521, hits: 0) +- Line (location: source ID 5, line 488, chars 16531-16550, hits: 0) +- Statement (location: source ID 5, line 488, chars 16531-16550, hits: 0) +- Function "_deriveSignedOrderHash" (location: source ID 5, line 502, chars 16950-17440, hits: 0) +- Line (location: source ID 5, line 509, chars 17200-17433, hits: 0) +- Statement (location: source ID 5, line 509, chars 17200-17433, hits: 0) +- Function "_deriveConsiderationHash" (location: source ID 5, line 524, chars 17597-18511, hits: 0) +- Line (location: source ID 5, line 527, chars 17726-17770, hits: 0) +- Statement (location: source ID 5, line 527, chars 17726-17770, hits: 0) +- Line (location: source ID 5, line 528, chars 17780-17847, hits: 0) +- Statement (location: source ID 5, line 528, chars 17780-17847, hits: 0) +- Statement (location: source ID 5, line 528, chars 17819-17847, hits: 0) +- Line (location: source ID 5, line 529, chars 17862-17871, hits: 0) +- Statement (location: source ID 5, line 529, chars 17862-17871, hits: 0) +- Statement (location: source ID 5, line 529, chars 17873-17890, hits: 0) +- Statement (location: source ID 5, line 529, chars 17892-17895, hits: 0) +- Line (location: source ID 5, line 530, chars 17911-18282, hits: 0) +- Statement (location: source ID 5, line 530, chars 17911-18282, hits: 0) +- Line (location: source ID 5, line 541, chars 18302-18504, hits: 0) +- Statement (location: source ID 5, line 541, chars 18302-18504, hits: 0) +- Function "_everyElementExists" (location: source ID 5, line 557, chars 18752-20028, hits: 0) +- Line (location: source ID 5, line 562, chars 18954-18988, hits: 0) +- Statement (location: source ID 5, line 562, chars 18954-18988, hits: 0) +- Line (location: source ID 5, line 563, chars 18998-19032, hits: 0) +- Statement (location: source ID 5, line 563, chars 18998-19032, hits: 0) +- Line (location: source ID 5, line 567, chars 19171-19194, hits: 0) +- Statement (location: source ID 5, line 567, chars 19171-19194, hits: 0) +- Branch (branch: 14, path: 0) (location: source ID 5, line 567, chars 19167-19233, hits: 0) +- Branch (branch: 14, path: 1) (location: source ID 5, line 567, chars 19167-19233, hits: 0) +- Line (location: source ID 5, line 568, chars 19210-19222, hits: 0) +- Statement (location: source ID 5, line 568, chars 19210-19222, hits: 0) +- Line (location: source ID 5, line 572, chars 19305-19318, hits: 0) +- Statement (location: source ID 5, line 572, chars 19305-19318, hits: 0) +- Statement (location: source ID 5, line 572, chars 19320-19334, hits: 0) +- Line (location: source ID 5, line 573, chars 19352-19370, hits: 0) +- Statement (location: source ID 5, line 573, chars 19352-19370, hits: 0) +- Line (location: source ID 5, line 574, chars 19384-19408, hits: 0) +- Statement (location: source ID 5, line 574, chars 19384-19408, hits: 0) +- Line (location: source ID 5, line 575, chars 19427-19440, hits: 0) +- Statement (location: source ID 5, line 575, chars 19427-19440, hits: 0) +- Statement (location: source ID 5, line 575, chars 19442-19456, hits: 0) +- Line (location: source ID 5, line 576, chars 19482-19499, hits: 0) +- Statement (location: source ID 5, line 576, chars 19482-19499, hits: 0) +- Branch (branch: 15, path: 0) (location: source ID 5, line 576, chars 19478-19644, hits: 0) +- Branch (branch: 15, path: 1) (location: source ID 5, line 576, chars 19478-19644, hits: 0) +- Line (location: source ID 5, line 578, chars 19586-19598, hits: 0) +- Statement (location: source ID 5, line 578, chars 19586-19598, hits: 0) +- Line (location: source ID 5, line 579, chars 19620-19625, hits: 0) +- Statement (location: source ID 5, line 579, chars 19620-19625, hits: 0) +- Line (location: source ID 5, line 582, chars 19693-19696, hits: 0) +- Statement (location: source ID 5, line 582, chars 19693-19696, hits: 0) +- Line (location: source ID 5, line 585, chars 19746-19752, hits: 0) +- Statement (location: source ID 5, line 585, chars 19746-19752, hits: 0) +- Branch (branch: 16, path: 0) (location: source ID 5, line 585, chars 19742-19879, hits: 0) +- Branch (branch: 16, path: 1) (location: source ID 5, line 585, chars 19742-19879, hits: 0) +- Line (location: source ID 5, line 587, chars 19852-19864, hits: 0) +- Statement (location: source ID 5, line 587, chars 19852-19864, hits: 0) +- Line (location: source ID 5, line 590, chars 19920-19923, hits: 0) +- Statement (location: source ID 5, line 590, chars 19920-19923, hits: 0) +- Line (location: source ID 5, line 595, chars 20010-20021, hits: 0) +- Statement (location: source ID 5, line 595, chars 20010-20021, hits: 0) +- Function "supportsInterface" (location: source ID 5, line 598, chars 20034-20288, hits: 0) +- Line (location: source ID 5, line 601, chars 20164-20281, hits: 0) +- Statement (location: source ID 5, line 601, chars 20164-20281, hits: 0) + +Uncovered for test/random/MockGame.sol: + +Uncovered for test/random/MockOffchainSource.sol: +- Branch (branch: 0, path: 0) (location: source ID 149, line 20, chars 634-695, hits: 0) +- Line (location: source ID 149, line 21, chars 662-684, hits: 0) +- Statement (location: source ID 149, line 21, chars 662-684, hits: 0) + +Uncovered for test/utils/Sign.sol: + +Anchors for Contract "Bytes" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 14): + +Anchors for Contract "MockGame" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 148): +- IC 218 -> Item 79 + - Refers to item: Function "requestRandomValueCreation" (location: source ID 148, line 10, chars 250-385, hits: 15) +- IC 373 -> Item 80 + - Refers to item: Line (location: source ID 148, line 11, chars 342-378, hits: 15) +- IC 373 -> Item 81 + - Refers to item: Statement (location: source ID 148, line 11, chars 342-378, hits: 15) +- IC 248 -> Item 82 + - Refers to item: Function "fetchRandom" (location: source ID 148, line 14, chars 391-531, hits: 15) +- IC 388 -> Item 83 + - Refers to item: Line (location: source ID 148, line 15, chars 487-524, hits: 15) +- IC 388 -> Item 84 + - Refers to item: Statement (location: source ID 148, line 15, chars 487-524, hits: 15) +- IC 140 -> Item 85 + - Refers to item: Function "fetchRandomValues" (location: source ID 148, line 18, chars 537-721, hits: 6) +- IC 317 -> Item 86 + - Refers to item: Line (location: source ID 148, line 19, chars 664-714, hits: 6) +- IC 317 -> Item 87 + - Refers to item: Statement (location: source ID 148, line 19, chars 664-714, hits: 6) +- IC 92 -> Item 88 + - Refers to item: Function "isRandomValueReady" (location: source ID 148, line 22, chars 727-870, hits: 13) +- IC 299 -> Item 89 + - Refers to item: Line (location: source ID 148, line 23, chars 819-863, hits: 13) +- IC 299 -> Item 90 + - Refers to item: Statement (location: source ID 148, line 23, chars 819-863, hits: 13) +- IC 849 -> Item 18 + - Refers to item: Function "_requestRandomValueCreation" (location: source ID 8, line 43, chars 1797-2228, hits: 15) +- IC 852 -> Item 19 + - Refers to item: Line (location: source ID 8, line 44, chars 1890-1920, hits: 15) +- IC 852 -> Item 20 + - Refers to item: Statement (location: source ID 8, line 44, chars 1890-1920, hits: 15) +- IC 853 -> Item 21 + - Refers to item: Line (location: source ID 8, line 45, chars 1930-1950, hits: 15) +- IC 853 -> Item 22 + - Refers to item: Statement (location: source ID 8, line 45, chars 1930-1950, hits: 15) +- IC 855 -> Item 23 + - Refers to item: Line (location: source ID 8, line 46, chars 1960-2039, hits: 15) +- IC 855 -> Item 24 + - Refers to item: Statement (location: source ID 8, line 46, chars 1960-2039, hits: 15) +- IC 1007 -> Item 25 + - Refers to item: Line (location: source ID 8, line 47, chars 2049-2079, hits: 15) +- IC 1007 -> Item 26 + - Refers to item: Statement (location: source ID 8, line 47, chars 2049-2079, hits: 15) +- IC 1032 -> Item 27 + - Refers to item: Line (location: source ID 8, line 48, chars 2089-2152, hits: 15) +- IC 1032 -> Item 28 + - Refers to item: Statement (location: source ID 8, line 48, chars 2089-2152, hits: 15) +- IC 1055 -> Item 29 + - Refers to item: Line (location: source ID 8, line 49, chars 2162-2221, hits: 15) +- IC 1055 -> Item 30 + - Refers to item: Statement (location: source ID 8, line 49, chars 2162-2221, hits: 15) +- IC 1141 -> Item 31 + - Refers to item: Function "_fetchRandom" (location: source ID 8, line 61, chars 2772-3209, hits: 15) +- IC 1144 -> Item 32 + - Refers to item: Line (location: source ID 8, line 65, chars 3077-3132, hits: 15) +- IC 1144 -> Item 33 + - Refers to item: Statement (location: source ID 8, line 65, chars 3077-3132, hits: 15) +- IC 1145 -> Item 34 + - Refers to item: Statement (location: source ID 8, line 65, chars 3092-3132, hits: 15) +- IC 1156 -> Item 35 + - Refers to item: Line (location: source ID 8, line 66, chars 3142-3202, hits: 15) +- IC 1156 -> Item 36 + - Refers to item: Statement (location: source ID 8, line 66, chars 3142-3202, hits: 15) +- IC 637 -> Item 37 + - Refers to item: Function "_fetchRandomValues" (location: source ID 8, line 78, chars 3838-4204, hits: 6) +- IC 640 -> Item 38 + - Refers to item: Line (location: source ID 8, line 79, chars 3966-4021, hits: 6) +- IC 640 -> Item 39 + - Refers to item: Statement (location: source ID 8, line 79, chars 3966-4021, hits: 6) +- IC 642 -> Item 40 + - Refers to item: Statement (location: source ID 8, line 79, chars 3981-4021, hits: 6) +- IC 653 -> Item 41 + - Refers to item: Line (location: source ID 8, line 81, chars 4032-4068, hits: 6) +- IC 653 -> Item 42 + - Refers to item: Statement (location: source ID 8, line 81, chars 4032-4068, hits: 6) +- IC 728 -> Item 43 + - Refers to item: Line (location: source ID 8, line 82, chars 4083-4096, hits: 6) +- IC 728 -> Item 44 + - Refers to item: Statement (location: source ID 8, line 82, chars 4083-4096, hits: 6) +- IC 731 -> Item 45 + - Refers to item: Statement (location: source ID 8, line 82, chars 4098-4107, hits: 24) +- IC 823 -> Item 46 + - Refers to item: Statement (location: source ID 8, line 82, chars 4109-4112, hits: 18) +- IC 739 -> Item 47 + - Refers to item: Line (location: source ID 8, line 83, chars 4128-4187, hits: 18) +- IC 739 -> Item 48 + - Refers to item: Statement (location: source ID 8, line 83, chars 4128-4187, hits: 18) +- IC 403 -> Item 49 + - Refers to item: Function "_isRandomValueReady" (location: source ID 8, line 93, chars 4532-4774, hits: 13) +- IC 406 -> Item 50 + - Refers to item: Line (location: source ID 8, line 94, chars 4625-4767, hits: 13) +- IC 406 -> Item 51 + - Refers to item: Statement (location: source ID 8, line 94, chars 4625-4767, hits: 13) +- IC 1205 -> Item 52 + - Refers to item: Function "_fetchPersonalisedSeed" (location: source ID 8, line 106, chars 5330-6214, hits: 21) +- IC 1208 -> Item 53 + - Refers to item: Line (location: source ID 8, line 108, chars 5524-5676, hits: 21) +- IC 1208 -> Item 54 + - Refers to item: Statement (location: source ID 8, line 108, chars 5524-5676, hits: 21) +- IC 1209 -> Item 55 + - Refers to item: Statement (location: source ID 8, line 108, chars 5545-5676, hits: 21) +- IC 1438 -> Item 56 + - Refers to item: Line (location: source ID 8, line 116, chars 6115-6207, hits: 21) +- IC 1438 -> Item 57 + - Refers to item: Statement (location: source ID 8, line 116, chars 6115-6207, hits: 21) + +Anchors for Contract "ImmutableERC1155" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 14): +- IC 1183 -> Item 350 + - Refers to item: Function "safeMint" (location: source ID 14, line 39, chars 1220-1376, hits: 13) +- IC 3985 -> Item 351 + - Refers to item: Line (location: source ID 14, line 40, chars 1337-1369, hits: 13) +- IC 3985 -> Item 352 + - Refers to item: Statement (location: source ID 14, line 40, chars 1337-1369, hits: 13) +- IC 1667 -> Item 353 + - Refers to item: Function "safeMintBatch" (location: source ID 14, line 43, chars 1382-1574, hits: 1) +- IC 5642 -> Item 354 + - Refers to item: Line (location: source ID 14, line 44, chars 1528-1567, hits: 1) +- IC 5642 -> Item 355 + - Refers to item: Statement (location: source ID 14, line 44, chars 1528-1567, hits: 1) +- IC 1801 -> Item 605 + - Refers to item: Function "permit" (location: source ID 11, line 24, chars 884-2067, hits: 4) +- IC 5898 -> Item 606 + - Refers to item: Line (location: source ID 11, line 25, chars 1006-1032, hits: 4) +- IC 5898 -> Item 607 + - Refers to item: Statement (location: source ID 11, line 25, chars 1006-1032, hits: 4) +- IC 5906 -> Item 608 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 11, line 25, chars 1002-1081, hits: 1) +- IC 5955 -> Item 609 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 11, line 25, chars 1002-1081, hits: 3) +- IC 5906 -> Item 610 + - Refers to item: Line (location: source ID 11, line 26, chars 1048-1070, hits: 1) +- IC 5906 -> Item 611 + - Refers to item: Statement (location: source ID 11, line 26, chars 1048-1070, hits: 1) +- IC 5956 -> Item 612 + - Refers to item: Line (location: source ID 11, line 29, chars 1091-1162, hits: 3) +- IC 5956 -> Item 613 + - Refers to item: Statement (location: source ID 11, line 29, chars 1091-1162, hits: 3) +- IC 5958 -> Item 614 + - Refers to item: Statement (location: source ID 11, line 29, chars 1108-1162, hits: 3) +- IC 5972 -> Item 615 + - Refers to item: Line (location: source ID 11, line 32, chars 1224-1268, hits: 3) +- IC 5972 -> Item 616 + - Refers to item: Statement (location: source ID 11, line 32, chars 1224-1268, hits: 3) +- IC 5988 -> Item 617 + - Refers to item: Branch (branch: 1, path: 0) (location: source ID 11, line 32, chars 1220-1360, hits: 0) +- IC 6004 -> Item 618 + - Refers to item: Branch (branch: 1, path: 1) (location: source ID 11, line 32, chars 1220-1360, hits: 3) +- IC 5988 -> Item 619 + - Refers to item: Line (location: source ID 11, line 33, chars 1285-1329, hits: 0) +- IC 5988 -> Item 620 + - Refers to item: Statement (location: source ID 11, line 33, chars 1285-1329, hits: 0) +- IC 5999 -> Item 621 + - Refers to item: Line (location: source ID 11, line 34, chars 1343-1350, hits: 0) +- IC 5999 -> Item 622 + - Refers to item: Statement (location: source ID 11, line 34, chars 1343-1350, hits: 0) +- IC 6005 -> Item 623 + - Refers to item: Line (location: source ID 11, line 37, chars 1370-1393, hits: 3) +- IC 6005 -> Item 624 + - Refers to item: Statement (location: source ID 11, line 37, chars 1370-1393, hits: 3) +- IC 6007 -> Item 625 + - Refers to item: Line (location: source ID 11, line 40, chars 1444-1460, hits: 3) +- IC 6007 -> Item 626 + - Refers to item: Statement (location: source ID 11, line 40, chars 1444-1460, hits: 3) +- IC 6016 -> Item 627 + - Refers to item: Branch (branch: 2, path: 0) (location: source ID 11, line 40, chars 1440-1690, hits: 0) +- IC 6075 -> Item 628 + - Refers to item: Branch (branch: 2, path: 1) (location: source ID 11, line 40, chars 1440-1690, hits: 3) +- IC 6016 -> Item 629 + - Refers to item: Line (location: source ID 11, line 42, chars 1503-1679, hits: 0) +- IC 6016 -> Item 630 + - Refers to item: Statement (location: source ID 11, line 42, chars 1503-1679, hits: 0) +- IC 6076 -> Item 631 + - Refers to item: Line (location: source ID 11, line 47, chars 1700-1716, hits: 3) +- IC 6076 -> Item 632 + - Refers to item: Statement (location: source ID 11, line 47, chars 1700-1716, hits: 3) +- IC 6085 -> Item 633 + - Refers to item: Branch (branch: 3, path: 0) (location: source ID 11, line 47, chars 1696-1820, hits: 3) +- IC 6101 -> Item 634 + - Refers to item: Branch (branch: 3, path: 1) (location: source ID 11, line 47, chars 1696-1820, hits: 0) +- IC 6085 -> Item 635 + - Refers to item: Line (location: source ID 11, line 49, chars 1765-1809, hits: 3) +- IC 6085 -> Item 636 + - Refers to item: Statement (location: source ID 11, line 49, chars 1765-1809, hits: 3) +- IC 6102 -> Item 637 + - Refers to item: Line (location: source ID 11, line 51, chars 1840-1865, hits: 0) +- IC 6102 -> Item 638 + - Refers to item: Statement (location: source ID 11, line 51, chars 1840-1865, hits: 0) +- IC 6153 -> Item 639 + - Refers to item: Line (location: source ID 11, line 54, chars 1890-1934, hits: 3) +- IC 6153 -> Item 640 + - Refers to item: Statement (location: source ID 11, line 54, chars 1890-1934, hits: 3) +- IC 6168 -> Item 641 + - Refers to item: Branch (branch: 4, path: 0) (location: source ID 11, line 54, chars 1886-2005, hits: 1) +- IC 6183 -> Item 642 + - Refers to item: Branch (branch: 4, path: 1) (location: source ID 11, line 54, chars 1886-2005, hits: 2) +- IC 6168 -> Item 643 + - Refers to item: Line (location: source ID 11, line 55, chars 1950-1994, hits: 1) +- IC 6168 -> Item 644 + - Refers to item: Statement (location: source ID 11, line 55, chars 1950-1994, hits: 1) +- IC 6184 -> Item 645 + - Refers to item: Line (location: source ID 11, line 57, chars 2025-2050, hits: 2) +- IC 6184 -> Item 646 + - Refers to item: Statement (location: source ID 11, line 57, chars 2025-2050, hits: 2) +- IC 1297 -> Item 647 + - Refers to item: Function "nonces" (location: source ID 11, line 66, chars 2265-2380, hits: 1) +- IC 4368 -> Item 648 + - Refers to item: Line (location: source ID 11, line 69, chars 2352-2373, hits: 1) +- IC 4368 -> Item 649 + - Refers to item: Statement (location: source ID 11, line 69, chars 2352-2373, hits: 1) +- IC 945 -> Item 650 + - Refers to item: Function "DOMAIN_SEPARATOR" (location: source ID 11, line 76, chars 2563-2676, hits: 0) +- IC 3338 -> Item 651 + - Refers to item: Line (location: source ID 11, line 77, chars 2642-2669, hits: 0) +- IC 3338 -> Item 652 + - Refers to item: Statement (location: source ID 11, line 77, chars 2642-2669, hits: 0) +- IC 14123 -> Item 653 + - Refers to item: Function "supportsInterface" (location: source ID 11, line 85, chars 2987-3255, hits: 0) +- IC 14126 -> Item 654 + - Refers to item: Line (location: source ID 11, line 92, chars 3128-3248, hits: 0) +- IC 14126 -> Item 655 + - Refers to item: Statement (location: source ID 11, line 92, chars 3128-3248, hits: 0) +- IC 10947 -> Item 656 + - Refers to item: Function "_buildPermitDigest" (location: source ID 11, line 104, chars 3643-4126, hits: 3) +- IC 10950 -> Item 657 + - Refers to item: Line (location: source ID 11, line 110, chars 3811-4119, hits: 3) +- IC 10950 -> Item 658 + - Refers to item: Statement (location: source ID 11, line 110, chars 3811-4119, hits: 3) +- IC 11131 -> Item 659 + - Refers to item: Function "_isValidERC1271Signature" (location: source ID 11, line 131, chars 4499-5085, hits: 3) +- IC 11134 -> Item 660 + - Refers to item: Line (location: source ID 11, line 132, chars 4621-4831, hits: 3) +- IC 11134 -> Item 661 + - Refers to item: Statement (location: source ID 11, line 132, chars 4621-4831, hits: 3) +- IC 11137 -> Item 662 + - Refers to item: Statement (location: source ID 11, line 132, chars 4656-4831, hits: 3) +- IC 11362 -> Item 663 + - Refers to item: Line (location: source ID 11, line 140, chars 4846-4873, hits: 3) +- IC 11362 -> Item 664 + - Refers to item: Statement (location: source ID 11, line 140, chars 4846-4873, hits: 3) +- IC 11481 -> Item 665 + - Refers to item: Branch (branch: 5, path: 0) (location: source ID 11, line 140, chars 4842-5056, hits: 0) +- IC 11492 -> Item 666 + - Refers to item: Branch (branch: 5, path: 1) (location: source ID 11, line 140, chars 4842-5056, hits: 0) +- IC 11381 -> Item 667 + - Refers to item: Line (location: source ID 11, line 141, chars 4889-4934, hits: 0) +- IC 11381 -> Item 668 + - Refers to item: Statement (location: source ID 11, line 141, chars 4889-4934, hits: 0) +- IC 11383 -> Item 669 + - Refers to item: Statement (location: source ID 11, line 141, chars 4909-4934, hits: 0) +- IC 11405 -> Item 670 + - Refers to item: Line (location: source ID 11, line 142, chars 4952-5000, hits: 0) +- IC 11405 -> Item 671 + - Refers to item: Statement (location: source ID 11, line 142, chars 4952-5000, hits: 0) +- IC 11481 -> Item 672 + - Refers to item: Branch (branch: 6, path: 0) (location: source ID 11, line 142, chars 4948-5046, hits: 0) +- IC 11492 -> Item 673 + - Refers to item: Branch (branch: 6, path: 1) (location: source ID 11, line 142, chars 4948-5046, hits: 0) +- IC 11481 -> Item 674 + - Refers to item: Line (location: source ID 11, line 143, chars 5020-5031, hits: 0) +- IC 11481 -> Item 675 + - Refers to item: Statement (location: source ID 11, line 143, chars 5020-5031, hits: 0) +- IC 11495 -> Item 676 + - Refers to item: Line (location: source ID 11, line 147, chars 5066-5078, hits: 3) +- IC 11495 -> Item 677 + - Refers to item: Statement (location: source ID 11, line 147, chars 5066-5078, hits: 3) +- IC 12238 -> Item 678 + - Refers to item: Function "_isValidEOASignature" (location: source ID 11, line 156, chars 5405-5583, hits: 3) +- IC 12241 -> Item 679 + - Refers to item: Line (location: source ID 11, line 157, chars 5512-5576, hits: 3) +- IC 12241 -> Item 680 + - Refers to item: Statement (location: source ID 11, line 157, chars 5512-5576, hits: 3) +- IC 1381 -> Item 681 + - Refers to item: Function "setDefaultRoyaltyReceiver" (location: source ID 13, line 61, chars 1879-2048, hits: 0) +- IC 4710 -> Item 682 + - Refers to item: Line (location: source ID 13, line 62, chars 1999-2041, hits: 0) +- IC 4710 -> Item 683 + - Refers to item: Statement (location: source ID 13, line 62, chars 1999-2041, hits: 0) +- IC 1031 -> Item 684 + - Refers to item: Function "setNFTRoyaltyReceiver" (location: source ID 13, line 71, chars 2328-2540, hits: 0) +- IC 3583 -> Item 685 + - Refers to item: Line (location: source ID 13, line 76, chars 2484-2533, hits: 0) +- IC 3583 -> Item 686 + - Refers to item: Statement (location: source ID 13, line 76, chars 2484-2533, hits: 0) +- IC 1591 -> Item 687 + - Refers to item: Function "setNFTRoyaltyReceiverBatch" (location: source ID 13, line 85, chars 2822-3122, hits: 0) +- IC 5494 -> Item 688 + - Refers to item: Line (location: source ID 13, line 90, chars 3000-3010, hits: 0) +- IC 5494 -> Item 689 + - Refers to item: Statement (location: source ID 13, line 90, chars 3000-3010, hits: 0) +- IC 5497 -> Item 690 + - Refers to item: Statement (location: source ID 13, line 90, chars 3012-3031, hits: 0) +- IC 5544 -> Item 691 + - Refers to item: Statement (location: source ID 13, line 90, chars 3033-3036, hits: 0) +- IC 5508 -> Item 692 + - Refers to item: Line (location: source ID 13, line 91, chars 3052-3105, hits: 0) +- IC 5508 -> Item 693 + - Refers to item: Statement (location: source ID 13, line 91, chars 3052-3105, hits: 0) +- IC 1003 -> Item 694 + - Refers to item: Function "grantMinterRole" (location: source ID 13, line 99, chars 3249-3369, hits: 1) +- IC 3495 -> Item 695 + - Refers to item: Line (location: source ID 13, line 100, chars 3334-3362, hits: 1) +- IC 3495 -> Item 696 + - Refers to item: Statement (location: source ID 13, line 100, chars 3334-3362, hits: 1) +- IC 1211 -> Item 697 + - Refers to item: Function "revokeMinterRole" (location: source ID 13, line 107, chars 3522-3644, hits: 0) +- IC 4017 -> Item 698 + - Refers to item: Line (location: source ID 13, line 108, chars 3608-3637, hits: 0) +- IC 4017 -> Item 699 + - Refers to item: Statement (location: source ID 13, line 108, chars 3608-3637, hits: 0) +- IC 1563 -> Item 700 + - Refers to item: Function "setApprovalForAll" (location: source ID 13, line 116, chars 3927-4099, hits: 7) +- IC 5437 -> Item 701 + - Refers to item: Line (location: source ID 13, line 117, chars 4049-4092, hits: 6) +- IC 5437 -> Item 702 + - Refers to item: Statement (location: source ID 13, line 117, chars 4049-4092, hits: 6) +- IC 1155 -> Item 703 + - Refers to item: Function "setBaseURI" (location: source ID 13, line 124, chars 4236-4377, hits: 2) +- IC 3914 -> Item 704 + - Refers to item: Line (location: source ID 13, line 125, chars 4325-4342, hits: 1) +- IC 3914 -> Item 705 + - Refers to item: Statement (location: source ID 13, line 125, chars 4325-4342, hits: 1) +- IC 3923 -> Item 706 + - Refers to item: Line (location: source ID 13, line 126, chars 4351-4370, hits: 1) +- IC 3923 -> Item 707 + - Refers to item: Statement (location: source ID 13, line 126, chars 4351-4370, hits: 1) +- IC 1505 -> Item 708 + - Refers to item: Function "setContractURI" (location: source ID 13, line 130, chars 4433-4564, hits: 2) +- IC 4891 -> Item 709 + - Refers to item: Line (location: source ID 13, line 131, chars 4531-4557, hits: 1) +- IC 4891 -> Item 710 + - Refers to item: Statement (location: source ID 13, line 131, chars 4531-4557, hits: 1) +- IC 1619 -> Item 711 + - Refers to item: Function "totalSupply" (location: source ID 13, line 138, chars 4715-4826, hits: 2) +- IC 5573 -> Item 712 + - Refers to item: Line (location: source ID 13, line 139, chars 4796-4819, hits: 2) +- IC 5573 -> Item 713 + - Refers to item: Statement (location: source ID 13, line 139, chars 4796-4819, hits: 2) +- IC 1107 -> Item 714 + - Refers to item: Function "exists" (location: source ID 13, line 146, chars 4984-5090, hits: 0) +- IC 3883 -> Item 715 + - Refers to item: Line (location: source ID 13, line 147, chars 5057-5083, hits: 0) +- IC 3883 -> Item 716 + - Refers to item: Statement (location: source ID 13, line 147, chars 5057-5083, hits: 0) +- IC 636 -> Item 717 + - Refers to item: Function "supportsInterface" (location: source ID 13, line 155, chars 5395-5655, hits: 0) +- IC 2195 -> Item 718 + - Refers to item: Line (location: source ID 13, line 164, chars 5605-5648, hits: 0) +- IC 2195 -> Item 719 + - Refers to item: Statement (location: source ID 13, line 164, chars 5605-5648, hits: 0) +- IC 1267 -> Item 720 + - Refers to item: Function "baseURI" (location: source ID 13, line 177, chars 6086-6181, hits: 2) +- IC 4222 -> Item 721 + - Refers to item: Line (location: source ID 13, line 178, chars 6159-6174, hits: 2) +- IC 4222 -> Item 722 + - Refers to item: Statement (location: source ID 13, line 178, chars 6159-6174, hits: 2) +- IC 684 -> Item 723 + - Refers to item: Function "uri" (location: source ID 13, line 195, chars 6793-6900, hits: 0) +- IC 2213 -> Item 724 + - Refers to item: Line (location: source ID 13, line 196, chars 6878-6893, hits: 0) +- IC 2213 -> Item 725 + - Refers to item: Statement (location: source ID 13, line 196, chars 6878-6893, hits: 0) +- IC 915 -> Item 726 + - Refers to item: Function "getAdmins" (location: source ID 13, line 203, chars 7055-7394, hits: 0) +- IC 3114 -> Item 727 + - Refers to item: Line (location: source ID 13, line 204, chars 7125-7184, hits: 0) +- IC 3114 -> Item 728 + - Refers to item: Statement (location: source ID 13, line 204, chars 7125-7184, hits: 0) +- IC 3116 -> Item 729 + - Refers to item: Statement (location: source ID 13, line 204, chars 7146-7184, hits: 0) +- IC 3130 -> Item 730 + - Refers to item: Line (location: source ID 13, line 205, chars 7194-7245, hits: 0) +- IC 3130 -> Item 731 + - Refers to item: Statement (location: source ID 13, line 205, chars 7194-7245, hits: 0) +- IC 3132 -> Item 732 + - Refers to item: Statement (location: source ID 13, line 205, chars 7220-7245, hits: 0) +- IC 3207 -> Item 733 + - Refers to item: Line (location: source ID 13, line 206, chars 7260-7269, hits: 0) +- IC 3207 -> Item 734 + - Refers to item: Statement (location: source ID 13, line 206, chars 7260-7269, hits: 0) +- IC 3210 -> Item 735 + - Refers to item: Statement (location: source ID 13, line 206, chars 7271-7285, hits: 0) +- IC 3308 -> Item 736 + - Refers to item: Statement (location: source ID 13, line 206, chars 7287-7290, hits: 0) +- IC 3218 -> Item 737 + - Refers to item: Line (location: source ID 13, line 207, chars 7306-7354, hits: 0) +- IC 3218 -> Item 738 + - Refers to item: Statement (location: source ID 13, line 207, chars 7306-7354, hits: 0) +- IC 3328 -> Item 739 + - Refers to item: Line (location: source ID 13, line 209, chars 7374-7387, hits: 0) +- IC 3328 -> Item 740 + - Refers to item: Statement (location: source ID 13, line 209, chars 7374-7387, hits: 0) +- IC 15999 -> Item 741 + - Refers to item: Function "_beforeTokenTransfer" (location: source ID 13, line 221, chars 7877-8781, hits: 21) +- IC 16000 -> Item 742 + - Refers to item: Line (location: source ID 13, line 229, chars 8108-8174, hits: 21) +- IC 16000 -> Item 743 + - Refers to item: Statement (location: source ID 13, line 229, chars 8108-8174, hits: 21) +- IC 16014 -> Item 744 + - Refers to item: Line (location: source ID 13, line 231, chars 8189-8207, hits: 21) +- IC 16014 -> Item 745 + - Refers to item: Statement (location: source ID 13, line 231, chars 8189-8207, hits: 21) +- IC 16119 -> Item 746 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 13, line 231, chars 8185-8341, hits: 0) +- IC 16127 -> Item 747 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 13, line 231, chars 8185-8341, hits: 16) +- IC 16066 -> Item 748 + - Refers to item: Line (location: source ID 13, line 232, chars 8228-8241, hits: 14) +- IC 16066 -> Item 749 + - Refers to item: Statement (location: source ID 13, line 232, chars 8228-8241, hits: 14) +- IC 16069 -> Item 750 + - Refers to item: Statement (location: source ID 13, line 232, chars 8243-8257, hits: 30) +- IC 16172 -> Item 751 + - Refers to item: Statement (location: source ID 13, line 232, chars 8259-8262, hits: 16) +- IC 16078 -> Item 752 + - Refers to item: Line (location: source ID 13, line 233, chars 8282-8316, hits: 16) +- IC 16078 -> Item 753 + - Refers to item: Statement (location: source ID 13, line 233, chars 8282-8316, hits: 16) +- IC 16191 -> Item 754 + - Refers to item: Line (location: source ID 13, line 237, chars 8355-8371, hits: 21) +- IC 16191 -> Item 755 + - Refers to item: Statement (location: source ID 13, line 237, chars 8355-8371, hits: 21) +- IC 16349 -> Item 756 + - Refers to item: Branch (branch: 1, path: 0) (location: source ID 13, line 237, chars 8351-8775, hits: 0) +- IC 16407 -> Item 757 + - Refers to item: Branch (branch: 1, path: 1) (location: source ID 13, line 237, chars 8351-8775, hits: 3) +- IC 16243 -> Item 758 + - Refers to item: Line (location: source ID 13, line 238, chars 8392-8405, hits: 2) +- IC 16243 -> Item 759 + - Refers to item: Statement (location: source ID 13, line 238, chars 8392-8405, hits: 2) +- IC 16246 -> Item 760 + - Refers to item: Statement (location: source ID 13, line 238, chars 8407-8421, hits: 5) +- IC 16437 -> Item 761 + - Refers to item: Statement (location: source ID 13, line 238, chars 8423-8426, hits: 3) +- IC 16255 -> Item 762 + - Refers to item: Line (location: source ID 13, line 239, chars 8446-8465, hits: 3) +- IC 16255 -> Item 763 + - Refers to item: Statement (location: source ID 13, line 239, chars 8446-8465, hits: 3) +- IC 16286 -> Item 764 + - Refers to item: Line (location: source ID 13, line 240, chars 8483-8510, hits: 3) +- IC 16286 -> Item 765 + - Refers to item: Statement (location: source ID 13, line 240, chars 8483-8510, hits: 3) +- IC 16317 -> Item 766 + - Refers to item: Line (location: source ID 13, line 241, chars 8528-8561, hits: 3) +- IC 16317 -> Item 767 + - Refers to item: Statement (location: source ID 13, line 241, chars 8528-8561, hits: 3) +- IC 16341 -> Item 768 + - Refers to item: Line (location: source ID 13, line 242, chars 8579-8648, hits: 3) +- IC 16341 -> Item 769 + - Refers to item: Statement (location: source ID 13, line 242, chars 8579-8648, hits: 3) +- IC 16349 -> Item 770 + - Refers to item: Branch (branch: 2, path: 0) (location: source ID 13, line 242, chars 8579-8648, hits: 0) +- IC 16407 -> Item 771 + - Refers to item: Branch (branch: 2, path: 1) (location: source ID 13, line 242, chars 8579-8648, hits: 3) +- IC 16408 -> Item 772 + - Refers to item: Line (location: source ID 13, line 244, chars 8698-8732, hits: 3) +- IC 16408 -> Item 773 + - Refers to item: Statement (location: source ID 13, line 244, chars 8698-8732, hits: 3) +- IC 12718 -> Item 774 + - Refers to item: Function "_safeTransferFrom" (location: source ID 13, line 258, chars 9166-9377, hits: 4) +- IC 13518 -> Item 775 + - Refers to item: Line (location: source ID 13, line 259, chars 9320-9370, hits: 3) +- IC 13518 -> Item 776 + - Refers to item: Statement (location: source ID 13, line 259, chars 9320-9370, hits: 3) +- IC 7017 -> Item 777 + - Refers to item: Function "_safeBatchTransferFrom" (location: source ID 13, line 270, chars 9784-10027, hits: 2) +- IC 7817 -> Item 778 + - Refers to item: Line (location: source ID 13, line 271, chars 9963-10020, hits: 2) +- IC 7817 -> Item 779 + - Refers to item: Statement (location: source ID 13, line 271, chars 9963-10020, hits: 2) +- IC 1829 -> Item 1523 + - Refers to item: Function "setOperatorAllowlistRegistry" (location: source ID 2, line 94, chars 3760-3928, hits: 0) +- IC 6257 -> Item 1524 + - Refers to item: Line (location: source ID 2, line 95, chars 3872-3921, hits: 0) +- IC 6257 -> Item 1525 + - Refers to item: Statement (location: source ID 2, line 95, chars 3872-3921, hits: 0) +- IC 20464 -> Item 1526 + - Refers to item: Function "supportsInterface" (location: source ID 2, line 102, chars 4071-4222, hits: 0) +- IC 20467 -> Item 1527 + - Refers to item: Line (location: source ID 2, line 103, chars 4172-4215, hits: 0) +- IC 20467 -> Item 1528 + - Refers to item: Statement (location: source ID 2, line 103, chars 4172-4215, hits: 0) +- IC 12351 -> Item 1529 + - Refers to item: Function "_setOperatorAllowlistRegistry" (location: source ID 2, line 110, chars 4419-4842, hits: 0) +- IC 12352 -> Item 1530 + - Refers to item: Line (location: source ID 2, line 111, chars 4509-4593, hits: 0) +- IC 12352 -> Item 1531 + - Refers to item: Statement (location: source ID 2, line 111, chars 4509-4593, hits: 0) +- IC 12510 -> Item 1532 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 2, line 111, chars 4505-4672, hits: 0) +- IC 12559 -> Item 1533 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 2, line 111, chars 4505-4672, hits: 0) +- IC 12510 -> Item 1534 + - Refers to item: Line (location: source ID 2, line 112, chars 4609-4661, hits: 0) +- IC 12510 -> Item 1535 + - Refers to item: Statement (location: source ID 2, line 112, chars 4609-4661, hits: 0) +- IC 12560 -> Item 1536 + - Refers to item: Line (location: source ID 2, line 115, chars 4682-4767, hits: 0) +- IC 12560 -> Item 1537 + - Refers to item: Statement (location: source ID 2, line 115, chars 4682-4767, hits: 0) +- IC 12651 -> Item 1538 + - Refers to item: Line (location: source ID 2, line 116, chars 4777-4835, hits: 0) +- IC 12651 -> Item 1539 + - Refers to item: Statement (location: source ID 2, line 116, chars 4777-4835, hits: 0) + +Anchors for Contract "Sign" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 153): +- IC 48 -> Item 492 + - Refers to item: Function "buildPermitDigest" (location: source ID 153, line 15, chars 400-796, hits: 4) +- IC 99 -> Item 493 + - Refers to item: Line (location: source ID 153, line 16, chars 547-702, hits: 4) +- IC 99 -> Item 494 + - Refers to item: Statement (location: source ID 153, line 16, chars 547-702, hits: 4) +- IC 100 -> Item 495 + - Refers to item: Statement (location: source ID 153, line 16, chars 568-702, hits: 4) +- IC 183 -> Item 496 + - Refers to item: Line (location: source ID 153, line 21, chars 712-789, hits: 4) +- IC 183 -> Item 497 + - Refers to item: Statement (location: source ID 153, line 21, chars 712-789, hits: 4) + +Anchors for Contract "MockEIP1271Wallet" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 4): +- IC 59 -> Item 42 + - Refers to item: Function "isValidSignature" (location: source ID 4, line 14, chars 316-633, hits: 0) +- IC 140 -> Item 43 + - Refers to item: Line (location: source ID 4, line 15, chars 428-485, hits: 0) +- IC 140 -> Item 44 + - Refers to item: Statement (location: source ID 4, line 15, chars 428-485, hits: 0) +- IC 141 -> Item 45 + - Refers to item: Statement (location: source ID 4, line 15, chars 455-485, hits: 0) +- IC 153 -> Item 46 + - Refers to item: Line (location: source ID 4, line 16, chars 499-524, hits: 0) +- IC 153 -> Item 47 + - Refers to item: Statement (location: source ID 4, line 16, chars 499-524, hits: 0) +- IC 236 -> Item 48 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 4, line 16, chars 495-588, hits: 0) +- IC 251 -> Item 49 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 4, line 16, chars 495-588, hits: 0) +- IC 236 -> Item 50 + - Refers to item: Line (location: source ID 4, line 17, chars 540-577, hits: 0) +- IC 236 -> Item 51 + - Refers to item: Statement (location: source ID 4, line 17, chars 540-577, hits: 0) +- IC 252 -> Item 52 + - Refers to item: Line (location: source ID 4, line 19, chars 608-616, hits: 0) +- IC 252 -> Item 53 + - Refers to item: Statement (location: source ID 4, line 19, chars 608-616, hits: 0) + +Anchors for Contract "OperatorAllowlist" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 1): +- IC 478 -> Item 275 + - Refers to item: Function "addAddressToAllowlist" (location: source ID 1, line 66, chars 2512-2810, hits: 2) +- IC 1844 -> Item 276 + - Refers to item: Line (location: source ID 1, line 67, chars 2627-2636, hits: 2) +- IC 1844 -> Item 277 + - Refers to item: Statement (location: source ID 1, line 67, chars 2627-2636, hits: 2) +- IC 1847 -> Item 278 + - Refers to item: Statement (location: source ID 1, line 67, chars 2638-2663, hits: 4) +- IC 2102 -> Item 279 + - Refers to item: Statement (location: source ID 1, line 67, chars 2665-2668, hits: 2) +- IC 1858 -> Item 280 + - Refers to item: Line (location: source ID 1, line 68, chars 2684-2726, hits: 2) +- IC 1858 -> Item 281 + - Refers to item: Statement (location: source ID 1, line 68, chars 2684-2726, hits: 2) +- IC 1984 -> Item 282 + - Refers to item: Line (location: source ID 1, line 69, chars 2740-2793, hits: 2) +- IC 1984 -> Item 283 + - Refers to item: Statement (location: source ID 1, line 69, chars 2740-2793, hits: 2) +- IC 668 -> Item 284 + - Refers to item: Function "removeAddressFromAllowlist" (location: source ID 1, line 77, chars 2962-3266, hits: 0) +- IC 2737 -> Item 285 + - Refers to item: Line (location: source ID 1, line 78, chars 3082-3091, hits: 0) +- IC 2737 -> Item 286 + - Refers to item: Statement (location: source ID 1, line 78, chars 3082-3091, hits: 0) +- IC 2740 -> Item 287 + - Refers to item: Statement (location: source ID 1, line 78, chars 3093-3118, hits: 0) +- IC 2987 -> Item 288 + - Refers to item: Statement (location: source ID 1, line 78, chars 3120-3123, hits: 0) +- IC 2751 -> Item 289 + - Refers to item: Line (location: source ID 1, line 79, chars 3139-3181, hits: 0) +- IC 2751 -> Item 290 + - Refers to item: Statement (location: source ID 1, line 79, chars 3139-3181, hits: 0) +- IC 2869 -> Item 291 + - Refers to item: Line (location: source ID 1, line 80, chars 3195-3249, hits: 0) +- IC 2869 -> Item 292 + - Refers to item: Statement (location: source ID 1, line 80, chars 3195-3249, hits: 0) +- IC 298 -> Item 293 + - Refers to item: Function "addWalletToAllowlist" (location: source ID 1, line 92, chars 3689-4189, hits: 4) +- IC 919 -> Item 294 + - Refers to item: Line (location: source ID 1, line 94, chars 3817-3833, hits: 4) +- IC 919 -> Item 295 + - Refers to item: Statement (location: source ID 1, line 94, chars 3817-3833, hits: 4) +- IC 921 -> Item 296 + - Refers to item: Line (location: source ID 1, line 96, chars 3866-3901, hits: 4) +- IC 921 -> Item 297 + - Refers to item: Statement (location: source ID 1, line 96, chars 3866-3901, hits: 4) +- IC 925 -> Item 298 + - Refers to item: Line (location: source ID 1, line 98, chars 3920-3954, hits: 4) +- IC 925 -> Item 299 + - Refers to item: Statement (location: source ID 1, line 98, chars 3920-3954, hits: 4) +- IC 969 -> Item 300 + - Refers to item: Line (location: source ID 1, line 100, chars 4004-4063, hits: 4) +- IC 969 -> Item 301 + - Refers to item: Statement (location: source ID 1, line 100, chars 4004-4063, hits: 4) +- IC 971 -> Item 302 + - Refers to item: Statement (location: source ID 1, line 100, chars 4019-4063, hits: 4) +- IC 1084 -> Item 303 + - Refers to item: Line (location: source ID 1, line 101, chars 4073-4116, hits: 4) +- IC 1084 -> Item 304 + - Refers to item: Statement (location: source ID 1, line 101, chars 4073-4116, hits: 4) +- IC 1172 -> Item 305 + - Refers to item: Line (location: source ID 1, line 103, chars 4127-4182, hits: 4) +- IC 1172 -> Item 306 + - Refers to item: Statement (location: source ID 1, line 103, chars 4127-4182, hits: 4) +- IC 506 -> Item 307 + - Refers to item: Function "removeWalletFromAllowlist" (location: source ID 1, line 111, chars 4462-4968, hits: 0) +- IC 2169 -> Item 308 + - Refers to item: Line (location: source ID 1, line 113, chars 4595-4611, hits: 0) +- IC 2169 -> Item 309 + - Refers to item: Statement (location: source ID 1, line 113, chars 4595-4611, hits: 0) +- IC 2171 -> Item 310 + - Refers to item: Line (location: source ID 1, line 115, chars 4644-4679, hits: 0) +- IC 2171 -> Item 311 + - Refers to item: Statement (location: source ID 1, line 115, chars 4644-4679, hits: 0) +- IC 2175 -> Item 312 + - Refers to item: Line (location: source ID 1, line 117, chars 4698-4732, hits: 0) +- IC 2175 -> Item 313 + - Refers to item: Statement (location: source ID 1, line 117, chars 4698-4732, hits: 0) +- IC 2210 -> Item 314 + - Refers to item: Line (location: source ID 1, line 119, chars 4782-4841, hits: 0) +- IC 2210 -> Item 315 + - Refers to item: Statement (location: source ID 1, line 119, chars 4782-4841, hits: 0) +- IC 2212 -> Item 316 + - Refers to item: Statement (location: source ID 1, line 119, chars 4797-4841, hits: 0) +- IC 2325 -> Item 317 + - Refers to item: Line (location: source ID 1, line 120, chars 4851-4894, hits: 0) +- IC 2325 -> Item 318 + - Refers to item: Statement (location: source ID 1, line 120, chars 4851-4894, hits: 0) +- IC 2404 -> Item 319 + - Refers to item: Line (location: source ID 1, line 122, chars 4905-4961, hits: 0) +- IC 2404 -> Item 320 + - Refers to item: Statement (location: source ID 1, line 122, chars 4905-4961, hits: 0) +- IC 582 -> Item 321 + - Refers to item: Function "grantRegistrarRole" (location: source ID 1, line 129, chars 5128-5256, hits: 0) +- IC 2609 -> Item 322 + - Refers to item: Line (location: source ID 1, line 130, chars 5218-5249, hits: 0) +- IC 2609 -> Item 323 + - Refers to item: Statement (location: source ID 1, line 130, chars 5218-5249, hits: 0) +- IC 696 -> Item 324 + - Refers to item: Function "revokeRegistrarRole" (location: source ID 1, line 137, chars 5424-5554, hits: 0) +- IC 3025 -> Item 325 + - Refers to item: Line (location: source ID 1, line 138, chars 5515-5547, hits: 0) +- IC 3025 -> Item 326 + - Refers to item: Statement (location: source ID 1, line 138, chars 5515-5547, hits: 0) +- IC 326 -> Item 327 + - Refers to item: Function "isAllowlisted" (location: source ID 1, line 147, chars 5777-6396, hits: 14) +- IC 1260 -> Item 328 + - Refers to item: Line (location: source ID 1, line 148, chars 5864-5930, hits: 14) +- IC 1342 -> Item 329 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 1, line 148, chars 5864-5930, hits: 2) +- IC 1350 -> Item 330 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 1, line 148, chars 5864-5930, hits: 12) +- IC 1342 -> Item 331 + - Refers to item: Line (location: source ID 1, line 149, chars 5908-5919, hits: 2) +- IC 1342 -> Item 332 + - Refers to item: Statement (location: source ID 1, line 149, chars 5908-5919, hits: 2) +- IC 1351 -> Item 333 + - Refers to item: Line (location: source ID 1, line 153, chars 6006-6022, hits: 12) +- IC 1351 -> Item 334 + - Refers to item: Statement (location: source ID 1, line 153, chars 6006-6022, hits: 12) +- IC 1353 -> Item 335 + - Refers to item: Line (location: source ID 1, line 155, chars 6055-6086, hits: 12) +- IC 1353 -> Item 336 + - Refers to item: Statement (location: source ID 1, line 155, chars 6055-6086, hits: 12) +- IC 1357 -> Item 337 + - Refers to item: Line (location: source ID 1, line 157, chars 6105-6367, hits: 12) +- IC 1462 -> Item 338 + - Refers to item: Branch (branch: 1, path: 0) (location: source ID 1, line 157, chars 6105-6367, hits: 0) +- IC 1471 -> Item 339 + - Refers to item: Branch (branch: 1, path: 1) (location: source ID 1, line 157, chars 6105-6367, hits: 11) +- IC 1395 -> Item 340 + - Refers to item: Line (location: source ID 1, line 159, chars 6243-6298, hits: 11) +- IC 1395 -> Item 341 + - Refers to item: Statement (location: source ID 1, line 159, chars 6243-6298, hits: 11) +- IC 1397 -> Item 342 + - Refers to item: Statement (location: source ID 1, line 159, chars 6258-6298, hits: 11) +- IC 1510 -> Item 343 + - Refers to item: Line (location: source ID 1, line 161, chars 6313-6356, hits: 11) +- IC 1510 -> Item 344 + - Refers to item: Statement (location: source ID 1, line 161, chars 6313-6356, hits: 11) +- IC 1596 -> Item 345 + - Refers to item: Line (location: source ID 1, line 164, chars 6377-6389, hits: 1) +- IC 1596 -> Item 346 + - Refers to item: Statement (location: source ID 1, line 164, chars 6377-6389, hits: 1) +- IC 250 -> Item 347 + - Refers to item: Function "supportsInterface" (location: source ID 1, line 171, chars 6539-6768, hits: 0) +- IC 757 -> Item 348 + - Refers to item: Line (location: source ID 1, line 172, chars 6663-6761, hits: 0) +- IC 757 -> Item 349 + - Refers to item: Statement (location: source ID 1, line 172, chars 6663-6761, hits: 0) + +Anchors for Contract "ChainlinkSourceAdaptor" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 9): +- IC 353 -> Item 498 + - Refers to item: Function "configureRequests" (location: source ID 9, line 49, chars 1836-2064, hits: 0) +- IC 1186 -> Item 499 + - Refers to item: Line (location: source ID 9, line 50, chars 1969-1987, hits: 0) +- IC 1186 -> Item 500 + - Refers to item: Statement (location: source ID 9, line 50, chars 1969-1987, hits: 0) +- IC 1193 -> Item 501 + - Refers to item: Line (location: source ID 9, line 51, chars 1997-2011, hits: 0) +- IC 1193 -> Item 502 + - Refers to item: Statement (location: source ID 9, line 51, chars 1997-2011, hits: 0) +- IC 1234 -> Item 503 + - Refers to item: Line (location: source ID 9, line 52, chars 2021-2057, hits: 0) +- IC 1234 -> Item 504 + - Refers to item: Statement (location: source ID 9, line 52, chars 2021-2057, hits: 0) +- IC 913 -> Item 505 + - Refers to item: Function "requestOffchainRandom" (location: source ID 9, line 55, chars 2070-2261, hits: 0) +- IC 2000 -> Item 506 + - Refers to item: Line (location: source ID 9, line 56, chars 2150-2254, hits: 0) +- IC 2000 -> Item 507 + - Refers to item: Statement (location: source ID 9, line 56, chars 2150-2254, hits: 0) +- IC 2474 -> Item 508 + - Refers to item: Function "fulfillRandomWords" (location: source ID 9, line 61, chars 2281-2680, hits: 0) +- IC 2475 -> Item 509 + - Refers to item: Line (location: source ID 9, line 64, chars 2508-2532, hits: 0) +- IC 2475 -> Item 510 + - Refers to item: Statement (location: source ID 9, line 64, chars 2508-2532, hits: 0) +- IC 2484 -> Item 511 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 9, line 64, chars 2504-2612, hits: 0) +- IC 2540 -> Item 512 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 9, line 64, chars 2504-2612, hits: 0) +- IC 2484 -> Item 513 + - Refers to item: Line (location: source ID 9, line 65, chars 2548-2601, hits: 0) +- IC 2484 -> Item 514 + - Refers to item: Statement (location: source ID 9, line 65, chars 2548-2601, hits: 0) +- IC 2541 -> Item 515 + - Refers to item: Line (location: source ID 9, line 68, chars 2622-2673, hits: 0) +- IC 2541 -> Item 516 + - Refers to item: Statement (location: source ID 9, line 68, chars 2622-2673, hits: 0) +- IC 973 -> Item 517 + - Refers to item: Function "getOffchainRandom" (location: source ID 9, line 72, chars 2687-2957, hits: 0) +- IC 2241 -> Item 518 + - Refers to item: Line (location: source ID 9, line 73, chars 2795-2841, hits: 0) +- IC 2241 -> Item 519 + - Refers to item: Statement (location: source ID 9, line 73, chars 2795-2841, hits: 0) +- IC 2264 -> Item 520 + - Refers to item: Line (location: source ID 9, line 74, chars 2855-2873, hits: 0) +- IC 2264 -> Item 521 + - Refers to item: Statement (location: source ID 9, line 74, chars 2855-2873, hits: 0) +- IC 2274 -> Item 522 + - Refers to item: Branch (branch: 1, path: 0) (location: source ID 9, line 74, chars 2851-2922, hits: 0) +- IC 2323 -> Item 523 + - Refers to item: Branch (branch: 1, path: 1) (location: source ID 9, line 74, chars 2851-2922, hits: 0) +- IC 2274 -> Item 524 + - Refers to item: Line (location: source ID 9, line 75, chars 2889-2911, hits: 0) +- IC 2274 -> Item 525 + - Refers to item: Statement (location: source ID 9, line 75, chars 2889-2911, hits: 0) +- IC 2324 -> Item 526 + - Refers to item: Line (location: source ID 9, line 77, chars 2931-2950, hits: 0) +- IC 2324 -> Item 527 + - Refers to item: Statement (location: source ID 9, line 77, chars 2931-2950, hits: 0) +- IC 603 -> Item 528 + - Refers to item: Function "isOffchainRandomReady" (location: source ID 9, line 80, chars 2963-3118, hits: 0) +- IC 1695 -> Item 529 + - Refers to item: Line (location: source ID 9, line 81, chars 3059-3111, hits: 0) +- IC 1695 -> Item 530 + - Refers to item: Statement (location: source ID 9, line 81, chars 3059-3111, hits: 0) + +Anchors for Contract "MockDisguisedEOA" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 3): +- IC 89 -> Item 0 + - Refers to item: Function "executeTransfer" (location: source ID 3, line 14, chars 295-449, hits: 0) +- IC 154 -> Item 1 + - Refers to item: Line (location: source ID 3, line 15, chars 390-442, hits: 0) +- IC 154 -> Item 2 + - Refers to item: Statement (location: source ID 3, line 15, chars 390-442, hits: 0) + +Anchors for Contract "Asset" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 11): +- IC 4337 -> Item 217 + - Refers to item: Function "_mintFor" (location: source ID 11, line 15, chars 394-536, hits: 0) +- IC 4338 -> Item 218 + - Refers to item: Line (location: source ID 11, line 20, chars 510-529, hits: 0) +- IC 4338 -> Item 219 + - Refers to item: Statement (location: source ID 11, line 20, chars 510-529, hits: 0) +- IC 478 -> Item 203 + - Refers to item: Function "mintFor" (location: source ID 13, line 25, chars 748-1154, hits: 0) +- IC 1921 -> Item 204 + - Refers to item: Line (location: source ID 13, line 30, chars 898-950, hits: 0) +- IC 1921 -> Item 205 + - Refers to item: Statement (location: source ID 13, line 30, chars 898-950, hits: 0) +- IC 1929 -> Item 206 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 13, line 30, chars 898-950, hits: 0) +- IC 1987 -> Item 207 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 13, line 30, chars 898-950, hits: 0) +- IC 1988 -> Item 208 + - Refers to item: Line (location: source ID 13, line 31, chars 960-1025, hits: 0) +- IC 1988 -> Item 209 + - Refers to item: Statement (location: source ID 13, line 31, chars 960-1025, hits: 0) +- IC 1991 -> Item 210 + - Refers to item: Statement (location: source ID 13, line 31, chars 999-1025, hits: 0) +- IC 2005 -> Item 211 + - Refers to item: Line (location: source ID 13, line 32, chars 1035-1064, hits: 0) +- IC 2005 -> Item 212 + - Refers to item: Statement (location: source ID 13, line 32, chars 1035-1064, hits: 0) +- IC 2016 -> Item 213 + - Refers to item: Line (location: source ID 13, line 33, chars 1074-1100, hits: 0) +- IC 2016 -> Item 214 + - Refers to item: Statement (location: source ID 13, line 33, chars 1074-1100, hits: 0) +- IC 2049 -> Item 215 + - Refers to item: Line (location: source ID 13, line 34, chars 1110-1147, hits: 0) +- IC 2049 -> Item 216 + - Refers to item: Statement (location: source ID 13, line 34, chars 1110-1147, hits: 0) + +Anchors for Contract "ERC721Psi" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 23): +- IC 4285 -> Item 1272 + - Refers to item: Function "_startTokenId" (location: source ID 23, line 64, chars 2275-2425, hits: 0) +- IC 4290 -> Item 1275 + - Refers to item: Function "_nextTokenId" (location: source ID 23, line 72, chars 2499-2600, hits: 0) +- IC 4293 -> Item 1276 + - Refers to item: Line (location: source ID 23, line 73, chars 2573-2593, hits: 0) +- IC 4293 -> Item 1277 + - Refers to item: Statement (location: source ID 23, line 73, chars 2573-2593, hits: 0) +- IC 3243 -> Item 1278 + - Refers to item: Function "_totalMinted" (location: source ID 23, line 79, chars 2693-2812, hits: 0) +- IC 3246 -> Item 1279 + - Refers to item: Line (location: source ID 23, line 80, chars 2767-2805, hits: 0) +- IC 3246 -> Item 1280 + - Refers to item: Statement (location: source ID 23, line 80, chars 2767-2805, hits: 0) +- IC 239 -> Item 1281 + - Refers to item: Function "supportsInterface" (location: source ID 23, line 86, chars 2879-3179, hits: 0) +- IC 760 -> Item 1282 + - Refers to item: Line (location: source ID 23, line 87, chars 2997-3172, hits: 0) +- IC 760 -> Item 1283 + - Refers to item: Statement (location: source ID 23, line 87, chars 2997-3172, hits: 0) +- IC 527 -> Item 1284 + - Refers to item: Function "balanceOf" (location: source ID 23, line 96, chars 3238-3663, hits: 0) +- IC 1711 -> Item 1285 + - Refers to item: Line (location: source ID 23, line 97, chars 3326-3403, hits: 0) +- IC 1711 -> Item 1286 + - Refers to item: Statement (location: source ID 23, line 97, chars 3326-3403, hits: 0) +- IC 1762 -> Item 1287 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 23, line 97, chars 3326-3403, hits: 0) +- IC 1820 -> Item 1288 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 23, line 97, chars 3326-3403, hits: 0) +- IC 1821 -> Item 1289 + - Refers to item: Line (location: source ID 23, line 99, chars 3414-3424, hits: 0) +- IC 1821 -> Item 1290 + - Refers to item: Statement (location: source ID 23, line 99, chars 3414-3424, hits: 0) +- IC 1823 -> Item 1291 + - Refers to item: Line (location: source ID 23, line 100, chars 3439-3463, hits: 0) +- IC 1823 -> Item 1292 + - Refers to item: Statement (location: source ID 23, line 100, chars 3439-3463, hits: 0) +- IC 1824 -> Item 1293 + - Refers to item: Statement (location: source ID 23, line 100, chars 3448-3463, hits: 0) +- IC 1835 -> Item 1294 + - Refers to item: Statement (location: source ID 23, line 100, chars 3465-3483, hits: 0) +- IC 1937 -> Item 1295 + - Refers to item: Statement (location: source ID 23, line 100, chars 3485-3488, hits: 0) +- IC 1850 -> Item 1296 + - Refers to item: Line (location: source ID 23, line 101, chars 3508-3518, hits: 0) +- IC 1850 -> Item 1297 + - Refers to item: Statement (location: source ID 23, line 101, chars 3508-3518, hits: 0) +- IC 1923 -> Item 1298 + - Refers to item: Branch (branch: 1, path: 0) (location: source ID 23, line 101, chars 3504-3625, hits: 0) +- IC 1935 -> Item 1299 + - Refers to item: Branch (branch: 1, path: 1) (location: source ID 23, line 101, chars 3504-3625, hits: 0) +- IC 1864 -> Item 1300 + - Refers to item: Line (location: source ID 23, line 102, chars 3542-3561, hits: 0) +- IC 1864 -> Item 1301 + - Refers to item: Statement (location: source ID 23, line 102, chars 3542-3561, hits: 0) +- IC 1923 -> Item 1302 + - Refers to item: Branch (branch: 2, path: 0) (location: source ID 23, line 102, chars 3538-3611, hits: 0) +- IC 1935 -> Item 1303 + - Refers to item: Branch (branch: 2, path: 1) (location: source ID 23, line 102, chars 3538-3611, hits: 0) +- IC 1923 -> Item 1304 + - Refers to item: Line (location: source ID 23, line 103, chars 3585-3592, hits: 0) +- IC 1923 -> Item 1305 + - Refers to item: Statement (location: source ID 23, line 103, chars 3585-3592, hits: 0) +- IC 1955 -> Item 1306 + - Refers to item: Line (location: source ID 23, line 107, chars 3644-3656, hits: 0) +- IC 1955 -> Item 1307 + - Refers to item: Statement (location: source ID 23, line 107, chars 3644-3656, hits: 0) +- IC 479 -> Item 1308 + - Refers to item: Function "ownerOf" (location: source ID 23, line 113, chars 3720-3889, hits: 0) +- IC 1687 -> Item 1309 + - Refers to item: Line (location: source ID 23, line 114, chars 3811-3860, hits: 0) +- IC 1687 -> Item 1310 + - Refers to item: Statement (location: source ID 23, line 114, chars 3811-3860, hits: 0) +- IC 1688 -> Item 1311 + - Refers to item: Statement (location: source ID 23, line 114, chars 3831-3860, hits: 0) +- IC 1700 -> Item 1312 + - Refers to item: Line (location: source ID 23, line 115, chars 3870-3882, hits: 0) +- IC 1700 -> Item 1313 + - Refers to item: Statement (location: source ID 23, line 115, chars 3870-3882, hits: 0) +- IC 4140 -> Item 1314 + - Refers to item: Function "_ownerAndBatchHeadOf" (location: source ID 23, line 118, chars 3895-4190, hits: 0) +- IC 4144 -> Item 1315 + - Refers to item: Line (location: source ID 23, line 119, chars 4016-4089, hits: 0) +- IC 4144 -> Item 1316 + - Refers to item: Statement (location: source ID 23, line 119, chars 4016-4089, hits: 0) +- IC 4157 -> Item 1317 + - Refers to item: Branch (branch: 3, path: 0) (location: source ID 23, line 119, chars 4016-4089, hits: 0) +- IC 4215 -> Item 1318 + - Refers to item: Branch (branch: 3, path: 1) (location: source ID 23, line 119, chars 4016-4089, hits: 0) +- IC 4216 -> Item 1319 + - Refers to item: Line (location: source ID 23, line 120, chars 4099-4140, hits: 0) +- IC 4216 -> Item 1320 + - Refers to item: Statement (location: source ID 23, line 120, chars 4099-4140, hits: 0) +- IC 4227 -> Item 1321 + - Refers to item: Line (location: source ID 23, line 121, chars 4150-4183, hits: 0) +- IC 4227 -> Item 1322 + - Refers to item: Statement (location: source ID 23, line 121, chars 4150-4183, hits: 0) +- IC 287 -> Item 1323 + - Refers to item: Function "name" (location: source ID 23, line 127, chars 4252-4350, hits: 0) +- IC 986 -> Item 1324 + - Refers to item: Line (location: source ID 23, line 128, chars 4331-4343, hits: 0) +- IC 986 -> Item 1325 + - Refers to item: Statement (location: source ID 23, line 128, chars 4331-4343, hits: 0) +- IC 575 -> Item 1326 + - Refers to item: Function "symbol" (location: source ID 23, line 134, chars 4414-4516, hits: 0) +- IC 1966 -> Item 1327 + - Refers to item: Line (location: source ID 23, line 135, chars 4495-4509, hits: 0) +- IC 1966 -> Item 1328 + - Refers to item: Statement (location: source ID 23, line 135, chars 4495-4509, hits: 0) +- IC 661 -> Item 1329 + - Refers to item: Function "tokenURI" (location: source ID 23, line 141, chars 4582-4906, hits: 0) +- IC 2594 -> Item 1330 + - Refers to item: Line (location: source ID 23, line 142, chars 4680-4751, hits: 0) +- IC 2594 -> Item 1331 + - Refers to item: Statement (location: source ID 23, line 142, chars 4680-4751, hits: 0) +- IC 2607 -> Item 1332 + - Refers to item: Branch (branch: 4, path: 0) (location: source ID 23, line 142, chars 4680-4751, hits: 0) +- IC 2665 -> Item 1333 + - Refers to item: Branch (branch: 4, path: 1) (location: source ID 23, line 142, chars 4680-4751, hits: 0) +- IC 2666 -> Item 1334 + - Refers to item: Line (location: source ID 23, line 144, chars 4762-4796, hits: 0) +- IC 2666 -> Item 1335 + - Refers to item: Statement (location: source ID 23, line 144, chars 4762-4796, hits: 0) +- IC 2668 -> Item 1336 + - Refers to item: Statement (location: source ID 23, line 144, chars 4786-4796, hits: 0) +- IC 2678 -> Item 1337 + - Refers to item: Line (location: source ID 23, line 145, chars 4806-4899, hits: 0) +- IC 2678 -> Item 1338 + - Refers to item: Statement (location: source ID 23, line 145, chars 4806-4899, hits: 0) +- IC 4394 -> Item 1339 + - Refers to item: Function "_baseURI" (location: source ID 23, line 153, chars 5147-5239, hits: 0) +- IC 4397 -> Item 1340 + - Refers to item: Line (location: source ID 23, line 154, chars 5223-5232, hits: 0) +- IC 4397 -> Item 1341 + - Refers to item: Statement (location: source ID 23, line 154, chars 5223-5232, hits: 0) +- IC 365 -> Item 1342 + - Refers to item: Function "approve" (location: source ID 23, line 160, chars 5296-5696, hits: 0) +- IC 1263 -> Item 1343 + - Refers to item: Line (location: source ID 23, line 161, chars 5376-5408, hits: 0) +- IC 1263 -> Item 1344 + - Refers to item: Statement (location: source ID 23, line 161, chars 5376-5408, hits: 0) +- IC 1265 -> Item 1345 + - Refers to item: Statement (location: source ID 23, line 161, chars 5392-5408, hits: 0) +- IC 1276 -> Item 1346 + - Refers to item: Line (location: source ID 23, line 162, chars 5418-5478, hits: 0) +- IC 1276 -> Item 1347 + - Refers to item: Statement (location: source ID 23, line 162, chars 5418-5478, hits: 0) +- IC 1327 -> Item 1348 + - Refers to item: Branch (branch: 5, path: 0) (location: source ID 23, line 162, chars 5418-5478, hits: 0) +- IC 1385 -> Item 1349 + - Refers to item: Branch (branch: 5, path: 1) (location: source ID 23, line 162, chars 5418-5478, hits: 0) +- IC 1386 -> Item 1350 + - Refers to item: Line (location: source ID 23, line 164, chars 5489-5657, hits: 0) +- IC 1386 -> Item 1351 + - Refers to item: Statement (location: source ID 23, line 164, chars 5489-5657, hits: 0) +- IC 1468 -> Item 1352 + - Refers to item: Branch (branch: 6, path: 0) (location: source ID 23, line 164, chars 5489-5657, hits: 0) +- IC 1526 -> Item 1353 + - Refers to item: Branch (branch: 6, path: 1) (location: source ID 23, line 164, chars 5489-5657, hits: 0) +- IC 1527 -> Item 1354 + - Refers to item: Line (location: source ID 23, line 169, chars 5668-5689, hits: 0) +- IC 1527 -> Item 1355 + - Refers to item: Statement (location: source ID 23, line 169, chars 5668-5689, hits: 0) +- IC 317 -> Item 1356 + - Refers to item: Function "getApproved" (location: source ID 23, line 175, chars 5757-5977, hits: 0) +- IC 1132 -> Item 1357 + - Refers to item: Line (location: source ID 23, line 176, chars 5852-5928, hits: 0) +- IC 1132 -> Item 1358 + - Refers to item: Statement (location: source ID 23, line 176, chars 5852-5928, hits: 0) +- IC 1145 -> Item 1359 + - Refers to item: Branch (branch: 7, path: 0) (location: source ID 23, line 176, chars 5852-5928, hits: 0) +- IC 1203 -> Item 1360 + - Refers to item: Branch (branch: 7, path: 1) (location: source ID 23, line 176, chars 5852-5928, hits: 0) +- IC 1204 -> Item 1361 + - Refers to item: Line (location: source ID 23, line 178, chars 5939-5970, hits: 0) +- IC 1204 -> Item 1362 + - Refers to item: Statement (location: source ID 23, line 178, chars 5939-5970, hits: 0) +- IC 605 -> Item 1363 + - Refers to item: Function "setApprovalForAll" (location: source ID 23, line 184, chars 6044-6337, hits: 0) +- IC 2110 -> Item 1364 + - Refers to item: Line (location: source ID 23, line 185, chars 6138-6203, hits: 0) +- IC 2110 -> Item 1365 + - Refers to item: Statement (location: source ID 23, line 185, chars 6138-6203, hits: 0) +- IC 2168 -> Item 1366 + - Refers to item: Branch (branch: 8, path: 0) (location: source ID 23, line 185, chars 6138-6203, hits: 0) +- IC 2226 -> Item 1367 + - Refers to item: Branch (branch: 8, path: 1) (location: source ID 23, line 185, chars 6138-6203, hits: 0) +- IC 2227 -> Item 1368 + - Refers to item: Line (location: source ID 23, line 187, chars 6214-6267, hits: 0) +- IC 2227 -> Item 1369 + - Refers to item: Statement (location: source ID 23, line 187, chars 6214-6267, hits: 0) +- IC 2382 -> Item 1370 + - Refers to item: Line (location: source ID 23, line 188, chars 6277-6330, hits: 0) +- IC 2382 -> Item 1371 + - Refers to item: Statement (location: source ID 23, line 188, chars 6277-6330, hits: 0) +- IC 709 -> Item 1372 + - Refers to item: Function "isApprovedForAll" (location: source ID 23, line 194, chars 6403-6565, hits: 0) +- IC 2761 -> Item 1373 + - Refers to item: Line (location: source ID 23, line 195, chars 6516-6558, hits: 0) +- IC 2761 -> Item 1374 + - Refers to item: Statement (location: source ID 23, line 195, chars 6516-6558, hits: 0) +- IC 423 -> Item 1375 + - Refers to item: Function "transferFrom" (location: source ID 23, line 201, chars 6627-6930, hits: 0) +- IC 1557 -> Item 1376 + - Refers to item: Line (location: source ID 23, line 203, chars 6778-6884, hits: 0) +- IC 1557 -> Item 1377 + - Refers to item: Statement (location: source ID 23, line 203, chars 6778-6884, hits: 0) +- IC 1578 -> Item 1378 + - Refers to item: Branch (branch: 9, path: 0) (location: source ID 23, line 203, chars 6778-6884, hits: 0) +- IC 1636 -> Item 1379 + - Refers to item: Branch (branch: 9, path: 1) (location: source ID 23, line 203, chars 6778-6884, hits: 0) +- IC 1637 -> Item 1380 + - Refers to item: Line (location: source ID 23, line 205, chars 6895-6923, hits: 0) +- IC 1637 -> Item 1381 + - Refers to item: Statement (location: source ID 23, line 205, chars 6895-6923, hits: 0) +- IC 451 -> Item 1382 + - Refers to item: Function "safeTransferFrom" (location: source ID 23, line 211, chars 6996-7145, hits: 0) +- IC 1653 -> Item 1383 + - Refers to item: Line (location: source ID 23, line 212, chars 7099-7138, hits: 0) +- IC 1653 -> Item 1384 + - Refers to item: Statement (location: source ID 23, line 212, chars 7099-7138, hits: 0) +- IC 633 -> Item 1385 + - Refers to item: Function "safeTransferFrom" (location: source ID 23, line 218, chars 7211-7496, hits: 0) +- IC 2494 -> Item 1386 + - Refers to item: Line (location: source ID 23, line 219, chars 7334-7440, hits: 0) +- IC 2494 -> Item 1387 + - Refers to item: Statement (location: source ID 23, line 219, chars 7334-7440, hits: 0) +- IC 2515 -> Item 1388 + - Refers to item: Branch (branch: 10, path: 0) (location: source ID 23, line 219, chars 7334-7440, hits: 0) +- IC 2573 -> Item 1389 + - Refers to item: Branch (branch: 10, path: 1) (location: source ID 23, line 219, chars 7334-7440, hits: 0) +- IC 2574 -> Item 1390 + - Refers to item: Line (location: source ID 23, line 220, chars 7450-7489, hits: 0) +- IC 2574 -> Item 1391 + - Refers to item: Statement (location: source ID 23, line 220, chars 7450-7489, hits: 0) +- IC 4300 -> Item 1392 + - Refers to item: Function "_safeTransfer" (location: source ID 23, line 241, chars 8358-8667, hits: 0) +- IC 4301 -> Item 1393 + - Refers to item: Line (location: source ID 23, line 242, chars 8471-8499, hits: 0) +- IC 4301 -> Item 1394 + - Refers to item: Statement (location: source ID 23, line 242, chars 8471-8499, hits: 0) +- IC 4312 -> Item 1395 + - Refers to item: Line (location: source ID 23, line 243, chars 8509-8660, hits: 0) +- IC 4312 -> Item 1396 + - Refers to item: Statement (location: source ID 23, line 243, chars 8509-8660, hits: 0) +- IC 4330 -> Item 1397 + - Refers to item: Branch (branch: 11, path: 0) (location: source ID 23, line 243, chars 8509-8660, hits: 0) +- IC 4388 -> Item 1398 + - Refers to item: Branch (branch: 11, path: 1) (location: source ID 23, line 243, chars 8509-8660, hits: 0) +- IC 3012 -> Item 1399 + - Refers to item: Function "_exists" (location: source ID 23, line 256, chars 8913-9062, hits: 0) +- IC 3015 -> Item 1400 + - Refers to item: Line (location: source ID 23, line 257, chars 8994-9055, hits: 0) +- IC 3015 -> Item 1401 + - Refers to item: Statement (location: source ID 23, line 257, chars 8994-9055, hits: 0) +- IC 3271 -> Item 1402 + - Refers to item: Function "_isApprovedOrOwner" (location: source ID 23, line 267, chars 9220-9560, hits: 0) +- IC 3274 -> Item 1403 + - Refers to item: Line (location: source ID 23, line 268, chars 9329-9405, hits: 0) +- IC 3274 -> Item 1404 + - Refers to item: Statement (location: source ID 23, line 268, chars 9329-9405, hits: 0) +- IC 3287 -> Item 1405 + - Refers to item: Branch (branch: 12, path: 0) (location: source ID 23, line 268, chars 9329-9405, hits: 0) +- IC 3345 -> Item 1406 + - Refers to item: Branch (branch: 12, path: 1) (location: source ID 23, line 268, chars 9329-9405, hits: 0) +- IC 3346 -> Item 1407 + - Refers to item: Line (location: source ID 23, line 269, chars 9415-9447, hits: 0) +- IC 3346 -> Item 1408 + - Refers to item: Statement (location: source ID 23, line 269, chars 9415-9447, hits: 0) +- IC 3348 -> Item 1409 + - Refers to item: Statement (location: source ID 23, line 269, chars 9431-9447, hits: 0) +- IC 3359 -> Item 1410 + - Refers to item: Line (location: source ID 23, line 270, chars 9457-9553, hits: 0) +- IC 3359 -> Item 1411 + - Refers to item: Statement (location: source ID 23, line 270, chars 9457-9553, hits: 0) +- IC 3493 -> Item 1454 + - Refers to item: Function "_transfer" (location: source ID 23, line 356, chars 12859-13793, hits: 0) +- IC 3494 -> Item 1455 + - Refers to item: Line (location: source ID 23, line 357, chars 12948-13021, hits: 0) +- IC 3494 -> Item 1456 + - Refers to item: Statement (location: source ID 23, line 357, chars 12948-13021, hits: 0) +- IC 3497 -> Item 1457 + - Refers to item: Statement (location: source ID 23, line 357, chars 12992-13021, hits: 0) +- IC 3510 -> Item 1458 + - Refers to item: Line (location: source ID 23, line 359, chars 13032-13102, hits: 0) +- IC 3510 -> Item 1459 + - Refers to item: Statement (location: source ID 23, line 359, chars 13032-13102, hits: 0) +- IC 3561 -> Item 1460 + - Refers to item: Branch (branch: 16, path: 0) (location: source ID 23, line 359, chars 13032-13102, hits: 0) +- IC 3619 -> Item 1461 + - Refers to item: Branch (branch: 16, path: 1) (location: source ID 23, line 359, chars 13032-13102, hits: 0) +- IC 3620 -> Item 1462 + - Refers to item: Line (location: source ID 23, line 360, chars 13112-13180, hits: 0) +- IC 3620 -> Item 1463 + - Refers to item: Statement (location: source ID 23, line 360, chars 13112-13180, hits: 0) +- IC 3672 -> Item 1464 + - Refers to item: Branch (branch: 17, path: 0) (location: source ID 23, line 360, chars 13112-13180, hits: 0) +- IC 3730 -> Item 1465 + - Refers to item: Branch (branch: 17, path: 1) (location: source ID 23, line 360, chars 13112-13180, hits: 0) +- IC 3731 -> Item 1466 + - Refers to item: Line (location: source ID 23, line 362, chars 13191-13234, hits: 0) +- IC 3731 -> Item 1467 + - Refers to item: Statement (location: source ID 23, line 362, chars 13191-13234, hits: 0) +- IC 3744 -> Item 1468 + - Refers to item: Line (location: source ID 23, line 365, chars 13296-13325, hits: 0) +- IC 3744 -> Item 1469 + - Refers to item: Statement (location: source ID 23, line 365, chars 13296-13325, hits: 0) +- IC 3755 -> Item 1470 + - Refers to item: Line (location: source ID 23, line 367, chars 13336-13375, hits: 0) +- IC 3755 -> Item 1471 + - Refers to item: Statement (location: source ID 23, line 367, chars 13336-13375, hits: 0) +- IC 3757 -> Item 1472 + - Refers to item: Statement (location: source ID 23, line 367, chars 13364-13375, hits: 0) +- IC 3772 -> Item 1473 + - Refers to item: Line (location: source ID 23, line 369, chars 13390-13462, hits: 0) +- IC 3772 -> Item 1474 + - Refers to item: Statement (location: source ID 23, line 369, chars 13390-13462, hits: 0) +- IC 3816 -> Item 1475 + - Refers to item: Branch (branch: 18, path: 0) (location: source ID 23, line 369, chars 13386-13569, hits: 0) +- IC 3918 -> Item 1476 + - Refers to item: Branch (branch: 18, path: 1) (location: source ID 23, line 369, chars 13386-13569, hits: 0) +- IC 3816 -> Item 1477 + - Refers to item: Line (location: source ID 23, line 370, chars 13478-13511, hits: 0) +- IC 3816 -> Item 1478 + - Refers to item: Statement (location: source ID 23, line 370, chars 13478-13511, hits: 0) +- IC 3898 -> Item 1479 + - Refers to item: Line (location: source ID 23, line 371, chars 13525-13558, hits: 0) +- IC 3898 -> Item 1480 + - Refers to item: Statement (location: source ID 23, line 371, chars 13525-13558, hits: 0) +- IC 3919 -> Item 1481 + - Refers to item: Line (location: source ID 23, line 374, chars 13579-13600, hits: 0) +- IC 3919 -> Item 1482 + - Refers to item: Statement (location: source ID 23, line 374, chars 13579-13600, hits: 0) +- IC 4001 -> Item 1483 + - Refers to item: Line (location: source ID 23, line 375, chars 13614-13641, hits: 0) +- IC 4001 -> Item 1484 + - Refers to item: Statement (location: source ID 23, line 375, chars 13614-13641, hits: 0) +- IC 4008 -> Item 1485 + - Refers to item: Branch (branch: 19, path: 0) (location: source ID 23, line 375, chars 13610-13691, hits: 0) +- IC 4028 -> Item 1486 + - Refers to item: Branch (branch: 19, path: 1) (location: source ID 23, line 375, chars 13610-13691, hits: 0) +- IC 4008 -> Item 1487 + - Refers to item: Line (location: source ID 23, line 376, chars 13657-13680, hits: 0) +- IC 4008 -> Item 1488 + - Refers to item: Statement (location: source ID 23, line 376, chars 13657-13680, hits: 0) +- IC 4029 -> Item 1489 + - Refers to item: Line (location: source ID 23, line 379, chars 13701-13733, hits: 0) +- IC 4029 -> Item 1490 + - Refers to item: Statement (location: source ID 23, line 379, chars 13701-13733, hits: 0) +- IC 4120 -> Item 1491 + - Refers to item: Line (location: source ID 23, line 381, chars 13744-13786, hits: 0) +- IC 4120 -> Item 1492 + - Refers to item: Statement (location: source ID 23, line 381, chars 13744-13786, hits: 0) +- IC 3058 -> Item 1493 + - Refers to item: Function "_approve" (location: source ID 23, line 389, chars 13904-14068, hits: 0) +- IC 3059 -> Item 1494 + - Refers to item: Line (location: source ID 23, line 390, chars 13978-14007, hits: 0) +- IC 3059 -> Item 1495 + - Refers to item: Statement (location: source ID 23, line 390, chars 13978-14007, hits: 0) +- IC 3141 -> Item 1496 + - Refers to item: Line (location: source ID 23, line 391, chars 14017-14061, hits: 0) +- IC 3141 -> Item 1497 + - Refers to item: Statement (location: source ID 23, line 391, chars 14017-14061, hits: 0) +- IC 4848 -> Item 1498 + - Refers to item: Function "_checkOnERC721Received" (location: source ID 23, line 405, chars 14709-15724, hits: 0) +- IC 4851 -> Item 1499 + - Refers to item: Line (location: source ID 23, line 412, chars 14912-14927, hits: 0) +- IC 4851 -> Item 1500 + - Refers to item: Statement (location: source ID 23, line 412, chars 14912-14927, hits: 0) +- IC 5183 -> Item 1501 + - Refers to item: Branch (branch: 20, path: 0) (location: source ID 23, line 412, chars 14908-15676, hits: 0) +- IC 5256 -> Item 1502 + - Refers to item: Branch (branch: 20, path: 1) (location: source ID 23, line 412, chars 14908-15676, hits: 0) +- IC 4887 -> Item 1503 + - Refers to item: Line (location: source ID 23, line 413, chars 14943-14951, hits: 0) +- IC 4887 -> Item 1504 + - Refers to item: Statement (location: source ID 23, line 413, chars 14943-14951, hits: 0) +- IC 4891 -> Item 1505 + - Refers to item: Line (location: source ID 23, line 414, chars 14970-15000, hits: 0) +- IC 4891 -> Item 1506 + - Refers to item: Statement (location: source ID 23, line 414, chars 14970-15000, hits: 0) +- IC 4897 -> Item 1507 + - Refers to item: Statement (location: source ID 23, line 414, chars 15002-15035, hits: 0) +- IC 5260 -> Item 1508 + - Refers to item: Statement (location: source ID 23, line 414, chars 15037-15046, hits: 0) +- IC 4916 -> Item 1509 + - Refers to item: Line (location: source ID 23, line 415, chars 15070-15142, hits: 0) +- IC 4916 -> Item 1510 + - Refers to item: Statement (location: source ID 23, line 415, chars 15070-15142, hits: 0) +- IC 5280 -> Item 1511 + - Refers to item: Line (location: source ID 23, line 427, chars 15657-15665, hits: 0) +- IC 5280 -> Item 1512 + - Refers to item: Statement (location: source ID 23, line 427, chars 15657-15665, hits: 0) +- IC 5285 -> Item 1513 + - Refers to item: Line (location: source ID 23, line 429, chars 15696-15707, hits: 0) +- IC 5285 -> Item 1514 + - Refers to item: Statement (location: source ID 23, line 429, chars 15696-15707, hits: 0) +- IC 4819 -> Item 1515 + - Refers to item: Function "_getBatchHead" (location: source ID 23, line 433, chars 15730-15886, hits: 0) +- IC 4822 -> Item 1516 + - Refers to item: Line (location: source ID 23, line 434, chars 15829-15879, hits: 0) +- IC 4822 -> Item 1517 + - Refers to item: Statement (location: source ID 23, line 434, chars 15829-15879, hits: 0) +- IC 393 -> Item 1518 + - Refers to item: Function "totalSupply" (location: source ID 23, line 437, chars 15892-15991, hits: 0) +- IC 1544 -> Item 1519 + - Refers to item: Line (location: source ID 23, line 438, chars 15963-15984, hits: 0) +- IC 1544 -> Item 1520 + - Refers to item: Statement (location: source ID 23, line 438, chars 15963-15984, hits: 0) +- IC 4623 -> Item 1521 + - Refers to item: Function "_beforeTokenTransfers" (location: source ID 23, line 453, chars 16465-16581, hits: 0) +- IC 4813 -> Item 1522 + - Refers to item: Function "_afterTokenTransfers" (location: source ID 23, line 467, chars 16979-17094, hits: 0) +- IC 4285 -> Item 1272 + - Refers to item: Function "_startTokenId" (location: source ID 23, line 64, chars 2275-2425, hits: 0) +- IC 4290 -> Item 1275 + - Refers to item: Function "_nextTokenId" (location: source ID 23, line 72, chars 2499-2600, hits: 0) +- IC 4293 -> Item 1276 + - Refers to item: Line (location: source ID 23, line 73, chars 2573-2593, hits: 0) +- IC 4293 -> Item 1277 + - Refers to item: Statement (location: source ID 23, line 73, chars 2573-2593, hits: 0) +- IC 3243 -> Item 1278 + - Refers to item: Function "_totalMinted" (location: source ID 23, line 79, chars 2693-2812, hits: 0) +- IC 3246 -> Item 1279 + - Refers to item: Line (location: source ID 23, line 80, chars 2767-2805, hits: 0) +- IC 3246 -> Item 1280 + - Refers to item: Statement (location: source ID 23, line 80, chars 2767-2805, hits: 0) +- IC 239 -> Item 1281 + - Refers to item: Function "supportsInterface" (location: source ID 23, line 86, chars 2879-3179, hits: 0) +- IC 760 -> Item 1282 + - Refers to item: Line (location: source ID 23, line 87, chars 2997-3172, hits: 0) +- IC 760 -> Item 1283 + - Refers to item: Statement (location: source ID 23, line 87, chars 2997-3172, hits: 0) +- IC 527 -> Item 1284 + - Refers to item: Function "balanceOf" (location: source ID 23, line 96, chars 3238-3663, hits: 0) +- IC 1711 -> Item 1285 + - Refers to item: Line (location: source ID 23, line 97, chars 3326-3403, hits: 0) +- IC 1711 -> Item 1286 + - Refers to item: Statement (location: source ID 23, line 97, chars 3326-3403, hits: 0) +- IC 1762 -> Item 1287 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 23, line 97, chars 3326-3403, hits: 0) +- IC 1820 -> Item 1288 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 23, line 97, chars 3326-3403, hits: 0) +- IC 1821 -> Item 1289 + - Refers to item: Line (location: source ID 23, line 99, chars 3414-3424, hits: 0) +- IC 1821 -> Item 1290 + - Refers to item: Statement (location: source ID 23, line 99, chars 3414-3424, hits: 0) +- IC 1823 -> Item 1291 + - Refers to item: Line (location: source ID 23, line 100, chars 3439-3463, hits: 0) +- IC 1823 -> Item 1292 + - Refers to item: Statement (location: source ID 23, line 100, chars 3439-3463, hits: 0) +- IC 1824 -> Item 1293 + - Refers to item: Statement (location: source ID 23, line 100, chars 3448-3463, hits: 0) +- IC 1835 -> Item 1294 + - Refers to item: Statement (location: source ID 23, line 100, chars 3465-3483, hits: 0) +- IC 1937 -> Item 1295 + - Refers to item: Statement (location: source ID 23, line 100, chars 3485-3488, hits: 0) +- IC 1850 -> Item 1296 + - Refers to item: Line (location: source ID 23, line 101, chars 3508-3518, hits: 0) +- IC 1850 -> Item 1297 + - Refers to item: Statement (location: source ID 23, line 101, chars 3508-3518, hits: 0) +- IC 1923 -> Item 1298 + - Refers to item: Branch (branch: 1, path: 0) (location: source ID 23, line 101, chars 3504-3625, hits: 0) +- IC 1935 -> Item 1299 + - Refers to item: Branch (branch: 1, path: 1) (location: source ID 23, line 101, chars 3504-3625, hits: 0) +- IC 1864 -> Item 1300 + - Refers to item: Line (location: source ID 23, line 102, chars 3542-3561, hits: 0) +- IC 1864 -> Item 1301 + - Refers to item: Statement (location: source ID 23, line 102, chars 3542-3561, hits: 0) +- IC 1923 -> Item 1302 + - Refers to item: Branch (branch: 2, path: 0) (location: source ID 23, line 102, chars 3538-3611, hits: 0) +- IC 1935 -> Item 1303 + - Refers to item: Branch (branch: 2, path: 1) (location: source ID 23, line 102, chars 3538-3611, hits: 0) +- IC 1923 -> Item 1304 + - Refers to item: Line (location: source ID 23, line 103, chars 3585-3592, hits: 0) +- IC 1923 -> Item 1305 + - Refers to item: Statement (location: source ID 23, line 103, chars 3585-3592, hits: 0) +- IC 1955 -> Item 1306 + - Refers to item: Line (location: source ID 23, line 107, chars 3644-3656, hits: 0) +- IC 1955 -> Item 1307 + - Refers to item: Statement (location: source ID 23, line 107, chars 3644-3656, hits: 0) +- IC 479 -> Item 1308 + - Refers to item: Function "ownerOf" (location: source ID 23, line 113, chars 3720-3889, hits: 0) +- IC 1687 -> Item 1309 + - Refers to item: Line (location: source ID 23, line 114, chars 3811-3860, hits: 0) +- IC 1687 -> Item 1310 + - Refers to item: Statement (location: source ID 23, line 114, chars 3811-3860, hits: 0) +- IC 1688 -> Item 1311 + - Refers to item: Statement (location: source ID 23, line 114, chars 3831-3860, hits: 0) +- IC 1700 -> Item 1312 + - Refers to item: Line (location: source ID 23, line 115, chars 3870-3882, hits: 0) +- IC 1700 -> Item 1313 + - Refers to item: Statement (location: source ID 23, line 115, chars 3870-3882, hits: 0) +- IC 4140 -> Item 1314 + - Refers to item: Function "_ownerAndBatchHeadOf" (location: source ID 23, line 118, chars 3895-4190, hits: 0) +- IC 4144 -> Item 1315 + - Refers to item: Line (location: source ID 23, line 119, chars 4016-4089, hits: 0) +- IC 4144 -> Item 1316 + - Refers to item: Statement (location: source ID 23, line 119, chars 4016-4089, hits: 0) +- IC 4157 -> Item 1317 + - Refers to item: Branch (branch: 3, path: 0) (location: source ID 23, line 119, chars 4016-4089, hits: 0) +- IC 4215 -> Item 1318 + - Refers to item: Branch (branch: 3, path: 1) (location: source ID 23, line 119, chars 4016-4089, hits: 0) +- IC 4216 -> Item 1319 + - Refers to item: Line (location: source ID 23, line 120, chars 4099-4140, hits: 0) +- IC 4216 -> Item 1320 + - Refers to item: Statement (location: source ID 23, line 120, chars 4099-4140, hits: 0) +- IC 4227 -> Item 1321 + - Refers to item: Line (location: source ID 23, line 121, chars 4150-4183, hits: 0) +- IC 4227 -> Item 1322 + - Refers to item: Statement (location: source ID 23, line 121, chars 4150-4183, hits: 0) +- IC 287 -> Item 1323 + - Refers to item: Function "name" (location: source ID 23, line 127, chars 4252-4350, hits: 0) +- IC 986 -> Item 1324 + - Refers to item: Line (location: source ID 23, line 128, chars 4331-4343, hits: 0) +- IC 986 -> Item 1325 + - Refers to item: Statement (location: source ID 23, line 128, chars 4331-4343, hits: 0) +- IC 575 -> Item 1326 + - Refers to item: Function "symbol" (location: source ID 23, line 134, chars 4414-4516, hits: 0) +- IC 1966 -> Item 1327 + - Refers to item: Line (location: source ID 23, line 135, chars 4495-4509, hits: 0) +- IC 1966 -> Item 1328 + - Refers to item: Statement (location: source ID 23, line 135, chars 4495-4509, hits: 0) +- IC 661 -> Item 1329 + - Refers to item: Function "tokenURI" (location: source ID 23, line 141, chars 4582-4906, hits: 0) +- IC 2594 -> Item 1330 + - Refers to item: Line (location: source ID 23, line 142, chars 4680-4751, hits: 0) +- IC 2594 -> Item 1331 + - Refers to item: Statement (location: source ID 23, line 142, chars 4680-4751, hits: 0) +- IC 2607 -> Item 1332 + - Refers to item: Branch (branch: 4, path: 0) (location: source ID 23, line 142, chars 4680-4751, hits: 0) +- IC 2665 -> Item 1333 + - Refers to item: Branch (branch: 4, path: 1) (location: source ID 23, line 142, chars 4680-4751, hits: 0) +- IC 2666 -> Item 1334 + - Refers to item: Line (location: source ID 23, line 144, chars 4762-4796, hits: 0) +- IC 2666 -> Item 1335 + - Refers to item: Statement (location: source ID 23, line 144, chars 4762-4796, hits: 0) +- IC 2668 -> Item 1336 + - Refers to item: Statement (location: source ID 23, line 144, chars 4786-4796, hits: 0) +- IC 2678 -> Item 1337 + - Refers to item: Line (location: source ID 23, line 145, chars 4806-4899, hits: 0) +- IC 2678 -> Item 1338 + - Refers to item: Statement (location: source ID 23, line 145, chars 4806-4899, hits: 0) +- IC 4394 -> Item 1339 + - Refers to item: Function "_baseURI" (location: source ID 23, line 153, chars 5147-5239, hits: 0) +- IC 4397 -> Item 1340 + - Refers to item: Line (location: source ID 23, line 154, chars 5223-5232, hits: 0) +- IC 4397 -> Item 1341 + - Refers to item: Statement (location: source ID 23, line 154, chars 5223-5232, hits: 0) +- IC 365 -> Item 1342 + - Refers to item: Function "approve" (location: source ID 23, line 160, chars 5296-5696, hits: 0) +- IC 1263 -> Item 1343 + - Refers to item: Line (location: source ID 23, line 161, chars 5376-5408, hits: 0) +- IC 1263 -> Item 1344 + - Refers to item: Statement (location: source ID 23, line 161, chars 5376-5408, hits: 0) +- IC 1265 -> Item 1345 + - Refers to item: Statement (location: source ID 23, line 161, chars 5392-5408, hits: 0) +- IC 1276 -> Item 1346 + - Refers to item: Line (location: source ID 23, line 162, chars 5418-5478, hits: 0) +- IC 1276 -> Item 1347 + - Refers to item: Statement (location: source ID 23, line 162, chars 5418-5478, hits: 0) +- IC 1327 -> Item 1348 + - Refers to item: Branch (branch: 5, path: 0) (location: source ID 23, line 162, chars 5418-5478, hits: 0) +- IC 1385 -> Item 1349 + - Refers to item: Branch (branch: 5, path: 1) (location: source ID 23, line 162, chars 5418-5478, hits: 0) +- IC 1386 -> Item 1350 + - Refers to item: Line (location: source ID 23, line 164, chars 5489-5657, hits: 0) +- IC 1386 -> Item 1351 + - Refers to item: Statement (location: source ID 23, line 164, chars 5489-5657, hits: 0) +- IC 1468 -> Item 1352 + - Refers to item: Branch (branch: 6, path: 0) (location: source ID 23, line 164, chars 5489-5657, hits: 0) +- IC 1526 -> Item 1353 + - Refers to item: Branch (branch: 6, path: 1) (location: source ID 23, line 164, chars 5489-5657, hits: 0) +- IC 1527 -> Item 1354 + - Refers to item: Line (location: source ID 23, line 169, chars 5668-5689, hits: 0) +- IC 1527 -> Item 1355 + - Refers to item: Statement (location: source ID 23, line 169, chars 5668-5689, hits: 0) +- IC 317 -> Item 1356 + - Refers to item: Function "getApproved" (location: source ID 23, line 175, chars 5757-5977, hits: 0) +- IC 1132 -> Item 1357 + - Refers to item: Line (location: source ID 23, line 176, chars 5852-5928, hits: 0) +- IC 1132 -> Item 1358 + - Refers to item: Statement (location: source ID 23, line 176, chars 5852-5928, hits: 0) +- IC 1145 -> Item 1359 + - Refers to item: Branch (branch: 7, path: 0) (location: source ID 23, line 176, chars 5852-5928, hits: 0) +- IC 1203 -> Item 1360 + - Refers to item: Branch (branch: 7, path: 1) (location: source ID 23, line 176, chars 5852-5928, hits: 0) +- IC 1204 -> Item 1361 + - Refers to item: Line (location: source ID 23, line 178, chars 5939-5970, hits: 0) +- IC 1204 -> Item 1362 + - Refers to item: Statement (location: source ID 23, line 178, chars 5939-5970, hits: 0) +- IC 605 -> Item 1363 + - Refers to item: Function "setApprovalForAll" (location: source ID 23, line 184, chars 6044-6337, hits: 0) +- IC 2110 -> Item 1364 + - Refers to item: Line (location: source ID 23, line 185, chars 6138-6203, hits: 0) +- IC 2110 -> Item 1365 + - Refers to item: Statement (location: source ID 23, line 185, chars 6138-6203, hits: 0) +- IC 2168 -> Item 1366 + - Refers to item: Branch (branch: 8, path: 0) (location: source ID 23, line 185, chars 6138-6203, hits: 0) +- IC 2226 -> Item 1367 + - Refers to item: Branch (branch: 8, path: 1) (location: source ID 23, line 185, chars 6138-6203, hits: 0) +- IC 2227 -> Item 1368 + - Refers to item: Line (location: source ID 23, line 187, chars 6214-6267, hits: 0) +- IC 2227 -> Item 1369 + - Refers to item: Statement (location: source ID 23, line 187, chars 6214-6267, hits: 0) +- IC 2382 -> Item 1370 + - Refers to item: Line (location: source ID 23, line 188, chars 6277-6330, hits: 0) +- IC 2382 -> Item 1371 + - Refers to item: Statement (location: source ID 23, line 188, chars 6277-6330, hits: 0) +- IC 709 -> Item 1372 + - Refers to item: Function "isApprovedForAll" (location: source ID 23, line 194, chars 6403-6565, hits: 0) +- IC 2761 -> Item 1373 + - Refers to item: Line (location: source ID 23, line 195, chars 6516-6558, hits: 0) +- IC 2761 -> Item 1374 + - Refers to item: Statement (location: source ID 23, line 195, chars 6516-6558, hits: 0) +- IC 423 -> Item 1375 + - Refers to item: Function "transferFrom" (location: source ID 23, line 201, chars 6627-6930, hits: 0) +- IC 1557 -> Item 1376 + - Refers to item: Line (location: source ID 23, line 203, chars 6778-6884, hits: 0) +- IC 1557 -> Item 1377 + - Refers to item: Statement (location: source ID 23, line 203, chars 6778-6884, hits: 0) +- IC 1578 -> Item 1378 + - Refers to item: Branch (branch: 9, path: 0) (location: source ID 23, line 203, chars 6778-6884, hits: 0) +- IC 1636 -> Item 1379 + - Refers to item: Branch (branch: 9, path: 1) (location: source ID 23, line 203, chars 6778-6884, hits: 0) +- IC 1637 -> Item 1380 + - Refers to item: Line (location: source ID 23, line 205, chars 6895-6923, hits: 0) +- IC 1637 -> Item 1381 + - Refers to item: Statement (location: source ID 23, line 205, chars 6895-6923, hits: 0) +- IC 451 -> Item 1382 + - Refers to item: Function "safeTransferFrom" (location: source ID 23, line 211, chars 6996-7145, hits: 0) +- IC 1653 -> Item 1383 + - Refers to item: Line (location: source ID 23, line 212, chars 7099-7138, hits: 0) +- IC 1653 -> Item 1384 + - Refers to item: Statement (location: source ID 23, line 212, chars 7099-7138, hits: 0) +- IC 633 -> Item 1385 + - Refers to item: Function "safeTransferFrom" (location: source ID 23, line 218, chars 7211-7496, hits: 0) +- IC 2494 -> Item 1386 + - Refers to item: Line (location: source ID 23, line 219, chars 7334-7440, hits: 0) +- IC 2494 -> Item 1387 + - Refers to item: Statement (location: source ID 23, line 219, chars 7334-7440, hits: 0) +- IC 2515 -> Item 1388 + - Refers to item: Branch (branch: 10, path: 0) (location: source ID 23, line 219, chars 7334-7440, hits: 0) +- IC 2573 -> Item 1389 + - Refers to item: Branch (branch: 10, path: 1) (location: source ID 23, line 219, chars 7334-7440, hits: 0) +- IC 2574 -> Item 1390 + - Refers to item: Line (location: source ID 23, line 220, chars 7450-7489, hits: 0) +- IC 2574 -> Item 1391 + - Refers to item: Statement (location: source ID 23, line 220, chars 7450-7489, hits: 0) +- IC 4300 -> Item 1392 + - Refers to item: Function "_safeTransfer" (location: source ID 23, line 241, chars 8358-8667, hits: 0) +- IC 4301 -> Item 1393 + - Refers to item: Line (location: source ID 23, line 242, chars 8471-8499, hits: 0) +- IC 4301 -> Item 1394 + - Refers to item: Statement (location: source ID 23, line 242, chars 8471-8499, hits: 0) +- IC 4312 -> Item 1395 + - Refers to item: Line (location: source ID 23, line 243, chars 8509-8660, hits: 0) +- IC 4312 -> Item 1396 + - Refers to item: Statement (location: source ID 23, line 243, chars 8509-8660, hits: 0) +- IC 4330 -> Item 1397 + - Refers to item: Branch (branch: 11, path: 0) (location: source ID 23, line 243, chars 8509-8660, hits: 0) +- IC 4388 -> Item 1398 + - Refers to item: Branch (branch: 11, path: 1) (location: source ID 23, line 243, chars 8509-8660, hits: 0) +- IC 3012 -> Item 1399 + - Refers to item: Function "_exists" (location: source ID 23, line 256, chars 8913-9062, hits: 0) +- IC 3015 -> Item 1400 + - Refers to item: Line (location: source ID 23, line 257, chars 8994-9055, hits: 0) +- IC 3015 -> Item 1401 + - Refers to item: Statement (location: source ID 23, line 257, chars 8994-9055, hits: 0) +- IC 3271 -> Item 1402 + - Refers to item: Function "_isApprovedOrOwner" (location: source ID 23, line 267, chars 9220-9560, hits: 0) +- IC 3274 -> Item 1403 + - Refers to item: Line (location: source ID 23, line 268, chars 9329-9405, hits: 0) +- IC 3274 -> Item 1404 + - Refers to item: Statement (location: source ID 23, line 268, chars 9329-9405, hits: 0) +- IC 3287 -> Item 1405 + - Refers to item: Branch (branch: 12, path: 0) (location: source ID 23, line 268, chars 9329-9405, hits: 0) +- IC 3345 -> Item 1406 + - Refers to item: Branch (branch: 12, path: 1) (location: source ID 23, line 268, chars 9329-9405, hits: 0) +- IC 3346 -> Item 1407 + - Refers to item: Line (location: source ID 23, line 269, chars 9415-9447, hits: 0) +- IC 3346 -> Item 1408 + - Refers to item: Statement (location: source ID 23, line 269, chars 9415-9447, hits: 0) +- IC 3348 -> Item 1409 + - Refers to item: Statement (location: source ID 23, line 269, chars 9431-9447, hits: 0) +- IC 3359 -> Item 1410 + - Refers to item: Line (location: source ID 23, line 270, chars 9457-9553, hits: 0) +- IC 3359 -> Item 1411 + - Refers to item: Statement (location: source ID 23, line 270, chars 9457-9553, hits: 0) +- IC 3493 -> Item 1454 + - Refers to item: Function "_transfer" (location: source ID 23, line 356, chars 12859-13793, hits: 0) +- IC 3494 -> Item 1455 + - Refers to item: Line (location: source ID 23, line 357, chars 12948-13021, hits: 0) +- IC 3494 -> Item 1456 + - Refers to item: Statement (location: source ID 23, line 357, chars 12948-13021, hits: 0) +- IC 3497 -> Item 1457 + - Refers to item: Statement (location: source ID 23, line 357, chars 12992-13021, hits: 0) +- IC 3510 -> Item 1458 + - Refers to item: Line (location: source ID 23, line 359, chars 13032-13102, hits: 0) +- IC 3510 -> Item 1459 + - Refers to item: Statement (location: source ID 23, line 359, chars 13032-13102, hits: 0) +- IC 3561 -> Item 1460 + - Refers to item: Branch (branch: 16, path: 0) (location: source ID 23, line 359, chars 13032-13102, hits: 0) +- IC 3619 -> Item 1461 + - Refers to item: Branch (branch: 16, path: 1) (location: source ID 23, line 359, chars 13032-13102, hits: 0) +- IC 3620 -> Item 1462 + - Refers to item: Line (location: source ID 23, line 360, chars 13112-13180, hits: 0) +- IC 3620 -> Item 1463 + - Refers to item: Statement (location: source ID 23, line 360, chars 13112-13180, hits: 0) +- IC 3672 -> Item 1464 + - Refers to item: Branch (branch: 17, path: 0) (location: source ID 23, line 360, chars 13112-13180, hits: 0) +- IC 3730 -> Item 1465 + - Refers to item: Branch (branch: 17, path: 1) (location: source ID 23, line 360, chars 13112-13180, hits: 0) +- IC 3731 -> Item 1466 + - Refers to item: Line (location: source ID 23, line 362, chars 13191-13234, hits: 0) +- IC 3731 -> Item 1467 + - Refers to item: Statement (location: source ID 23, line 362, chars 13191-13234, hits: 0) +- IC 3744 -> Item 1468 + - Refers to item: Line (location: source ID 23, line 365, chars 13296-13325, hits: 0) +- IC 3744 -> Item 1469 + - Refers to item: Statement (location: source ID 23, line 365, chars 13296-13325, hits: 0) +- IC 3755 -> Item 1470 + - Refers to item: Line (location: source ID 23, line 367, chars 13336-13375, hits: 0) +- IC 3755 -> Item 1471 + - Refers to item: Statement (location: source ID 23, line 367, chars 13336-13375, hits: 0) +- IC 3757 -> Item 1472 + - Refers to item: Statement (location: source ID 23, line 367, chars 13364-13375, hits: 0) +- IC 3772 -> Item 1473 + - Refers to item: Line (location: source ID 23, line 369, chars 13390-13462, hits: 0) +- IC 3772 -> Item 1474 + - Refers to item: Statement (location: source ID 23, line 369, chars 13390-13462, hits: 0) +- IC 3816 -> Item 1475 + - Refers to item: Branch (branch: 18, path: 0) (location: source ID 23, line 369, chars 13386-13569, hits: 0) +- IC 3918 -> Item 1476 + - Refers to item: Branch (branch: 18, path: 1) (location: source ID 23, line 369, chars 13386-13569, hits: 0) +- IC 3816 -> Item 1477 + - Refers to item: Line (location: source ID 23, line 370, chars 13478-13511, hits: 0) +- IC 3816 -> Item 1478 + - Refers to item: Statement (location: source ID 23, line 370, chars 13478-13511, hits: 0) +- IC 3898 -> Item 1479 + - Refers to item: Line (location: source ID 23, line 371, chars 13525-13558, hits: 0) +- IC 3898 -> Item 1480 + - Refers to item: Statement (location: source ID 23, line 371, chars 13525-13558, hits: 0) +- IC 3919 -> Item 1481 + - Refers to item: Line (location: source ID 23, line 374, chars 13579-13600, hits: 0) +- IC 3919 -> Item 1482 + - Refers to item: Statement (location: source ID 23, line 374, chars 13579-13600, hits: 0) +- IC 4001 -> Item 1483 + - Refers to item: Line (location: source ID 23, line 375, chars 13614-13641, hits: 0) +- IC 4001 -> Item 1484 + - Refers to item: Statement (location: source ID 23, line 375, chars 13614-13641, hits: 0) +- IC 4008 -> Item 1485 + - Refers to item: Branch (branch: 19, path: 0) (location: source ID 23, line 375, chars 13610-13691, hits: 0) +- IC 4028 -> Item 1486 + - Refers to item: Branch (branch: 19, path: 1) (location: source ID 23, line 375, chars 13610-13691, hits: 0) +- IC 4008 -> Item 1487 + - Refers to item: Line (location: source ID 23, line 376, chars 13657-13680, hits: 0) +- IC 4008 -> Item 1488 + - Refers to item: Statement (location: source ID 23, line 376, chars 13657-13680, hits: 0) +- IC 4029 -> Item 1489 + - Refers to item: Line (location: source ID 23, line 379, chars 13701-13733, hits: 0) +- IC 4029 -> Item 1490 + - Refers to item: Statement (location: source ID 23, line 379, chars 13701-13733, hits: 0) +- IC 4120 -> Item 1491 + - Refers to item: Line (location: source ID 23, line 381, chars 13744-13786, hits: 0) +- IC 4120 -> Item 1492 + - Refers to item: Statement (location: source ID 23, line 381, chars 13744-13786, hits: 0) +- IC 3058 -> Item 1493 + - Refers to item: Function "_approve" (location: source ID 23, line 389, chars 13904-14068, hits: 0) +- IC 3059 -> Item 1494 + - Refers to item: Line (location: source ID 23, line 390, chars 13978-14007, hits: 0) +- IC 3059 -> Item 1495 + - Refers to item: Statement (location: source ID 23, line 390, chars 13978-14007, hits: 0) +- IC 3141 -> Item 1496 + - Refers to item: Line (location: source ID 23, line 391, chars 14017-14061, hits: 0) +- IC 3141 -> Item 1497 + - Refers to item: Statement (location: source ID 23, line 391, chars 14017-14061, hits: 0) +- IC 4848 -> Item 1498 + - Refers to item: Function "_checkOnERC721Received" (location: source ID 23, line 405, chars 14709-15724, hits: 0) +- IC 4851 -> Item 1499 + - Refers to item: Line (location: source ID 23, line 412, chars 14912-14927, hits: 0) +- IC 4851 -> Item 1500 + - Refers to item: Statement (location: source ID 23, line 412, chars 14912-14927, hits: 0) +- IC 5183 -> Item 1501 + - Refers to item: Branch (branch: 20, path: 0) (location: source ID 23, line 412, chars 14908-15676, hits: 0) +- IC 5256 -> Item 1502 + - Refers to item: Branch (branch: 20, path: 1) (location: source ID 23, line 412, chars 14908-15676, hits: 0) +- IC 4887 -> Item 1503 + - Refers to item: Line (location: source ID 23, line 413, chars 14943-14951, hits: 0) +- IC 4887 -> Item 1504 + - Refers to item: Statement (location: source ID 23, line 413, chars 14943-14951, hits: 0) +- IC 4891 -> Item 1505 + - Refers to item: Line (location: source ID 23, line 414, chars 14970-15000, hits: 0) +- IC 4891 -> Item 1506 + - Refers to item: Statement (location: source ID 23, line 414, chars 14970-15000, hits: 0) +- IC 4897 -> Item 1507 + - Refers to item: Statement (location: source ID 23, line 414, chars 15002-15035, hits: 0) +- IC 5260 -> Item 1508 + - Refers to item: Statement (location: source ID 23, line 414, chars 15037-15046, hits: 0) +- IC 4916 -> Item 1509 + - Refers to item: Line (location: source ID 23, line 415, chars 15070-15142, hits: 0) +- IC 4916 -> Item 1510 + - Refers to item: Statement (location: source ID 23, line 415, chars 15070-15142, hits: 0) +- IC 5280 -> Item 1511 + - Refers to item: Line (location: source ID 23, line 427, chars 15657-15665, hits: 0) +- IC 5280 -> Item 1512 + - Refers to item: Statement (location: source ID 23, line 427, chars 15657-15665, hits: 0) +- IC 5285 -> Item 1513 + - Refers to item: Line (location: source ID 23, line 429, chars 15696-15707, hits: 0) +- IC 5285 -> Item 1514 + - Refers to item: Statement (location: source ID 23, line 429, chars 15696-15707, hits: 0) +- IC 4819 -> Item 1515 + - Refers to item: Function "_getBatchHead" (location: source ID 23, line 433, chars 15730-15886, hits: 0) +- IC 4822 -> Item 1516 + - Refers to item: Line (location: source ID 23, line 434, chars 15829-15879, hits: 0) +- IC 4822 -> Item 1517 + - Refers to item: Statement (location: source ID 23, line 434, chars 15829-15879, hits: 0) +- IC 393 -> Item 1518 + - Refers to item: Function "totalSupply" (location: source ID 23, line 437, chars 15892-15991, hits: 0) +- IC 1544 -> Item 1519 + - Refers to item: Line (location: source ID 23, line 438, chars 15963-15984, hits: 0) +- IC 1544 -> Item 1520 + - Refers to item: Statement (location: source ID 23, line 438, chars 15963-15984, hits: 0) +- IC 4623 -> Item 1521 + - Refers to item: Function "_beforeTokenTransfers" (location: source ID 23, line 453, chars 16465-16581, hits: 0) +- IC 4813 -> Item 1522 + - Refers to item: Function "_afterTokenTransfers" (location: source ID 23, line 467, chars 16979-17094, hits: 0) + +Anchors for Contract "MockFactory" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 5): +- IC 59 -> Item 3 + - Refers to item: Function "computeAddress" (location: source ID 5, line 7, chars 152-300, hits: 0) +- IC 138 -> Item 4 + - Refers to item: Line (location: source ID 5, line 8, chars 248-293, hits: 0) +- IC 138 -> Item 5 + - Refers to item: Statement (location: source ID 5, line 8, chars 248-293, hits: 0) +- IC 107 -> Item 6 + - Refers to item: Function "deploy" (location: source ID 5, line 11, chars 306-408, hits: 0) +- IC 156 -> Item 7 + - Refers to item: Line (location: source ID 5, line 12, chars 372-401, hits: 0) +- IC 156 -> Item 8 + - Refers to item: Statement (location: source ID 5, line 12, chars 372-401, hits: 0) + +Anchors for Contract "Registration" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 2): +- IC 255 -> Item 9 + - Refers to item: Function "registerAndDepositNft" (location: source ID 2, line 13, chars 200-532, hits: 0) +- IC 1318 -> Item 10 + - Refers to item: Line (location: source ID 2, line 21, chars 417-462, hits: 0) +- IC 1318 -> Item 11 + - Refers to item: Statement (location: source ID 2, line 21, chars 417-462, hits: 0) +- IC 1463 -> Item 12 + - Refers to item: Line (location: source ID 2, line 22, chars 472-525, hits: 0) +- IC 1463 -> Item 13 + - Refers to item: Statement (location: source ID 2, line 22, chars 472-525, hits: 0) +- IC 359 -> Item 14 + - Refers to item: Function "registerAndWithdraw" (location: source ID 2, line 25, chars 538-798, hits: 0) +- IC 2123 -> Item 15 + - Refers to item: Line (location: source ID 2, line 31, chars 703-748, hits: 0) +- IC 2123 -> Item 16 + - Refers to item: Statement (location: source ID 2, line 31, chars 703-748, hits: 0) +- IC 2268 -> Item 17 + - Refers to item: Line (location: source ID 2, line 32, chars 758-791, hits: 0) +- IC 2268 -> Item 18 + - Refers to item: Statement (location: source ID 2, line 32, chars 758-791, hits: 0) +- IC 283 -> Item 19 + - Refers to item: Function "registerAndWithdrawTo" (location: source ID 2, line 35, chars 804-1106, hits: 0) +- IC 1617 -> Item 20 + - Refers to item: Line (location: source ID 2, line 42, chars 998-1043, hits: 0) +- IC 1617 -> Item 21 + - Refers to item: Statement (location: source ID 2, line 42, chars 998-1043, hits: 0) +- IC 1762 -> Item 22 + - Refers to item: Line (location: source ID 2, line 43, chars 1053-1099, hits: 0) +- IC 1762 -> Item 23 + - Refers to item: Statement (location: source ID 2, line 43, chars 1053-1099, hits: 0) +- IC 227 -> Item 24 + - Refers to item: Function "registerAndWithdrawNft" (location: source ID 2, line 46, chars 1112-1412, hits: 0) +- IC 1022 -> Item 25 + - Refers to item: Line (location: source ID 2, line 53, chars 1305-1350, hits: 0) +- IC 1022 -> Item 26 + - Refers to item: Statement (location: source ID 2, line 53, chars 1305-1350, hits: 0) +- IC 1167 -> Item 27 + - Refers to item: Line (location: source ID 2, line 54, chars 1360-1405, hits: 0) +- IC 1167 -> Item 28 + - Refers to item: Statement (location: source ID 2, line 54, chars 1360-1405, hits: 0) +- IC 199 -> Item 29 + - Refers to item: Function "registerAndWithdrawNftTo" (location: source ID 2, line 57, chars 1418-1760, hits: 0) +- IC 723 -> Item 30 + - Refers to item: Line (location: source ID 2, line 65, chars 1640-1685, hits: 0) +- IC 723 -> Item 31 + - Refers to item: Statement (location: source ID 2, line 65, chars 1640-1685, hits: 0) +- IC 868 -> Item 32 + - Refers to item: Line (location: source ID 2, line 66, chars 1695-1753, hits: 0) +- IC 868 -> Item 33 + - Refers to item: Statement (location: source ID 2, line 66, chars 1695-1753, hits: 0) +- IC 141 -> Item 34 + - Refers to item: Function "regsiterAndWithdrawAndMint" (location: source ID 2, line 69, chars 1766-2089, hits: 0) +- IC 388 -> Item 35 + - Refers to item: Line (location: source ID 2, line 76, chars 1974-2019, hits: 0) +- IC 388 -> Item 36 + - Refers to item: Statement (location: source ID 2, line 76, chars 1974-2019, hits: 0) +- IC 533 -> Item 37 + - Refers to item: Line (location: source ID 2, line 77, chars 2029-2082, hits: 0) +- IC 533 -> Item 38 + - Refers to item: Statement (location: source ID 2, line 77, chars 2029-2082, hits: 0) +- IC 311 -> Item 39 + - Refers to item: Function "isRegistered" (location: source ID 2, line 80, chars 2095-2223, hits: 0) +- IC 1915 -> Item 40 + - Refers to item: Line (location: source ID 2, line 81, chars 2172-2216, hits: 0) +- IC 1915 -> Item 41 + - Refers to item: Statement (location: source ID 2, line 81, chars 2172-2216, hits: 0) + +Anchors for Contract "RandomSeedProvider" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 7): +- IC 1121 -> Item 780 + - Refers to item: Function "initialize" (location: source ID 7, line 82, chars 3816-4471, hits: 4) +- IC 3340 -> Item 781 + - Refers to item: Line (location: source ID 7, line 83, chars 3938-3980, hits: 0) +- IC 3340 -> Item 782 + - Refers to item: Statement (location: source ID 7, line 83, chars 3938-3980, hits: 0) +- IC 3353 -> Item 783 + - Refers to item: Line (location: source ID 7, line 84, chars 3990-4033, hits: 0) +- IC 3353 -> Item 784 + - Refers to item: Statement (location: source ID 7, line 84, chars 3990-4033, hits: 0) +- IC 3395 -> Item 785 + - Refers to item: Line (location: source ID 7, line 89, chars 4235-4309, hits: 0) +- IC 3395 -> Item 786 + - Refers to item: Statement (location: source ID 7, line 89, chars 4235-4309, hits: 0) +- IC 3459 -> Item 787 + - Refers to item: Line (location: source ID 7, line 90, chars 4319-4338, hits: 0) +- IC 3459 -> Item 788 + - Refers to item: Statement (location: source ID 7, line 90, chars 4319-4338, hits: 0) +- IC 3467 -> Item 789 + - Refers to item: Line (location: source ID 7, line 91, chars 4348-4387, hits: 0) +- IC 3467 -> Item 790 + - Refers to item: Statement (location: source ID 7, line 91, chars 4348-4387, hits: 0) +- IC 3476 -> Item 791 + - Refers to item: Line (location: source ID 7, line 93, chars 4398-4420, hits: 0) +- IC 3476 -> Item 792 + - Refers to item: Statement (location: source ID 7, line 93, chars 4398-4420, hits: 0) +- IC 3540 -> Item 793 + - Refers to item: Line (location: source ID 7, line 94, chars 4430-4464, hits: 0) +- IC 3540 -> Item 794 + - Refers to item: Statement (location: source ID 7, line 94, chars 4430-4464, hits: 0) +- IC 1014 -> Item 795 + - Refers to item: Function "setOffchainRandomSource" (location: source ID 7, line 102, chars 4682-4897, hits: 10) +- IC 2552 -> Item 796 + - Refers to item: Line (location: source ID 7, line 103, chars 4793-4829, hits: 9) +- IC 2552 -> Item 797 + - Refers to item: Statement (location: source ID 7, line 103, chars 4793-4829, hits: 9) +- IC 2617 -> Item 798 + - Refers to item: Line (location: source ID 7, line 104, chars 4839-4890, hits: 9) +- IC 2617 -> Item 799 + - Refers to item: Statement (location: source ID 7, line 104, chars 4839-4890, hits: 9) +- IC 558 -> Item 800 + - Refers to item: Function "setRanDaoAvailable" (location: source ID 7, line 112, chars 5045-5181, hits: 2) +- IC 1654 -> Item 801 + - Refers to item: Line (location: source ID 7, line 113, chars 5122-5144, hits: 1) +- IC 1654 -> Item 802 + - Refers to item: Statement (location: source ID 7, line 113, chars 5122-5144, hits: 1) +- IC 1681 -> Item 803 + - Refers to item: Line (location: source ID 7, line 114, chars 5154-5174, hits: 1) +- IC 1681 -> Item 804 + - Refers to item: Statement (location: source ID 7, line 114, chars 5154-5174, hits: 1) +- IC 790 -> Item 805 + - Refers to item: Function "addOffchainRandomConsumer" (location: source ID 7, line 122, chars 5439-5644, hits: 10) +- IC 2240 -> Item 806 + - Refers to item: Line (location: source ID 7, line 123, chars 5541-5584, hits: 9) +- IC 2240 -> Item 807 + - Refers to item: Statement (location: source ID 7, line 123, chars 5541-5584, hits: 9) +- IC 2328 -> Item 808 + - Refers to item: Line (location: source ID 7, line 124, chars 5594-5637, hits: 9) +- IC 2328 -> Item 809 + - Refers to item: Statement (location: source ID 7, line 124, chars 5594-5637, hits: 9) +- IC 1227 -> Item 810 + - Refers to item: Function "removeOffchainRandomConsumer" (location: source ID 7, line 132, chars 5915-6126, hits: 2) +- IC 3985 -> Item 811 + - Refers to item: Line (location: source ID 7, line 133, chars 6020-6064, hits: 1) +- IC 3985 -> Item 812 + - Refers to item: Statement (location: source ID 7, line 133, chars 6020-6064, hits: 1) +- IC 4073 -> Item 813 + - Refers to item: Line (location: source ID 7, line 134, chars 6074-6119, hits: 1) +- IC 4073 -> Item 814 + - Refers to item: Statement (location: source ID 7, line 134, chars 6074-6119, hits: 1) +- IC 1090 -> Item 815 + - Refers to item: Function "requestRandomSeed" (location: source ID 7, line 146, chars 6728-7970, hits: 40) +- IC 2705 -> Item 816 + - Refers to item: Line (location: source ID 7, line 147, chars 6844-6909, hits: 40) +- IC 2705 -> Item 817 + - Refers to item: Statement (location: source ID 7, line 147, chars 6844-6909, hits: 40) +- IC 2875 -> Item 818 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 7, line 147, chars 6840-7391, hits: 32) +- IC 2896 -> Item 819 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 7, line 147, chars 6840-7391, hits: 8) +- IC 2875 -> Item 820 + - Refers to item: Line (location: source ID 7, line 151, chars 7183-7211, hits: 32) +- IC 2875 -> Item 821 + - Refers to item: Statement (location: source ID 7, line 151, chars 7183-7211, hits: 32) +- IC 2883 -> Item 822 + - Refers to item: Line (location: source ID 7, line 154, chars 7301-7342, hits: 32) +- IC 2883 -> Item 823 + - Refers to item: Statement (location: source ID 7, line 154, chars 7301-7342, hits: 32) +- IC 2890 -> Item 824 + - Refers to item: Line (location: source ID 7, line 156, chars 7357-7380, hits: 32) +- IC 2890 -> Item 825 + - Refers to item: Statement (location: source ID 7, line 156, chars 7357-7380, hits: 32) +- IC 2897 -> Item 826 + - Refers to item: Line (location: source ID 7, line 160, chars 7524-7564, hits: 8) +- IC 2897 -> Item 827 + - Refers to item: Statement (location: source ID 7, line 160, chars 7524-7564, hits: 8) +- IC 2906 -> Item 828 + - Refers to item: Branch (branch: 1, path: 0) (location: source ID 7, line 160, chars 7520-7650, hits: 2) +- IC 2915 -> Item 829 + - Refers to item: Branch (branch: 1, path: 1) (location: source ID 7, line 160, chars 7520-7650, hits: 6) +- IC 2906 -> Item 830 + - Refers to item: Line (location: source ID 7, line 161, chars 7584-7635, hits: 2) +- IC 2906 -> Item 831 + - Refers to item: Statement (location: source ID 7, line 161, chars 7584-7635, hits: 2) +- IC 2916 -> Item 832 + - Refers to item: Line (location: source ID 7, line 164, chars 7686-7771, hits: 6) +- IC 2916 -> Item 833 + - Refers to item: Statement (location: source ID 7, line 164, chars 7686-7771, hits: 6) +- IC 3065 -> Item 834 + - Refers to item: Line (location: source ID 7, line 165, chars 7789-7840, hits: 6) +- IC 3065 -> Item 835 + - Refers to item: Statement (location: source ID 7, line 165, chars 7789-7840, hits: 6) +- IC 3072 -> Item 836 + - Refers to item: Line (location: source ID 7, line 166, chars 7858-7897, hits: 6) +- IC 3072 -> Item 837 + - Refers to item: Statement (location: source ID 7, line 166, chars 7858-7897, hits: 6) +- IC 3080 -> Item 838 + - Refers to item: Line (location: source ID 7, line 168, chars 7925-7953, hits: 8) +- IC 3080 -> Item 839 + - Refers to item: Statement (location: source ID 7, line 168, chars 7925-7953, hits: 8) +- IC 646 -> Item 840 + - Refers to item: Function "getRandomSeed" (location: source ID 7, line 180, chars 8404-9061, hits: 62) +- IC 1769 -> Item 841 + - Refers to item: Line (location: source ID 7, line 181, chars 8536-8560, hits: 62) +- IC 1769 -> Item 842 + - Refers to item: Statement (location: source ID 7, line 181, chars 8536-8560, hits: 62) +- IC 1836 -> Item 843 + - Refers to item: Branch (branch: 2, path: 0) (location: source ID 7, line 181, chars 8532-8789, hits: 8) +- IC 1885 -> Item 844 + - Refers to item: Branch (branch: 2, path: 1) (location: source ID 7, line 181, chars 8532-8789, hits: 44) +- IC 1819 -> Item 845 + - Refers to item: Line (location: source ID 7, line 182, chars 8576-8604, hits: 52) +- IC 1819 -> Item 846 + - Refers to item: Statement (location: source ID 7, line 182, chars 8576-8604, hits: 52) +- IC 1827 -> Item 847 + - Refers to item: Line (location: source ID 7, line 183, chars 8622-8664, hits: 52) +- IC 1827 -> Item 848 + - Refers to item: Statement (location: source ID 7, line 183, chars 8622-8664, hits: 52) +- IC 1836 -> Item 849 + - Refers to item: Branch (branch: 3, path: 0) (location: source ID 7, line 183, chars 8618-8721, hits: 8) +- IC 1885 -> Item 850 + - Refers to item: Branch (branch: 3, path: 1) (location: source ID 7, line 183, chars 8618-8721, hits: 44) +- IC 1836 -> Item 851 + - Refers to item: Line (location: source ID 7, line 184, chars 8684-8706, hits: 8) +- IC 1836 -> Item 852 + - Refers to item: Statement (location: source ID 7, line 184, chars 8684-8706, hits: 8) +- IC 1886 -> Item 853 + - Refers to item: Line (location: source ID 7, line 186, chars 8734-8778, hits: 44) +- IC 1886 -> Item 854 + - Refers to item: Statement (location: source ID 7, line 186, chars 8734-8778, hits: 44) +- IC 1913 -> Item 855 + - Refers to item: Line (location: source ID 7, line 191, chars 8957-9043, hits: 10) +- IC 1913 -> Item 856 + - Refers to item: Statement (location: source ID 7, line 191, chars 8957-9043, hits: 10) +- IC 1149 -> Item 857 + - Refers to item: Function "isRandomSeedReady" (location: source ID 7, line 199, chars 9212-9751, hits: 19) +- IC 3664 -> Item 858 + - Refers to item: Line (location: source ID 7, line 200, chars 9338-9362, hits: 19) +- IC 3664 -> Item 859 + - Refers to item: Statement (location: source ID 7, line 200, chars 9338-9362, hits: 19) +- IC 3723 -> Item 860 + - Refers to item: Branch (branch: 4, path: 0) (location: source ID 7, line 200, chars 9334-9616, hits: 9) +- IC 3734 -> Item 861 + - Refers to item: Branch (branch: 4, path: 1) (location: source ID 7, line 200, chars 9334-9616, hits: 8) +- IC 3714 -> Item 862 + - Refers to item: Line (location: source ID 7, line 201, chars 9382-9422, hits: 17) +- IC 3714 -> Item 863 + - Refers to item: Statement (location: source ID 7, line 201, chars 9382-9422, hits: 17) +- IC 3723 -> Item 864 + - Refers to item: Branch (branch: 5, path: 0) (location: source ID 7, line 201, chars 9378-9505, hits: 9) +- IC 3734 -> Item 865 + - Refers to item: Branch (branch: 5, path: 1) (location: source ID 7, line 201, chars 9378-9505, hits: 8) +- IC 3723 -> Item 866 + - Refers to item: Line (location: source ID 7, line 202, chars 9442-9490, hits: 9) +- IC 3723 -> Item 867 + - Refers to item: Statement (location: source ID 7, line 202, chars 9442-9490, hits: 9) +- IC 3735 -> Item 868 + - Refers to item: Line (location: source ID 7, line 205, chars 9541-9591, hits: 8) +- IC 3735 -> Item 869 + - Refers to item: Statement (location: source ID 7, line 205, chars 9541-9591, hits: 8) +- IC 3759 -> Item 870 + - Refers to item: Line (location: source ID 7, line 209, chars 9644-9733, hits: 2) +- IC 3759 -> Item 871 + - Refers to item: Statement (location: source ID 7, line 209, chars 9644-9733, hits: 2) +- IC 4385 -> Item 872 + - Refers to item: Function "_generateNextRandomOnChain" (location: source ID 7, line 217, chars 9844-11714, hits: 84) +- IC 4386 -> Item 873 + - Refers to item: Line (location: source ID 7, line 219, chars 9975-10015, hits: 84) +- IC 4386 -> Item 874 + - Refers to item: Statement (location: source ID 7, line 219, chars 9975-10015, hits: 84) +- IC 4396 -> Item 875 + - Refers to item: Branch (branch: 6, path: 0) (location: source ID 7, line 219, chars 9971-10048, hits: 59) +- IC 4586 -> Item 876 + - Refers to item: Branch (branch: 6, path: 1) (location: source ID 7, line 219, chars 9971-10048, hits: 84) +- IC 4392 -> Item 877 + - Refers to item: Line (location: source ID 7, line 220, chars 10031-10038, hits: 84) +- IC 4392 -> Item 878 + - Refers to item: Statement (location: source ID 7, line 220, chars 10031-10038, hits: 84) +- IC 4396 -> Item 879 + - Refers to item: Line (location: source ID 7, line 223, chars 10058-10073, hits: 59) +- IC 4396 -> Item 880 + - Refers to item: Statement (location: source ID 7, line 223, chars 10058-10073, hits: 59) +- IC 4398 -> Item 881 + - Refers to item: Line (location: source ID 7, line 224, chars 10083-10874, hits: 59) +- IC 4419 -> Item 882 + - Refers to item: Branch (branch: 7, path: 0) (location: source ID 7, line 224, chars 10083-10874, hits: 19) +- IC 4426 -> Item 883 + - Refers to item: Branch (branch: 7, path: 1) (location: source ID 7, line 224, chars 10083-10874, hits: 40) +- IC 4419 -> Item 884 + - Refers to item: Line (location: source ID 7, line 236, chars 10837-10863, hits: 19) +- IC 4419 -> Item 885 + - Refers to item: Statement (location: source ID 7, line 236, chars 10837-10863, hits: 19) +- IC 4427 -> Item 886 + - Refers to item: Line (location: source ID 7, line 245, chars 11382-11428, hits: 40) +- IC 4427 -> Item 887 + - Refers to item: Statement (location: source ID 7, line 245, chars 11382-11428, hits: 40) +- IC 4447 -> Item 888 + - Refers to item: Line (location: source ID 7, line 248, chars 11449-11509, hits: 59) +- IC 4447 -> Item 889 + - Refers to item: Statement (location: source ID 7, line 248, chars 11449-11509, hits: 59) +- IC 4485 -> Item 890 + - Refers to item: Line (location: source ID 7, line 249, chars 11519-11599, hits: 59) +- IC 4485 -> Item 891 + - Refers to item: Statement (location: source ID 7, line 249, chars 11519-11599, hits: 59) +- IC 4487 -> Item 892 + - Refers to item: Statement (location: source ID 7, line 249, chars 11545-11599, hits: 59) +- IC 4530 -> Item 893 + - Refers to item: Line (location: source ID 7, line 250, chars 11609-11658, hits: 59) +- IC 4530 -> Item 894 + - Refers to item: Statement (location: source ID 7, line 250, chars 11609-11658, hits: 59) +- IC 4576 -> Item 895 + - Refers to item: Line (location: source ID 7, line 251, chars 11668-11707, hits: 59) +- IC 4576 -> Item 896 + - Refers to item: Statement (location: source ID 7, line 251, chars 11668-11707, hits: 59) + +Anchors for Contract "ImmutableSeaport" (solc 0.8.17+commit.8df45f5f.Darwin.appleclang, source ID 0): +- IC 871 -> Item 0 + - Refers to item: Function "setAllowedZone" (location: source ID 0, line 59, chars 2091-2251, hits: 0) +- IC 2493 -> Item 1 + - Refers to item: Line (location: source ID 0, line 60, chars 2172-2200, hits: 0) +- IC 2493 -> Item 2 + - Refers to item: Statement (location: source ID 0, line 60, chars 2172-2200, hits: 0) +- IC 2580 -> Item 3 + - Refers to item: Line (location: source ID 0, line 61, chars 2210-2244, hits: 0) +- IC 2580 -> Item 4 + - Refers to item: Statement (location: source ID 0, line 61, chars 2210-2244, hits: 0) +- IC 5016 -> Item 5 + - Refers to item: Function "_name" (location: source ID 0, line 70, chars 2419-2569, hits: 0) +- IC 5019 -> Item 6 + - Refers to item: Line (location: source ID 0, line 72, chars 2537-2562, hits: 0) +- IC 5019 -> Item 7 + - Refers to item: Statement (location: source ID 0, line 72, chars 2537-2562, hits: 0) +- IC 4853 -> Item 11 + - Refers to item: Function "_rejectIfZoneInvalid" (location: source ID 0, line 89, chars 3068-3216, hits: 0) +- IC 4854 -> Item 12 + - Refers to item: Line (location: source ID 0, line 90, chars 3140-3159, hits: 0) +- IC 4854 -> Item 13 + - Refers to item: Statement (location: source ID 0, line 90, chars 3140-3159, hits: 0) +- IC 4935 -> Item 14 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 0, line 90, chars 3136-3210, hits: 0) +- IC 4995 -> Item 15 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 0, line 90, chars 3136-3210, hits: 0) +- IC 4935 -> Item 16 + - Refers to item: Line (location: source ID 0, line 91, chars 3175-3199, hits: 0) +- IC 4935 -> Item 17 + - Refers to item: Statement (location: source ID 0, line 91, chars 3175-3199, hits: 0) +- IC 1404 -> Item 18 + - Refers to item: Function "fulfillBasicOrder" (location: source ID 0, line 120, chars 4871-5368, hits: 0) +- IC 4404 -> Item 19 + - Refers to item: Line (location: source ID 0, line 125, chars 5102-5198, hits: 0) +- IC 4404 -> Item 20 + - Refers to item: Statement (location: source ID 0, line 125, chars 5102-5198, hits: 0) +- IC 4525 -> Item 21 + - Refers to item: Branch (branch: 1, path: 0) (location: source ID 0, line 124, chars 5085-5261, hits: 0) +- IC 4574 -> Item 22 + - Refers to item: Branch (branch: 1, path: 1) (location: source ID 0, line 124, chars 5085-5261, hits: 0) +- IC 4525 -> Item 23 + - Refers to item: Line (location: source ID 0, line 128, chars 5223-5250, hits: 0) +- IC 4525 -> Item 24 + - Refers to item: Statement (location: source ID 0, line 128, chars 5223-5250, hits: 0) +- IC 4575 -> Item 25 + - Refers to item: Line (location: source ID 0, line 131, chars 5271-5308, hits: 0) +- IC 4575 -> Item 26 + - Refers to item: Statement (location: source ID 0, line 131, chars 5271-5308, hits: 0) +- IC 4602 -> Item 27 + - Refers to item: Line (location: source ID 0, line 133, chars 5319-5361, hits: 0) +- IC 4602 -> Item 28 + - Refers to item: Statement (location: source ID 0, line 133, chars 5319-5361, hits: 0) +- IC 352 -> Item 29 + - Refers to item: Function "fulfillBasicOrder_efficient_6GL6yc" (location: source ID 0, line 164, chars 7241-7772, hits: 0) +- IC 1538 -> Item 30 + - Refers to item: Line (location: source ID 0, line 169, chars 7489-7585, hits: 0) +- IC 1538 -> Item 31 + - Refers to item: Statement (location: source ID 0, line 169, chars 7489-7585, hits: 0) +- IC 1659 -> Item 32 + - Refers to item: Branch (branch: 2, path: 0) (location: source ID 0, line 168, chars 7472-7648, hits: 0) +- IC 1708 -> Item 33 + - Refers to item: Branch (branch: 2, path: 1) (location: source ID 0, line 168, chars 7472-7648, hits: 0) +- IC 1659 -> Item 34 + - Refers to item: Line (location: source ID 0, line 172, chars 7610-7637, hits: 0) +- IC 1659 -> Item 35 + - Refers to item: Statement (location: source ID 0, line 172, chars 7610-7637, hits: 0) +- IC 1709 -> Item 36 + - Refers to item: Line (location: source ID 0, line 175, chars 7658-7695, hits: 0) +- IC 1709 -> Item 37 + - Refers to item: Statement (location: source ID 0, line 175, chars 7658-7695, hits: 0) +- IC 1736 -> Item 38 + - Refers to item: Line (location: source ID 0, line 177, chars 7706-7765, hits: 0) +- IC 1736 -> Item 39 + - Refers to item: Statement (location: source ID 0, line 177, chars 7706-7765, hits: 0) +- IC 1021 -> Item 40 + - Refers to item: Function "fulfillOrder" (location: source ID 0, line 202, chars 9130-9679, hits: 0) +- IC 3003 -> Item 41 + - Refers to item: Line (location: source ID 0, line 210, chars 9363-9492, hits: 0) +- IC 3003 -> Item 42 + - Refers to item: Statement (location: source ID 0, line 210, chars 9363-9492, hits: 0) +- IC 3164 -> Item 43 + - Refers to item: Branch (branch: 3, path: 0) (location: source ID 0, line 209, chars 9346-9555, hits: 0) +- IC 3213 -> Item 44 + - Refers to item: Branch (branch: 3, path: 1) (location: source ID 0, line 209, chars 9346-9555, hits: 0) +- IC 3164 -> Item 45 + - Refers to item: Line (location: source ID 0, line 213, chars 9517-9544, hits: 0) +- IC 3164 -> Item 46 + - Refers to item: Statement (location: source ID 0, line 213, chars 9517-9544, hits: 0) +- IC 3214 -> Item 47 + - Refers to item: Line (location: source ID 0, line 216, chars 9565-9608, hits: 0) +- IC 3214 -> Item 48 + - Refers to item: Statement (location: source ID 0, line 216, chars 9565-9608, hits: 0) +- IC 3256 -> Item 49 + - Refers to item: Line (location: source ID 0, line 218, chars 9619-9672, hits: 0) +- IC 3256 -> Item 50 + - Refers to item: Statement (location: source ID 0, line 218, chars 9619-9672, hits: 0) +- IC 1112 -> Item 51 + - Refers to item: Function "fulfillAdvancedOrder" (location: source ID 0, line 264, chars 12651-13540, hits: 0) +- IC 3318 -> Item 52 + - Refers to item: Line (location: source ID 0, line 277, chars 13064-13209, hits: 0) +- IC 3318 -> Item 53 + - Refers to item: Statement (location: source ID 0, line 277, chars 13064-13209, hits: 0) +- IC 3479 -> Item 54 + - Refers to item: Branch (branch: 4, path: 0) (location: source ID 0, line 276, chars 13047-13272, hits: 0) +- IC 3528 -> Item 55 + - Refers to item: Branch (branch: 4, path: 1) (location: source ID 0, line 276, chars 13047-13272, hits: 0) +- IC 3479 -> Item 56 + - Refers to item: Line (location: source ID 0, line 280, chars 13234-13261, hits: 0) +- IC 3479 -> Item 57 + - Refers to item: Statement (location: source ID 0, line 280, chars 13234-13261, hits: 0) +- IC 3529 -> Item 58 + - Refers to item: Line (location: source ID 0, line 283, chars 13282-13333, hits: 0) +- IC 3529 -> Item 59 + - Refers to item: Statement (location: source ID 0, line 283, chars 13282-13333, hits: 0) +- IC 3571 -> Item 60 + - Refers to item: Line (location: source ID 0, line 285, chars 13344-13533, hits: 0) +- IC 3571 -> Item 61 + - Refers to item: Statement (location: source ID 0, line 285, chars 13344-13533, hits: 0) +- IC 1160 -> Item 62 + - Refers to item: Function "fulfillAvailableOrders" (location: source ID 0, line 347, chars 17257-18576, hits: 0) +- IC 3598 -> Item 63 + - Refers to item: Line (location: source ID 0, line 372, chars 17932-17945, hits: 0) +- IC 3598 -> Item 64 + - Refers to item: Statement (location: source ID 0, line 372, chars 17932-17945, hits: 0) +- IC 3601 -> Item 65 + - Refers to item: Statement (location: source ID 0, line 372, chars 17947-17964, hits: 0) +- IC 3841 -> Item 66 + - Refers to item: Statement (location: source ID 0, line 372, chars 17966-17969, hits: 0) +- IC 3612 -> Item 67 + - Refers to item: Line (location: source ID 0, line 373, chars 17985-18015, hits: 0) +- IC 3612 -> Item 68 + - Refers to item: Statement (location: source ID 0, line 373, chars 17985-18015, hits: 0) +- IC 3662 -> Item 69 + - Refers to item: Line (location: source ID 0, line 375, chars 18050-18183, hits: 0) +- IC 3662 -> Item 70 + - Refers to item: Statement (location: source ID 0, line 375, chars 18050-18183, hits: 0) +- IC 3773 -> Item 71 + - Refers to item: Branch (branch: 5, path: 0) (location: source ID 0, line 374, chars 18029-18258, hits: 0) +- IC 3822 -> Item 72 + - Refers to item: Branch (branch: 5, path: 1) (location: source ID 0, line 374, chars 18029-18258, hits: 0) +- IC 3773 -> Item 73 + - Refers to item: Line (location: source ID 0, line 378, chars 18216-18243, hits: 0) +- IC 3773 -> Item 74 + - Refers to item: Statement (location: source ID 0, line 378, chars 18216-18243, hits: 0) +- IC 3823 -> Item 75 + - Refers to item: Line (location: source ID 0, line 380, chars 18271-18314, hits: 0) +- IC 3823 -> Item 76 + - Refers to item: Statement (location: source ID 0, line 380, chars 18271-18314, hits: 0) +- IC 3861 -> Item 77 + - Refers to item: Line (location: source ID 0, line 383, chars 18335-18569, hits: 0) +- IC 3861 -> Item 78 + - Refers to item: Statement (location: source ID 0, line 383, chars 18335-18569, hits: 0) +- IC 718 -> Item 79 + - Refers to item: Function "fulfillAvailableAdvancedOrders" (location: source ID 0, line 471, chars 24241-25907, hits: 0) +- IC 2091 -> Item 80 + - Refers to item: Line (location: source ID 0, line 501, chars 25096-25109, hits: 0) +- IC 2091 -> Item 81 + - Refers to item: Statement (location: source ID 0, line 501, chars 25096-25109, hits: 0) +- IC 2094 -> Item 82 + - Refers to item: Statement (location: source ID 0, line 501, chars 25111-25136, hits: 0) +- IC 2334 -> Item 83 + - Refers to item: Statement (location: source ID 0, line 501, chars 25138-25141, hits: 0) +- IC 2105 -> Item 84 + - Refers to item: Line (location: source ID 0, line 502, chars 25157-25211, hits: 0) +- IC 2105 -> Item 85 + - Refers to item: Statement (location: source ID 0, line 502, chars 25157-25211, hits: 0) +- IC 2155 -> Item 86 + - Refers to item: Line (location: source ID 0, line 504, chars 25246-25427, hits: 0) +- IC 2155 -> Item 87 + - Refers to item: Statement (location: source ID 0, line 504, chars 25246-25427, hits: 0) +- IC 2266 -> Item 88 + - Refers to item: Branch (branch: 6, path: 0) (location: source ID 0, line 503, chars 25225-25502, hits: 0) +- IC 2315 -> Item 89 + - Refers to item: Branch (branch: 6, path: 1) (location: source ID 0, line 503, chars 25225-25502, hits: 0) +- IC 2266 -> Item 90 + - Refers to item: Line (location: source ID 0, line 509, chars 25460-25487, hits: 0) +- IC 2266 -> Item 91 + - Refers to item: Statement (location: source ID 0, line 509, chars 25460-25487, hits: 0) +- IC 2316 -> Item 92 + - Refers to item: Line (location: source ID 0, line 512, chars 25516-25567, hits: 0) +- IC 2316 -> Item 93 + - Refers to item: Statement (location: source ID 0, line 512, chars 25516-25567, hits: 0) +- IC 2354 -> Item 94 + - Refers to item: Line (location: source ID 0, line 515, chars 25588-25900, hits: 0) +- IC 2354 -> Item 95 + - Refers to item: Statement (location: source ID 0, line 515, chars 25588-25900, hits: 0) +- IC 912 -> Item 96 + - Refers to item: Function "matchOrders" (location: source ID 0, line 556, chars 27792-28606, hits: 0) +- IC 2643 -> Item 97 + - Refers to item: Line (location: source ID 0, line 572, chars 28150-28163, hits: 0) +- IC 2643 -> Item 98 + - Refers to item: Statement (location: source ID 0, line 572, chars 28150-28163, hits: 0) +- IC 2646 -> Item 99 + - Refers to item: Statement (location: source ID 0, line 572, chars 28165-28182, hits: 0) +- IC 2886 -> Item 100 + - Refers to item: Statement (location: source ID 0, line 572, chars 28184-28187, hits: 0) +- IC 2657 -> Item 101 + - Refers to item: Line (location: source ID 0, line 573, chars 28203-28233, hits: 0) +- IC 2657 -> Item 102 + - Refers to item: Statement (location: source ID 0, line 573, chars 28203-28233, hits: 0) +- IC 2707 -> Item 103 + - Refers to item: Line (location: source ID 0, line 575, chars 28268-28401, hits: 0) +- IC 2707 -> Item 104 + - Refers to item: Statement (location: source ID 0, line 575, chars 28268-28401, hits: 0) +- IC 2818 -> Item 105 + - Refers to item: Branch (branch: 7, path: 0) (location: source ID 0, line 574, chars 28247-28476, hits: 0) +- IC 2867 -> Item 106 + - Refers to item: Branch (branch: 7, path: 1) (location: source ID 0, line 574, chars 28247-28476, hits: 0) +- IC 2818 -> Item 107 + - Refers to item: Line (location: source ID 0, line 578, chars 28434-28461, hits: 0) +- IC 2818 -> Item 108 + - Refers to item: Statement (location: source ID 0, line 578, chars 28434-28461, hits: 0) +- IC 2868 -> Item 109 + - Refers to item: Line (location: source ID 0, line 580, chars 28489-28532, hits: 0) +- IC 2868 -> Item 110 + - Refers to item: Statement (location: source ID 0, line 580, chars 28489-28532, hits: 0) +- IC 2906 -> Item 111 + - Refers to item: Line (location: source ID 0, line 583, chars 28553-28599, hits: 0) +- IC 2906 -> Item 112 + - Refers to item: Statement (location: source ID 0, line 583, chars 28553-28599, hits: 0) +- IC 1270 -> Item 113 + - Refers to item: Function "matchAdvancedOrders" (location: source ID 0, line 638, chars 32247-33466, hits: 0) +- IC 3914 -> Item 114 + - Refers to item: Line (location: source ID 0, line 659, chars 32785-32798, hits: 0) +- IC 3914 -> Item 115 + - Refers to item: Statement (location: source ID 0, line 659, chars 32785-32798, hits: 0) +- IC 3917 -> Item 116 + - Refers to item: Statement (location: source ID 0, line 659, chars 32800-32825, hits: 0) +- IC 4157 -> Item 117 + - Refers to item: Statement (location: source ID 0, line 659, chars 32827-32830, hits: 0) +- IC 3928 -> Item 118 + - Refers to item: Line (location: source ID 0, line 660, chars 32846-32900, hits: 0) +- IC 3928 -> Item 119 + - Refers to item: Statement (location: source ID 0, line 660, chars 32846-32900, hits: 0) +- IC 3978 -> Item 120 + - Refers to item: Line (location: source ID 0, line 662, chars 32935-33116, hits: 0) +- IC 3978 -> Item 121 + - Refers to item: Statement (location: source ID 0, line 662, chars 32935-33116, hits: 0) +- IC 4089 -> Item 122 + - Refers to item: Branch (branch: 8, path: 0) (location: source ID 0, line 661, chars 32914-33191, hits: 0) +- IC 4138 -> Item 123 + - Refers to item: Branch (branch: 8, path: 1) (location: source ID 0, line 661, chars 32914-33191, hits: 0) +- IC 4089 -> Item 124 + - Refers to item: Line (location: source ID 0, line 667, chars 33149-33176, hits: 0) +- IC 4089 -> Item 125 + - Refers to item: Statement (location: source ID 0, line 667, chars 33149-33176, hits: 0) +- IC 4139 -> Item 126 + - Refers to item: Line (location: source ID 0, line 670, chars 33205-33256, hits: 0) +- IC 4139 -> Item 127 + - Refers to item: Statement (location: source ID 0, line 670, chars 33205-33256, hits: 0) +- IC 4177 -> Item 128 + - Refers to item: Line (location: source ID 0, line 673, chars 33277-33459, hits: 0) +- IC 4177 -> Item 129 + - Refers to item: Statement (location: source ID 0, line 673, chars 33277-33459, hits: 0) + +Anchors for Contract "ImmutableERC721MintByID" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 26): +- IC 2026 -> Item 943 + - Refers to item: Function "safeMint" (location: source ID 26, line 40, chars 1482-1627, hits: 0) +- IC 6453 -> Item 944 + - Refers to item: Line (location: source ID 26, line 41, chars 1570-1584, hits: 0) +- IC 6453 -> Item 945 + - Refers to item: Statement (location: source ID 26, line 41, chars 1570-1584, hits: 0) +- IC 6477 -> Item 946 + - Refers to item: Line (location: source ID 26, line 42, chars 1594-1620, hits: 0) +- IC 6477 -> Item 947 + - Refers to item: Statement (location: source ID 26, line 42, chars 1594-1620, hits: 0) +- IC 1402 -> Item 948 + - Refers to item: Function "mint" (location: source ID 26, line 49, chars 1804-1937, hits: 0) +- IC 4757 -> Item 949 + - Refers to item: Line (location: source ID 26, line 50, chars 1888-1902, hits: 0) +- IC 4757 -> Item 950 + - Refers to item: Statement (location: source ID 26, line 50, chars 1888-1902, hits: 0) +- IC 4781 -> Item 951 + - Refers to item: Line (location: source ID 26, line 51, chars 1912-1930, hits: 0) +- IC 4781 -> Item 952 + - Refers to item: Statement (location: source ID 26, line 51, chars 1912-1930, hits: 0) +- IC 1017 -> Item 953 + - Refers to item: Function "safeMintBatch" (location: source ID 26, line 58, chars 2149-2357, hits: 0) +- IC 3314 -> Item 954 + - Refers to item: Line (location: source ID 26, line 59, chars 2250-2263, hits: 0) +- IC 3314 -> Item 955 + - Refers to item: Statement (location: source ID 26, line 59, chars 2250-2263, hits: 0) +- IC 3317 -> Item 956 + - Refers to item: Statement (location: source ID 26, line 59, chars 2265-2288, hits: 0) +- IC 3373 -> Item 957 + - Refers to item: Statement (location: source ID 26, line 59, chars 2290-2293, hits: 0) +- IC 3328 -> Item 958 + - Refers to item: Line (location: source ID 26, line 60, chars 2309-2340, hits: 0) +- IC 3328 -> Item 959 + - Refers to item: Statement (location: source ID 26, line 60, chars 2309-2340, hits: 0) +- IC 1970 -> Item 960 + - Refers to item: Function "mintBatch" (location: source ID 26, line 68, chars 2564-2764, hits: 0) +- IC 6186 -> Item 961 + - Refers to item: Line (location: source ID 26, line 69, chars 2661-2674, hits: 0) +- IC 6186 -> Item 962 + - Refers to item: Statement (location: source ID 26, line 69, chars 2661-2674, hits: 0) +- IC 6189 -> Item 963 + - Refers to item: Statement (location: source ID 26, line 69, chars 2676-2699, hits: 0) +- IC 6245 -> Item 964 + - Refers to item: Statement (location: source ID 26, line 69, chars 2701-2704, hits: 0) +- IC 6200 -> Item 965 + - Refers to item: Line (location: source ID 26, line 70, chars 2720-2747, hits: 0) +- IC 6200 -> Item 966 + - Refers to item: Statement (location: source ID 26, line 70, chars 2720-2747, hits: 0) +- IC 2322 -> Item 967 + - Refers to item: Function "burnBatch" (location: source ID 26, line 78, chars 2905-3063, hits: 0) +- IC 7475 -> Item 968 + - Refers to item: Line (location: source ID 26, line 79, chars 2977-2987, hits: 0) +- IC 7475 -> Item 969 + - Refers to item: Statement (location: source ID 26, line 79, chars 2977-2987, hits: 0) +- IC 7478 -> Item 970 + - Refers to item: Statement (location: source ID 26, line 79, chars 2989-3008, hits: 0) +- IC 7523 -> Item 971 + - Refers to item: Statement (location: source ID 26, line 79, chars 3010-3013, hits: 0) +- IC 7489 -> Item 972 + - Refers to item: Line (location: source ID 26, line 80, chars 3029-3046, hits: 0) +- IC 7489 -> Item 973 + - Refers to item: Statement (location: source ID 26, line 80, chars 3029-3046, hits: 0) +- IC 1724 -> Item 974 + - Refers to item: Function "safeBurnBatch" (location: source ID 26, line 88, chars 3256-3351, hits: 0) +- IC 5512 -> Item 975 + - Refers to item: Line (location: source ID 26, line 89, chars 3323-3344, hits: 0) +- IC 5512 -> Item 976 + - Refers to item: Statement (location: source ID 26, line 89, chars 3323-3344, hits: 0) +- IC 757 -> Item 977 + - Refers to item: Function "safeTransferFromBatch" (location: source ID 26, line 96, chars 3586-3920, hits: 0) +- IC 2457 -> Item 978 + - Refers to item: Line (location: source ID 26, line 97, chars 3669-3704, hits: 0) +- IC 2457 -> Item 979 + - Refers to item: Statement (location: source ID 26, line 97, chars 3669-3704, hits: 0) +- IC 2498 -> Item 980 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 26, line 97, chars 3665-3781, hits: 0) +- IC 2547 -> Item 981 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 26, line 97, chars 3665-3781, hits: 0) +- IC 2498 -> Item 982 + - Refers to item: Line (location: source ID 26, line 98, chars 3720-3770, hits: 0) +- IC 2498 -> Item 983 + - Refers to item: Statement (location: source ID 26, line 98, chars 3720-3770, hits: 0) +- IC 2548 -> Item 984 + - Refers to item: Line (location: source ID 26, line 101, chars 3796-3806, hits: 0) +- IC 2548 -> Item 985 + - Refers to item: Statement (location: source ID 26, line 101, chars 3796-3806, hits: 0) +- IC 2551 -> Item 986 + - Refers to item: Statement (location: source ID 26, line 101, chars 3808-3830, hits: 0) +- IC 2697 -> Item 987 + - Refers to item: Statement (location: source ID 26, line 101, chars 3832-3835, hits: 0) +- IC 2576 -> Item 988 + - Refers to item: Line (location: source ID 26, line 102, chars 3851-3903, hits: 0) +- IC 2576 -> Item 989 + - Refers to item: Statement (location: source ID 26, line 102, chars 3851-3903, hits: 0) +- IC 1696 -> Item 175 + - Refers to item: Function "permit" (location: source ID 18, line 52, chars 1866-2065, hits: 0) +- IC 5494 -> Item 176 + - Refers to item: Line (location: source ID 18, line 58, chars 2018-2058, hits: 0) +- IC 5494 -> Item 177 + - Refers to item: Statement (location: source ID 18, line 58, chars 2018-2058, hits: 0) +- IC 939 -> Item 178 + - Refers to item: Function "nonces" (location: source ID 18, line 66, chars 2273-2392, hits: 0) +- IC 3235 -> Item 179 + - Refers to item: Line (location: source ID 18, line 69, chars 2362-2385, hits: 0) +- IC 3235 -> Item 180 + - Refers to item: Statement (location: source ID 18, line 69, chars 2362-2385, hits: 0) +- IC 1258 -> Item 181 + - Refers to item: Function "DOMAIN_SEPARATOR" (location: source ID 18, line 76, chars 2575-2688, hits: 0) +- IC 4312 -> Item 182 + - Refers to item: Line (location: source ID 18, line 77, chars 2654-2681, hits: 0) +- IC 4312 -> Item 183 + - Refers to item: Statement (location: source ID 18, line 77, chars 2654-2681, hits: 0) +- IC 13074 -> Item 184 + - Refers to item: Function "supportsInterface" (location: source ID 18, line 85, chars 2999-3269, hits: 0) +- IC 13077 -> Item 185 + - Refers to item: Line (location: source ID 18, line 92, chars 3148-3262, hits: 0) +- IC 13077 -> Item 186 + - Refers to item: Statement (location: source ID 18, line 92, chars 3148-3262, hits: 0) +- IC 13679 -> Item 187 + - Refers to item: Function "_transfer" (location: source ID 18, line 103, chars 3612-3816, hits: 0) +- IC 13680 -> Item 188 + - Refers to item: Line (location: source ID 18, line 108, chars 3747-3765, hits: 0) +- IC 13680 -> Item 189 + - Refers to item: Statement (location: source ID 18, line 108, chars 3747-3765, hits: 0) +- IC 13721 -> Item 190 + - Refers to item: Line (location: source ID 18, line 109, chars 3775-3809, hits: 0) +- IC 13721 -> Item 191 + - Refers to item: Statement (location: source ID 18, line 109, chars 3775-3809, hits: 0) +- IC 10897 -> Item 192 + - Refers to item: Function "_permit" (location: source ID 18, line 112, chars 3822-5007, hits: 0) +- IC 10898 -> Item 193 + - Refers to item: Line (location: source ID 18, line 118, chars 3978-4004, hits: 0) +- IC 10898 -> Item 194 + - Refers to item: Statement (location: source ID 18, line 118, chars 3978-4004, hits: 0) +- IC 10906 -> Item 195 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 18, line 118, chars 3974-4053, hits: 0) +- IC 10955 -> Item 196 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 18, line 118, chars 3974-4053, hits: 0) +- IC 10906 -> Item 197 + - Refers to item: Line (location: source ID 18, line 119, chars 4020-4042, hits: 0) +- IC 10906 -> Item 198 + - Refers to item: Statement (location: source ID 18, line 119, chars 4020-4042, hits: 0) +- IC 10956 -> Item 199 + - Refers to item: Line (location: source ID 18, line 122, chars 4063-4126, hits: 0) +- IC 10956 -> Item 200 + - Refers to item: Statement (location: source ID 18, line 122, chars 4063-4126, hits: 0) +- IC 10958 -> Item 201 + - Refers to item: Statement (location: source ID 18, line 122, chars 4080-4126, hits: 0) +- IC 10971 -> Item 202 + - Refers to item: Line (location: source ID 18, line 125, chars 4188-4243, hits: 0) +- IC 10971 -> Item 203 + - Refers to item: Statement (location: source ID 18, line 125, chars 4188-4243, hits: 0) +- IC 10995 -> Item 204 + - Refers to item: Branch (branch: 1, path: 0) (location: source ID 18, line 125, chars 4184-4316, hits: 0) +- IC 11010 -> Item 205 + - Refers to item: Branch (branch: 1, path: 1) (location: source ID 18, line 125, chars 4184-4316, hits: 0) +- IC 10995 -> Item 206 + - Refers to item: Line (location: source ID 18, line 126, chars 4259-4285, hits: 0) +- IC 10995 -> Item 207 + - Refers to item: Statement (location: source ID 18, line 126, chars 4259-4285, hits: 0) +- IC 11005 -> Item 208 + - Refers to item: Line (location: source ID 18, line 127, chars 4299-4306, hits: 0) +- IC 11005 -> Item 209 + - Refers to item: Statement (location: source ID 18, line 127, chars 4299-4306, hits: 0) +- IC 11011 -> Item 210 + - Refers to item: Line (location: source ID 18, line 130, chars 4326-4349, hits: 0) +- IC 11011 -> Item 211 + - Refers to item: Statement (location: source ID 18, line 130, chars 4326-4349, hits: 0) +- IC 11013 -> Item 212 + - Refers to item: Line (location: source ID 18, line 133, chars 4400-4416, hits: 0) +- IC 11013 -> Item 213 + - Refers to item: Statement (location: source ID 18, line 133, chars 4400-4416, hits: 0) +- IC 11022 -> Item 214 + - Refers to item: Branch (branch: 2, path: 0) (location: source ID 18, line 133, chars 4396-4646, hits: 0) +- IC 11081 -> Item 215 + - Refers to item: Branch (branch: 2, path: 1) (location: source ID 18, line 133, chars 4396-4646, hits: 0) +- IC 11022 -> Item 216 + - Refers to item: Line (location: source ID 18, line 135, chars 4459-4635, hits: 0) +- IC 11022 -> Item 217 + - Refers to item: Statement (location: source ID 18, line 135, chars 4459-4635, hits: 0) +- IC 11082 -> Item 218 + - Refers to item: Line (location: source ID 18, line 140, chars 4656-4672, hits: 0) +- IC 11082 -> Item 219 + - Refers to item: Statement (location: source ID 18, line 140, chars 4656-4672, hits: 0) +- IC 11091 -> Item 220 + - Refers to item: Branch (branch: 3, path: 0) (location: source ID 18, line 140, chars 4652-4776, hits: 0) +- IC 11107 -> Item 221 + - Refers to item: Branch (branch: 3, path: 1) (location: source ID 18, line 140, chars 4652-4776, hits: 0) +- IC 11091 -> Item 222 + - Refers to item: Line (location: source ID 18, line 142, chars 4721-4765, hits: 0) +- IC 11091 -> Item 223 + - Refers to item: Statement (location: source ID 18, line 142, chars 4721-4765, hits: 0) +- IC 11108 -> Item 224 + - Refers to item: Line (location: source ID 18, line 144, chars 4796-4821, hits: 0) +- IC 11108 -> Item 225 + - Refers to item: Statement (location: source ID 18, line 144, chars 4796-4821, hits: 0) +- IC 11159 -> Item 226 + - Refers to item: Line (location: source ID 18, line 147, chars 4846-4892, hits: 0) +- IC 11159 -> Item 227 + - Refers to item: Statement (location: source ID 18, line 147, chars 4846-4892, hits: 0) +- IC 11174 -> Item 228 + - Refers to item: Branch (branch: 4, path: 0) (location: source ID 18, line 147, chars 4842-4945, hits: 0) +- IC 11188 -> Item 229 + - Refers to item: Branch (branch: 4, path: 1) (location: source ID 18, line 147, chars 4842-4945, hits: 0) +- IC 11174 -> Item 230 + - Refers to item: Line (location: source ID 18, line 148, chars 4908-4934, hits: 0) +- IC 11174 -> Item 231 + - Refers to item: Statement (location: source ID 18, line 148, chars 4908-4934, hits: 0) +- IC 11189 -> Item 232 + - Refers to item: Line (location: source ID 18, line 150, chars 4965-4990, hits: 0) +- IC 11189 -> Item 233 + - Refers to item: Statement (location: source ID 18, line 150, chars 4965-4990, hits: 0) +- IC 15366 -> Item 234 + - Refers to item: Function "_buildPermitDigest" (location: source ID 18, line 161, chars 5423-5862, hits: 0) +- IC 15369 -> Item 235 + - Refers to item: Line (location: source ID 18, line 166, chars 5575-5855, hits: 0) +- IC 15369 -> Item 236 + - Refers to item: Statement (location: source ID 18, line 166, chars 5575-5855, hits: 0) +- IC 16230 -> Item 237 + - Refers to item: Function "_isValidEOASignature" (location: source ID 18, line 185, chars 6173-6373, hits: 0) +- IC 16233 -> Item 238 + - Refers to item: Line (location: source ID 18, line 186, chars 6282-6366, hits: 0) +- IC 16233 -> Item 239 + - Refers to item: Statement (location: source ID 18, line 186, chars 6282-6366, hits: 0) +- IC 15487 -> Item 240 + - Refers to item: Function "_isValidERC1271Signature" (location: source ID 18, line 196, chars 6746-7332, hits: 0) +- IC 15490 -> Item 241 + - Refers to item: Line (location: source ID 18, line 197, chars 6868-7078, hits: 0) +- IC 15490 -> Item 242 + - Refers to item: Statement (location: source ID 18, line 197, chars 6868-7078, hits: 0) +- IC 15493 -> Item 243 + - Refers to item: Statement (location: source ID 18, line 197, chars 6903-7078, hits: 0) +- IC 15718 -> Item 244 + - Refers to item: Line (location: source ID 18, line 205, chars 7093-7120, hits: 0) +- IC 15718 -> Item 245 + - Refers to item: Statement (location: source ID 18, line 205, chars 7093-7120, hits: 0) +- IC 15837 -> Item 246 + - Refers to item: Branch (branch: 5, path: 0) (location: source ID 18, line 205, chars 7089-7303, hits: 0) +- IC 15848 -> Item 247 + - Refers to item: Branch (branch: 5, path: 1) (location: source ID 18, line 205, chars 7089-7303, hits: 0) +- IC 15737 -> Item 248 + - Refers to item: Line (location: source ID 18, line 206, chars 7136-7181, hits: 0) +- IC 15737 -> Item 249 + - Refers to item: Statement (location: source ID 18, line 206, chars 7136-7181, hits: 0) +- IC 15739 -> Item 250 + - Refers to item: Statement (location: source ID 18, line 206, chars 7156-7181, hits: 0) +- IC 15761 -> Item 251 + - Refers to item: Line (location: source ID 18, line 207, chars 7199-7247, hits: 0) +- IC 15761 -> Item 252 + - Refers to item: Statement (location: source ID 18, line 207, chars 7199-7247, hits: 0) +- IC 15837 -> Item 253 + - Refers to item: Branch (branch: 6, path: 0) (location: source ID 18, line 207, chars 7195-7293, hits: 0) +- IC 15848 -> Item 254 + - Refers to item: Branch (branch: 6, path: 1) (location: source ID 18, line 207, chars 7195-7293, hits: 0) +- IC 15837 -> Item 255 + - Refers to item: Line (location: source ID 18, line 208, chars 7267-7278, hits: 0) +- IC 15837 -> Item 256 + - Refers to item: Statement (location: source ID 18, line 208, chars 7267-7278, hits: 0) +- IC 15851 -> Item 257 + - Refers to item: Line (location: source ID 18, line 212, chars 7313-7325, hits: 0) +- IC 15851 -> Item 258 + - Refers to item: Statement (location: source ID 18, line 212, chars 7313-7325, hits: 0) +- IC 2350 -> Item 1523 + - Refers to item: Function "setOperatorAllowlistRegistry" (location: source ID 2, line 94, chars 3760-3928, hits: 0) +- IC 7560 -> Item 1524 + - Refers to item: Line (location: source ID 2, line 95, chars 3872-3921, hits: 0) +- IC 7560 -> Item 1525 + - Refers to item: Statement (location: source ID 2, line 95, chars 3872-3921, hits: 0) +- IC 20285 -> Item 1526 + - Refers to item: Function "supportsInterface" (location: source ID 2, line 102, chars 4071-4222, hits: 0) +- IC 20288 -> Item 1527 + - Refers to item: Line (location: source ID 2, line 103, chars 4172-4215, hits: 0) +- IC 20288 -> Item 1528 + - Refers to item: Statement (location: source ID 2, line 103, chars 4172-4215, hits: 0) +- IC 12707 -> Item 1529 + - Refers to item: Function "_setOperatorAllowlistRegistry" (location: source ID 2, line 110, chars 4419-4842, hits: 0) +- IC 12708 -> Item 1530 + - Refers to item: Line (location: source ID 2, line 111, chars 4509-4593, hits: 0) +- IC 12708 -> Item 1531 + - Refers to item: Statement (location: source ID 2, line 111, chars 4509-4593, hits: 0) +- IC 12866 -> Item 1532 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 2, line 111, chars 4505-4672, hits: 0) +- IC 12915 -> Item 1533 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 2, line 111, chars 4505-4672, hits: 0) +- IC 12866 -> Item 1534 + - Refers to item: Line (location: source ID 2, line 112, chars 4609-4661, hits: 0) +- IC 12866 -> Item 1535 + - Refers to item: Statement (location: source ID 2, line 112, chars 4609-4661, hits: 0) +- IC 12916 -> Item 1536 + - Refers to item: Line (location: source ID 2, line 115, chars 4682-4767, hits: 0) +- IC 12916 -> Item 1537 + - Refers to item: Statement (location: source ID 2, line 115, chars 4682-4767, hits: 0) +- IC 13007 -> Item 1538 + - Refers to item: Line (location: source ID 2, line 116, chars 4777-4835, hits: 0) +- IC 13007 -> Item 1539 + - Refers to item: Statement (location: source ID 2, line 116, chars 4777-4835, hits: 0) +- IC 1316 -> Item 58 + - Refers to item: Function "grantMinterRole" (location: source ID 22, line 15, chars 511-631, hits: 0) +- IC 4469 -> Item 59 + - Refers to item: Line (location: source ID 22, line 16, chars 596-624, hits: 0) +- IC 4469 -> Item 60 + - Refers to item: Statement (location: source ID 22, line 16, chars 596-624, hits: 0) +- IC 1590 -> Item 61 + - Refers to item: Function "revokeMinterRole" (location: source ID 22, line 22, chars 780-902, hits: 0) +- IC 5123 -> Item 62 + - Refers to item: Line (location: source ID 22, line 23, chars 866-895, hits: 0) +- IC 5123 -> Item 63 + - Refers to item: Statement (location: source ID 22, line 23, chars 866-895, hits: 0) +- IC 1228 -> Item 64 + - Refers to item: Function "getAdmins" (location: source ID 22, line 27, chars 980-1319, hits: 0) +- IC 4088 -> Item 65 + - Refers to item: Line (location: source ID 22, line 28, chars 1050-1109, hits: 0) +- IC 4088 -> Item 66 + - Refers to item: Statement (location: source ID 22, line 28, chars 1050-1109, hits: 0) +- IC 4090 -> Item 67 + - Refers to item: Statement (location: source ID 22, line 28, chars 1071-1109, hits: 0) +- IC 4104 -> Item 68 + - Refers to item: Line (location: source ID 22, line 29, chars 1119-1170, hits: 0) +- IC 4104 -> Item 69 + - Refers to item: Statement (location: source ID 22, line 29, chars 1119-1170, hits: 0) +- IC 4106 -> Item 70 + - Refers to item: Statement (location: source ID 22, line 29, chars 1145-1170, hits: 0) +- IC 4181 -> Item 71 + - Refers to item: Line (location: source ID 22, line 30, chars 1185-1194, hits: 0) +- IC 4181 -> Item 72 + - Refers to item: Statement (location: source ID 22, line 30, chars 1185-1194, hits: 0) +- IC 4184 -> Item 73 + - Refers to item: Statement (location: source ID 22, line 30, chars 1196-1210, hits: 0) +- IC 4282 -> Item 74 + - Refers to item: Statement (location: source ID 22, line 30, chars 1212-1215, hits: 0) +- IC 4192 -> Item 75 + - Refers to item: Line (location: source ID 22, line 31, chars 1231-1279, hits: 0) +- IC 4192 -> Item 76 + - Refers to item: Statement (location: source ID 22, line 31, chars 1231-1279, hits: 0) +- IC 4302 -> Item 77 + - Refers to item: Line (location: source ID 22, line 33, chars 1299-1312, hits: 0) +- IC 4302 -> Item 78 + - Refers to item: Statement (location: source ID 22, line 33, chars 1299-1312, hits: 0) +- IC 1788 -> Item 356 + - Refers to item: Function "setDefaultRoyaltyReceiver" (location: source ID 20, line 100, chars 3242-3411, hits: 0) +- IC 5797 -> Item 357 + - Refers to item: Line (location: source ID 20, line 101, chars 3362-3404, hits: 0) +- IC 5797 -> Item 358 + - Refers to item: Statement (location: source ID 20, line 101, chars 3362-3404, hits: 0) +- IC 1486 -> Item 359 + - Refers to item: Function "setNFTRoyaltyReceiver" (location: source ID 20, line 110, chars 3770-3982, hits: 0) +- IC 4926 -> Item 360 + - Refers to item: Line (location: source ID 20, line 115, chars 3926-3975, hits: 0) +- IC 4926 -> Item 361 + - Refers to item: Statement (location: source ID 20, line 115, chars 3926-3975, hits: 0) +- IC 2112 -> Item 362 + - Refers to item: Function "setNFTRoyaltyReceiverBatch" (location: source ID 20, line 124, chars 4350-4650, hits: 0) +- IC 7091 -> Item 363 + - Refers to item: Line (location: source ID 20, line 129, chars 4528-4538, hits: 0) +- IC 7091 -> Item 364 + - Refers to item: Statement (location: source ID 20, line 129, chars 4528-4538, hits: 0) +- IC 7094 -> Item 365 + - Refers to item: Statement (location: source ID 20, line 129, chars 4540-4559, hits: 0) +- IC 7141 -> Item 366 + - Refers to item: Statement (location: source ID 20, line 129, chars 4561-4564, hits: 0) +- IC 7105 -> Item 367 + - Refers to item: Line (location: source ID 20, line 130, chars 4580-4633, hits: 0) +- IC 7105 -> Item 368 + - Refers to item: Statement (location: source ID 20, line 130, chars 4580-4633, hits: 0) +- IC 1458 -> Item 369 + - Refers to item: Function "burn" (location: source ID 20, line 138, chars 4818-4977, hits: 0) +- IC 4828 -> Item 370 + - Refers to item: Line (location: source ID 20, line 139, chars 4891-4910, hits: 0) +- IC 4828 -> Item 371 + - Refers to item: Statement (location: source ID 20, line 139, chars 4891-4910, hits: 0) +- IC 4837 -> Item 372 + - Refers to item: Line (location: source ID 20, line 140, chars 4920-4946, hits: 0) +- IC 4837 -> Item 373 + - Refers to item: Statement (location: source ID 20, line 140, chars 4920-4946, hits: 0) +- IC 4857 -> Item 374 + - Refers to item: Line (location: source ID 20, line 141, chars 4956-4970, hits: 0) +- IC 4857 -> Item 375 + - Refers to item: Statement (location: source ID 20, line 141, chars 4956-4970, hits: 0) +- IC 1998 -> Item 376 + - Refers to item: Function "safeBurn" (location: source ID 20, line 148, chars 5167-5439, hits: 0) +- IC 6270 -> Item 377 + - Refers to item: Line (location: source ID 20, line 149, chars 5242-5281, hits: 0) +- IC 6270 -> Item 378 + - Refers to item: Statement (location: source ID 20, line 149, chars 5242-5281, hits: 0) +- IC 6272 -> Item 379 + - Refers to item: Statement (location: source ID 20, line 149, chars 5265-5281, hits: 0) +- IC 6283 -> Item 380 + - Refers to item: Line (location: source ID 20, line 150, chars 5295-5316, hits: 0) +- IC 6283 -> Item 381 + - Refers to item: Statement (location: source ID 20, line 150, chars 5295-5316, hits: 0) +- IC 6334 -> Item 382 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 20, line 150, chars 5291-5409, hits: 0) +- IC 6396 -> Item 383 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 20, line 150, chars 5291-5409, hits: 0) +- IC 6334 -> Item 384 + - Refers to item: Line (location: source ID 20, line 151, chars 5332-5398, hits: 0) +- IC 6334 -> Item 385 + - Refers to item: Statement (location: source ID 20, line 151, chars 5332-5398, hits: 0) +- IC 6397 -> Item 386 + - Refers to item: Line (location: source ID 20, line 154, chars 5419-5432, hits: 0) +- IC 6397 -> Item 387 + - Refers to item: Statement (location: source ID 20, line 154, chars 5419-5432, hits: 0) +- IC 1344 -> Item 388 + - Refers to item: Function "_safeBurnBatch" (location: source ID 20, line 160, chars 5634-5930, hits: 0) +- IC 4515 -> Item 389 + - Refers to item: Line (location: source ID 20, line 161, chars 5713-5723, hits: 0) +- IC 4515 -> Item 390 + - Refers to item: Statement (location: source ID 20, line 161, chars 5713-5723, hits: 0) +- IC 4518 -> Item 391 + - Refers to item: Statement (location: source ID 20, line 161, chars 5725-5741, hits: 0) +- IC 4685 -> Item 392 + - Refers to item: Statement (location: source ID 20, line 161, chars 5743-5746, hits: 0) +- IC 4529 -> Item 393 + - Refers to item: Line (location: source ID 20, line 162, chars 5762-5790, hits: 0) +- IC 4529 -> Item 394 + - Refers to item: Statement (location: source ID 20, line 162, chars 5762-5790, hits: 0) +- IC 4569 -> Item 395 + - Refers to item: Line (location: source ID 20, line 163, chars 5809-5819, hits: 0) +- IC 4569 -> Item 396 + - Refers to item: Statement (location: source ID 20, line 163, chars 5809-5819, hits: 0) +- IC 4572 -> Item 397 + - Refers to item: Statement (location: source ID 20, line 163, chars 5821-5842, hits: 0) +- IC 4664 -> Item 398 + - Refers to item: Statement (location: source ID 20, line 163, chars 5844-5847, hits: 0) +- IC 4597 -> Item 399 + - Refers to item: Line (location: source ID 20, line 164, chars 5867-5899, hits: 0) +- IC 4597 -> Item 400 + - Refers to item: Statement (location: source ID 20, line 164, chars 5867-5899, hits: 0) +- IC 1514 -> Item 401 + - Refers to item: Function "setBaseURI" (location: source ID 20, line 173, chars 6087-6202, hits: 0) +- IC 4956 -> Item 402 + - Refers to item: Line (location: source ID 20, line 174, chars 6177-6195, hits: 0) +- IC 4956 -> Item 403 + - Refers to item: Statement (location: source ID 20, line 174, chars 6177-6195, hits: 0) +- IC 1912 -> Item 404 + - Refers to item: Function "setContractURI" (location: source ID 20, line 181, chars 6367-6498, hits: 0) +- IC 5978 -> Item 405 + - Refers to item: Line (location: source ID 20, line 182, chars 6465-6491, hits: 0) +- IC 5978 -> Item 406 + - Refers to item: Statement (location: source ID 20, line 182, chars 6465-6491, hits: 0) +- IC 2084 -> Item 407 + - Refers to item: Function "setApprovalForAll" (location: source ID 20, line 189, chars 6610-6781, hits: 0) +- IC 7034 -> Item 408 + - Refers to item: Line (location: source ID 20, line 190, chars 6731-6774, hits: 0) +- IC 7034 -> Item 409 + - Refers to item: Statement (location: source ID 20, line 190, chars 6731-6774, hits: 0) +- IC 785 -> Item 410 + - Refers to item: Function "supportsInterface" (location: source ID 20, line 196, chars 6907-7191, hits: 0) +- IC 2722 -> Item 411 + - Refers to item: Line (location: source ID 20, line 205, chars 7141-7184, hits: 0) +- IC 2722 -> Item 412 + - Refers to item: Statement (location: source ID 20, line 205, chars 7141-7184, hits: 0) +- IC 987 -> Item 413 + - Refers to item: Function "totalSupply" (location: source ID 20, line 209, chars 7261-7358, hits: 0) +- IC 3264 -> Item 414 + - Refers to item: Line (location: source ID 20, line 210, chars 7332-7351, hits: 0) +- IC 3264 -> Item 415 + - Refers to item: Statement (location: source ID 20, line 210, chars 7332-7351, hits: 0) +- IC 8067 -> Item 416 + - Refers to item: Function "_approve" (location: source ID 20, line 217, chars 7472-7610, hits: 0) +- IC 8587 -> Item 417 + - Refers to item: Line (location: source ID 20, line 218, chars 7576-7603, hits: 0) +- IC 8587 -> Item 418 + - Refers to item: Statement (location: source ID 20, line 218, chars 7576-7603, hits: 0) +- IC 9045 -> Item 419 + - Refers to item: Function "_transfer" (location: source ID 20, line 225, chars 7739-7941, hits: 0) +- IC 9845 -> Item 420 + - Refers to item: Line (location: source ID 20, line 230, chars 7900-7934, hits: 0) +- IC 9845 -> Item 421 + - Refers to item: Statement (location: source ID 20, line 230, chars 7900-7934, hits: 0) +- IC 11854 -> Item 422 + - Refers to item: Function "_batchMint" (location: source ID 20, line 239, chars 8219-8622, hits: 0) +- IC 11855 -> Item 423 + - Refers to item: Line (location: source ID 20, line 240, chars 8291-8319, hits: 0) +- IC 11855 -> Item 424 + - Refers to item: Statement (location: source ID 20, line 240, chars 8291-8319, hits: 0) +- IC 11925 -> Item 425 + - Refers to item: Branch (branch: 1, path: 0) (location: source ID 20, line 240, chars 8287-8393, hits: 0) +- IC 11974 -> Item 426 + - Refers to item: Branch (branch: 1, path: 1) (location: source ID 20, line 240, chars 8287-8393, hits: 0) +- IC 11925 -> Item 427 + - Refers to item: Line (location: source ID 20, line 241, chars 8335-8382, hits: 0) +- IC 11925 -> Item 428 + - Refers to item: Statement (location: source ID 20, line 241, chars 8335-8382, hits: 0) +- IC 11975 -> Item 429 + - Refers to item: Line (location: source ID 20, line 244, chars 8411-8468, hits: 0) +- IC 11975 -> Item 430 + - Refers to item: Statement (location: source ID 20, line 244, chars 8411-8468, hits: 0) +- IC 12012 -> Item 431 + - Refers to item: Line (location: source ID 20, line 245, chars 8483-8496, hits: 0) +- IC 12012 -> Item 432 + - Refers to item: Statement (location: source ID 20, line 245, chars 8483-8496, hits: 0) +- IC 12015 -> Item 433 + - Refers to item: Statement (location: source ID 20, line 245, chars 8498-8529, hits: 0) +- IC 12107 -> Item 434 + - Refers to item: Statement (location: source ID 20, line 245, chars 8531-8534, hits: 0) +- IC 12040 -> Item 435 + - Refers to item: Line (location: source ID 20, line 246, chars 8550-8596, hits: 0) +- IC 12040 -> Item 436 + - Refers to item: Statement (location: source ID 20, line 246, chars 8550-8596, hits: 0) +- IC 8621 -> Item 437 + - Refers to item: Function "_safeBatchMint" (location: source ID 20, line 255, chars 8863-9252, hits: 0) +- IC 8622 -> Item 438 + - Refers to item: Line (location: source ID 20, line 256, chars 8939-8967, hits: 0) +- IC 8622 -> Item 439 + - Refers to item: Statement (location: source ID 20, line 256, chars 8939-8967, hits: 0) +- IC 8692 -> Item 440 + - Refers to item: Branch (branch: 2, path: 0) (location: source ID 20, line 256, chars 8935-9041, hits: 0) +- IC 8741 -> Item 441 + - Refers to item: Branch (branch: 2, path: 1) (location: source ID 20, line 256, chars 8935-9041, hits: 0) +- IC 8692 -> Item 442 + - Refers to item: Line (location: source ID 20, line 257, chars 8983-9030, hits: 0) +- IC 8692 -> Item 443 + - Refers to item: Statement (location: source ID 20, line 257, chars 8983-9030, hits: 0) +- IC 8742 -> Item 444 + - Refers to item: Line (location: source ID 20, line 259, chars 9055-9064, hits: 0) +- IC 8742 -> Item 445 + - Refers to item: Statement (location: source ID 20, line 259, chars 9055-9064, hits: 0) +- IC 8745 -> Item 446 + - Refers to item: Statement (location: source ID 20, line 259, chars 9066-9097, hits: 0) +- IC 8837 -> Item 447 + - Refers to item: Statement (location: source ID 20, line 259, chars 9099-9102, hits: 0) +- IC 8770 -> Item 448 + - Refers to item: Line (location: source ID 20, line 260, chars 9118-9168, hits: 0) +- IC 8770 -> Item 449 + - Refers to item: Statement (location: source ID 20, line 260, chars 9118-9168, hits: 0) +- IC 8857 -> Item 450 + - Refers to item: Line (location: source ID 20, line 262, chars 9188-9245, hits: 0) +- IC 8857 -> Item 451 + - Refers to item: Statement (location: source ID 20, line 262, chars 9188-9245, hits: 0) +- IC 10159 -> Item 452 + - Refers to item: Function "_mint" (location: source ID 20, line 270, chars 9460-9687, hits: 0) +- IC 10160 -> Item 453 + - Refers to item: Line (location: source ID 20, line 271, chars 9544-9570, hits: 0) +- IC 10160 -> Item 454 + - Refers to item: Statement (location: source ID 20, line 271, chars 9544-9570, hits: 0) +- IC 10185 -> Item 455 + - Refers to item: Branch (branch: 3, path: 0) (location: source ID 20, line 271, chars 9540-9647, hits: 0) +- IC 10245 -> Item 456 + - Refers to item: Branch (branch: 3, path: 1) (location: source ID 20, line 271, chars 9540-9647, hits: 0) +- IC 10185 -> Item 457 + - Refers to item: Line (location: source ID 20, line 272, chars 9586-9636, hits: 0) +- IC 10185 -> Item 458 + - Refers to item: Statement (location: source ID 20, line 272, chars 9586-9636, hits: 0) +- IC 10246 -> Item 459 + - Refers to item: Line (location: source ID 20, line 274, chars 9656-9680, hits: 0) +- IC 10246 -> Item 460 + - Refers to item: Statement (location: source ID 20, line 274, chars 9656-9680, hits: 0) +- IC 13579 -> Item 461 + - Refers to item: Function "_safeMint" (location: source ID 20, line 282, chars 9904-10139, hits: 0) +- IC 13580 -> Item 462 + - Refers to item: Line (location: source ID 20, line 283, chars 9992-10018, hits: 0) +- IC 13580 -> Item 463 + - Refers to item: Statement (location: source ID 20, line 283, chars 9992-10018, hits: 0) +- IC 13605 -> Item 464 + - Refers to item: Branch (branch: 4, path: 0) (location: source ID 20, line 283, chars 9988-10095, hits: 0) +- IC 13665 -> Item 465 + - Refers to item: Branch (branch: 4, path: 1) (location: source ID 20, line 283, chars 9988-10095, hits: 0) +- IC 13605 -> Item 466 + - Refers to item: Line (location: source ID 20, line 284, chars 10034-10084, hits: 0) +- IC 13605 -> Item 467 + - Refers to item: Statement (location: source ID 20, line 284, chars 10034-10084, hits: 0) +- IC 13666 -> Item 468 + - Refers to item: Line (location: source ID 20, line 286, chars 10104-10132, hits: 0) +- IC 13666 -> Item 469 + - Refers to item: Statement (location: source ID 20, line 286, chars 10104-10132, hits: 0) +- IC 12334 -> Item 470 + - Refers to item: Function "_baseURI" (location: source ID 20, line 290, chars 10181-10295, hits: 0) +- IC 12337 -> Item 471 + - Refers to item: Line (location: source ID 20, line 291, chars 10274-10288, hits: 0) +- IC 12337 -> Item 472 + - Refers to item: Statement (location: source ID 20, line 291, chars 10274-10288, hits: 0) + +Anchors for Contract "MockOnReceive" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 7): +- IC 59 -> Item 54 + - Refers to item: Function "onERC721Received" (location: source ID 7, line 16, chars 412-712, hits: 0) +- IC 140 -> Item 55 + - Refers to item: Line (location: source ID 7, line 22, chars 598-658, hits: 0) +- IC 140 -> Item 56 + - Refers to item: Statement (location: source ID 7, line 22, chars 598-658, hits: 0) +- IC 318 -> Item 57 + - Refers to item: Line (location: source ID 7, line 23, chars 668-705, hits: 0) +- IC 318 -> Item 58 + - Refers to item: Statement (location: source ID 7, line 23, chars 668-705, hits: 0) + +Anchors for Contract "ImmutableSignedZone" (solc 0.8.17+commit.8df45f5f.Darwin.appleclang, source ID 5): +- IC 481 -> Item 130 + - Refers to item: Function "addSigner" (location: source ID 5, line 145, chars 5328-6155, hits: 0) +- IC 3039 -> Item 131 + - Refers to item: Line (location: source ID 5, line 147, chars 5471-5491, hits: 0) +- IC 3039 -> Item 132 + - Refers to item: Statement (location: source ID 5, line 147, chars 5471-5491, hits: 0) +- IC 3091 -> Item 133 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 5, line 147, chars 5467-5552, hits: 0) +- IC 3140 -> Item 134 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 5, line 147, chars 5467-5552, hits: 0) +- IC 3091 -> Item 135 + - Refers to item: Line (location: source ID 5, line 148, chars 5507-5541, hits: 0) +- IC 3091 -> Item 136 + - Refers to item: Statement (location: source ID 5, line 148, chars 5507-5541, hits: 0) +- IC 3141 -> Item 137 + - Refers to item: Line (location: source ID 5, line 152, chars 5612-5700, hits: 0) +- IC 3226 -> Item 138 + - Refers to item: Branch (branch: 1, path: 0) (location: source ID 5, line 152, chars 5612-5700, hits: 0) +- IC 3286 -> Item 139 + - Refers to item: Branch (branch: 1, path: 1) (location: source ID 5, line 152, chars 5612-5700, hits: 0) +- IC 3226 -> Item 140 + - Refers to item: Line (location: source ID 5, line 153, chars 5655-5689, hits: 0) +- IC 3226 -> Item 141 + - Refers to item: Statement (location: source ID 5, line 153, chars 5655-5689, hits: 0) +- IC 3287 -> Item 142 + - Refers to item: Line (location: source ID 5, line 159, chars 5873-5978, hits: 0) +- IC 3372 -> Item 143 + - Refers to item: Branch (branch: 2, path: 0) (location: source ID 5, line 159, chars 5873-5978, hits: 0) +- IC 3432 -> Item 144 + - Refers to item: Branch (branch: 2, path: 1) (location: source ID 5, line 159, chars 5873-5978, hits: 0) +- IC 3372 -> Item 145 + - Refers to item: Line (location: source ID 5, line 160, chars 5926-5967, hits: 0) +- IC 3372 -> Item 146 + - Refers to item: Statement (location: source ID 5, line 160, chars 5926-5967, hits: 0) +- IC 3433 -> Item 147 + - Refers to item: Line (location: source ID 5, line 164, chars 6020-6061, hits: 0) +- IC 3433 -> Item 148 + - Refers to item: Statement (location: source ID 5, line 164, chars 6020-6061, hits: 0) +- IC 3590 -> Item 149 + - Refers to item: Line (location: source ID 5, line 167, chars 6124-6148, hits: 0) +- IC 3590 -> Item 150 + - Refers to item: Statement (location: source ID 5, line 167, chars 6124-6148, hits: 0) +- IC 233 -> Item 151 + - Refers to item: Function "removeSigner" (location: source ID 5, line 175, chars 6289-6688, hits: 0) +- IC 668 -> Item 152 + - Refers to item: Line (location: source ID 5, line 177, chars 6416-6440, hits: 0) +- IC 668 -> Item 153 + - Refers to item: Statement (location: source ID 5, line 177, chars 6416-6440, hits: 0) +- IC 752 -> Item 154 + - Refers to item: Branch (branch: 3, path: 0) (location: source ID 5, line 177, chars 6412-6497, hits: 0) +- IC 812 -> Item 155 + - Refers to item: Branch (branch: 3, path: 1) (location: source ID 5, line 177, chars 6412-6497, hits: 0) +- IC 752 -> Item 156 + - Refers to item: Line (location: source ID 5, line 178, chars 6456-6486, hits: 0) +- IC 752 -> Item 157 + - Refers to item: Statement (location: source ID 5, line 178, chars 6456-6486, hits: 0) +- IC 813 -> Item 158 + - Refers to item: Line (location: source ID 5, line 182, chars 6559-6590, hits: 0) +- IC 813 -> Item 159 + - Refers to item: Statement (location: source ID 5, line 182, chars 6559-6590, hits: 0) +- IC 904 -> Item 160 + - Refers to item: Line (location: source ID 5, line 185, chars 6655-6681, hits: 0) +- IC 904 -> Item 161 + - Refers to item: Statement (location: source ID 5, line 185, chars 6655-6681, hits: 0) +- IC 261 -> Item 162 + - Refers to item: Function "validateOrder" (location: source ID 5, line 197, chars 7041-10845, hits: 0) +- IC 964 -> Item 163 + - Refers to item: Line (location: source ID 5, line 201, chars 7265-7316, hits: 0) +- IC 964 -> Item 164 + - Refers to item: Statement (location: source ID 5, line 201, chars 7265-7316, hits: 0) +- IC 987 -> Item 165 + - Refers to item: Line (location: source ID 5, line 202, chars 7326-7370, hits: 0) +- IC 987 -> Item 166 + - Refers to item: Statement (location: source ID 5, line 202, chars 7326-7370, hits: 0) +- IC 996 -> Item 167 + - Refers to item: Line (location: source ID 5, line 205, chars 7444-7465, hits: 0) +- IC 996 -> Item 168 + - Refers to item: Statement (location: source ID 5, line 205, chars 7444-7465, hits: 0) +- IC 1007 -> Item 169 + - Refers to item: Branch (branch: 4, path: 0) (location: source ID 5, line 205, chars 7440-7548, hits: 0) +- IC 1067 -> Item 170 + - Refers to item: Branch (branch: 4, path: 1) (location: source ID 5, line 205, chars 7440-7548, hits: 0) +- IC 1007 -> Item 171 + - Refers to item: Line (location: source ID 5, line 206, chars 7481-7537, hits: 0) +- IC 1007 -> Item 172 + - Refers to item: Statement (location: source ID 5, line 206, chars 7481-7537, hits: 0) +- IC 1068 -> Item 173 + - Refers to item: Line (location: source ID 5, line 214, chars 7844-7865, hits: 0) +- IC 1068 -> Item 174 + - Refers to item: Statement (location: source ID 5, line 214, chars 7844-7865, hits: 0) +- IC 1080 -> Item 175 + - Refers to item: Branch (branch: 5, path: 0) (location: source ID 5, line 214, chars 7840-8018, hits: 0) +- IC 1140 -> Item 176 + - Refers to item: Branch (branch: 5, path: 1) (location: source ID 5, line 214, chars 7840-8018, hits: 0) +- IC 1080 -> Item 177 + - Refers to item: Line (location: source ID 5, line 215, chars 7881-8007, hits: 0) +- IC 1080 -> Item 178 + - Refers to item: Statement (location: source ID 5, line 215, chars 7881-8007, hits: 0) +- IC 1141 -> Item 179 + - Refers to item: Line (location: source ID 5, line 222, chars 8086-8131, hits: 0) +- IC 1141 -> Item 180 + - Refers to item: Statement (location: source ID 5, line 222, chars 8086-8131, hits: 0) +- IC 1229 -> Item 181 + - Refers to item: Branch (branch: 6, path: 0) (location: source ID 5, line 222, chars 8082-8213, hits: 0) +- IC 1237 -> Item 182 + - Refers to item: Branch (branch: 6, path: 1) (location: source ID 5, line 222, chars 8082-8213, hits: 0) +- IC 1218 -> Item 183 + - Refers to item: Line (location: source ID 5, line 223, chars 8147-8202, hits: 0) +- IC 1218 -> Item 184 + - Refers to item: Statement (location: source ID 5, line 223, chars 8147-8202, hits: 0) +- IC 1311 -> Item 185 + - Refers to item: Line (location: source ID 5, line 228, chars 8322-8383, hits: 0) +- IC 1311 -> Item 186 + - Refers to item: Statement (location: source ID 5, line 228, chars 8322-8383, hits: 0) +- IC 1313 -> Item 187 + - Refers to item: Statement (location: source ID 5, line 228, chars 8350-8383, hits: 0) +- IC 1349 -> Item 188 + - Refers to item: Line (location: source ID 5, line 231, chars 8458-8510, hits: 0) +- IC 1349 -> Item 189 + - Refers to item: Statement (location: source ID 5, line 231, chars 8458-8510, hits: 0) +- IC 1351 -> Item 190 + - Refers to item: Statement (location: source ID 5, line 231, chars 8478-8510, hits: 0) +- IC 1387 -> Item 191 + - Refers to item: Line (location: source ID 5, line 235, chars 8625-8668, hits: 0) +- IC 1387 -> Item 192 + - Refers to item: Statement (location: source ID 5, line 235, chars 8625-8668, hits: 0) +- IC 1414 -> Item 193 + - Refers to item: Line (location: source ID 5, line 238, chars 8750-8789, hits: 0) +- IC 1414 -> Item 194 + - Refers to item: Statement (location: source ID 5, line 238, chars 8750-8789, hits: 0) +- IC 1440 -> Item 195 + - Refers to item: Line (location: source ID 5, line 241, chars 8834-8862, hits: 0) +- IC 1440 -> Item 196 + - Refers to item: Statement (location: source ID 5, line 241, chars 8834-8862, hits: 0) +- IC 1458 -> Item 197 + - Refers to item: Branch (branch: 7, path: 0) (location: source ID 5, line 241, chars 8830-8952, hits: 0) +- IC 1522 -> Item 198 + - Refers to item: Branch (branch: 7, path: 1) (location: source ID 5, line 241, chars 8830-8952, hits: 0) +- IC 1458 -> Item 199 + - Refers to item: Line (location: source ID 5, line 242, chars 8878-8941, hits: 0) +- IC 1458 -> Item 200 + - Refers to item: Statement (location: source ID 5, line 242, chars 8878-8941, hits: 0) +- IC 1523 -> Item 201 + - Refers to item: Line (location: source ID 5, line 246, chars 9027-9077, hits: 0) +- IC 1523 -> Item 202 + - Refers to item: Statement (location: source ID 5, line 246, chars 9027-9077, hits: 0) +- IC 1546 -> Item 203 + - Refers to item: Line (location: source ID 5, line 252, chars 9254-9337, hits: 0) +- IC 1546 -> Item 204 + - Refers to item: Statement (location: source ID 5, line 252, chars 9254-9337, hits: 0) +- IC 1656 -> Item 205 + - Refers to item: Branch (branch: 8, path: 0) (location: source ID 5, line 251, chars 9237-9505, hits: 0) +- IC 1720 -> Item 206 + - Refers to item: Branch (branch: 8, path: 1) (location: source ID 5, line 251, chars 9237-9505, hits: 0) +- IC 1656 -> Item 207 + - Refers to item: Line (location: source ID 5, line 255, chars 9362-9494, hits: 0) +- IC 1656 -> Item 208 + - Refers to item: Statement (location: source ID 5, line 255, chars 9362-9494, hits: 0) +- IC 1721 -> Item 209 + - Refers to item: Line (location: source ID 5, line 263, chars 9564-9712, hits: 0) +- IC 1721 -> Item 210 + - Refers to item: Statement (location: source ID 5, line 263, chars 9564-9712, hits: 0) +- IC 1756 -> Item 211 + - Refers to item: Line (location: source ID 5, line 270, chars 9762-9919, hits: 0) +- IC 1756 -> Item 212 + - Refers to item: Statement (location: source ID 5, line 270, chars 9762-9919, hits: 0) +- IC 1758 -> Item 213 + - Refers to item: Statement (location: source ID 5, line 270, chars 9788-9919, hits: 0) +- IC 1773 -> Item 214 + - Refers to item: Line (location: source ID 5, line 279, chars 10053-10162, hits: 0) +- IC 1773 -> Item 215 + - Refers to item: Statement (location: source ID 5, line 279, chars 10053-10162, hits: 0) +- IC 1775 -> Item 216 + - Refers to item: Statement (location: source ID 5, line 279, chars 10070-10162, hits: 0) +- IC 1794 -> Item 217 + - Refers to item: Line (location: source ID 5, line 286, chars 10303-10449, hits: 0) +- IC 1794 -> Item 218 + - Refers to item: Statement (location: source ID 5, line 286, chars 10303-10449, hits: 0) +- IC 1796 -> Item 219 + - Refers to item: Statement (location: source ID 5, line 286, chars 10329-10449, hits: 0) +- IC 1869 -> Item 220 + - Refers to item: Line (location: source ID 5, line 294, chars 10593-10626, hits: 0) +- IC 1869 -> Item 221 + - Refers to item: Statement (location: source ID 5, line 294, chars 10593-10626, hits: 0) +- IC 1953 -> Item 222 + - Refers to item: Branch (branch: 9, path: 0) (location: source ID 5, line 294, chars 10589-10692, hits: 0) +- IC 2013 -> Item 223 + - Refers to item: Branch (branch: 9, path: 1) (location: source ID 5, line 294, chars 10589-10692, hits: 0) +- IC 1953 -> Item 224 + - Refers to item: Line (location: source ID 5, line 295, chars 10642-10681, hits: 0) +- IC 1953 -> Item 225 + - Refers to item: Statement (location: source ID 5, line 295, chars 10642-10681, hits: 0) +- IC 2014 -> Item 226 + - Refers to item: Line (location: source ID 5, line 299, chars 10779-10838, hits: 0) +- IC 2014 -> Item 227 + - Refers to item: Statement (location: source ID 5, line 299, chars 10779-10838, hits: 0) +- IC 5606 -> Item 228 + - Refers to item: Function "_domainSeparator" (location: source ID 5, line 310, chars 11163-11364, hits: 0) +- IC 5609 -> Item 229 + - Refers to item: Line (location: source ID 5, line 311, chars 11233-11357, hits: 0) +- IC 5609 -> Item 230 + - Refers to item: Statement (location: source ID 5, line 311, chars 11233-11357, hits: 0) +- IC 337 -> Item 231 + - Refers to item: Function "getSeaportMetadata" (location: source ID 5, line 324, chars 11595-12196, hits: 0) +- IC 2075 -> Item 232 + - Refers to item: Line (location: source ID 5, line 330, chars 11778-11795, hits: 0) +- IC 2075 -> Item 233 + - Refers to item: Statement (location: source ID 5, line 330, chars 11778-11795, hits: 0) +- IC 2216 -> Item 234 + - Refers to item: Line (location: source ID 5, line 333, chars 11835-11860, hits: 0) +- IC 2216 -> Item 235 + - Refers to item: Statement (location: source ID 5, line 333, chars 11835-11860, hits: 0) +- IC 2303 -> Item 236 + - Refers to item: Line (location: source ID 5, line 334, chars 11870-11887, hits: 0) +- IC 2303 -> Item 237 + - Refers to item: Statement (location: source ID 5, line 334, chars 11870-11887, hits: 0) +- IC 2341 -> Item 238 + - Refers to item: Line (location: source ID 5, line 336, chars 11898-12189, hits: 0) +- IC 2341 -> Item 239 + - Refers to item: Statement (location: source ID 5, line 336, chars 11898-12189, hits: 0) +- IC 6203 -> Item 240 + - Refers to item: Function "_deriveDomainSeparator" (location: source ID 5, line 353, chars 12361-12759, hits: 0) +- IC 6206 -> Item 241 + - Refers to item: Line (location: source ID 5, line 358, chars 12481-12752, hits: 0) +- IC 6206 -> Item 242 + - Refers to item: Statement (location: source ID 5, line 358, chars 12481-12752, hits: 0) +- IC 309 -> Item 243 + - Refers to item: Function "updateAPIEndpoint" (location: source ID 5, line 375, chars 12901-13095, hits: 0) +- IC 2050 -> Item 244 + - Refers to item: Line (location: source ID 5, line 379, chars 13055-13088, hits: 0) +- IC 2050 -> Item 245 + - Refers to item: Statement (location: source ID 5, line 379, chars 13055-13088, hits: 0) +- IC 418 -> Item 246 + - Refers to item: Function "sip7Information" (location: source ID 5, line 387, chars 13253-13714, hits: 0) +- IC 2681 -> Item 247 + - Refers to item: Line (location: source ID 5, line 398, chars 13531-13567, hits: 0) +- IC 2681 -> Item 248 + - Refers to item: Statement (location: source ID 5, line 398, chars 13531-13567, hits: 0) +- IC 2691 -> Item 249 + - Refers to item: Line (location: source ID 5, line 399, chars 13577-13607, hits: 0) +- IC 2691 -> Item 250 + - Refers to item: Statement (location: source ID 5, line 399, chars 13577-13607, hits: 0) +- IC 2832 -> Item 251 + - Refers to item: Line (location: source ID 5, line 401, chars 13618-13660, hits: 0) +- IC 2832 -> Item 252 + - Refers to item: Statement (location: source ID 5, line 401, chars 13618-13660, hits: 0) +- IC 2842 -> Item 253 + - Refers to item: Line (location: source ID 5, line 403, chars 13671-13707, hits: 0) +- IC 2842 -> Item 254 + - Refers to item: Statement (location: source ID 5, line 403, chars 13671-13707, hits: 0) +- IC 4850 -> Item 255 + - Refers to item: Function "_validateSubstandards" (location: source ID 5, line 411, chars 13849-16137, hits: 0) +- IC 4851 -> Item 256 + - Refers to item: Line (location: source ID 5, line 419, chars 14210-14229, hits: 0) +- IC 4851 -> Item 257 + - Refers to item: Statement (location: source ID 5, line 419, chars 14210-14229, hits: 0) +- IC 4863 -> Item 258 + - Refers to item: Branch (branch: 10, path: 0) (location: source ID 5, line 419, chars 14206-14425, hits: 0) +- IC 4927 -> Item 259 + - Refers to item: Branch (branch: 10, path: 1) (location: source ID 5, line 419, chars 14206-14425, hits: 0) +- IC 4863 -> Item 260 + - Refers to item: Line (location: source ID 5, line 420, chars 14245-14414, hits: 0) +- IC 4863 -> Item 261 + - Refers to item: Statement (location: source ID 5, line 420, chars 14245-14414, hits: 0) +- IC 4928 -> Item 262 + - Refers to item: Line (location: source ID 5, line 427, chars 14503-14561, hits: 0) +- IC 4928 -> Item 263 + - Refers to item: Statement (location: source ID 5, line 427, chars 14503-14561, hits: 0) +- IC 4930 -> Item 264 + - Refers to item: Statement (location: source ID 5, line 427, chars 14539-14561, hits: 0) +- IC 4963 -> Item 265 + - Refers to item: Line (location: source ID 5, line 428, chars 14575-14627, hits: 0) +- IC 4963 -> Item 266 + - Refers to item: Statement (location: source ID 5, line 428, chars 14575-14627, hits: 0) +- IC 4970 -> Item 267 + - Refers to item: Branch (branch: 11, path: 0) (location: source ID 5, line 428, chars 14571-14802, hits: 0) +- IC 5037 -> Item 268 + - Refers to item: Branch (branch: 11, path: 1) (location: source ID 5, line 428, chars 14571-14802, hits: 0) +- IC 4970 -> Item 269 + - Refers to item: Line (location: source ID 5, line 429, chars 14643-14791, hits: 0) +- IC 4970 -> Item 270 + - Refers to item: Statement (location: source ID 5, line 429, chars 14643-14791, hits: 0) +- IC 5038 -> Item 271 + - Refers to item: Line (location: source ID 5, line 439, chars 14950-14996, hits: 0) +- IC 5038 -> Item 272 + - Refers to item: Statement (location: source ID 5, line 439, chars 14950-14996, hits: 0) +- IC 5064 -> Item 273 + - Refers to item: Line (location: source ID 5, line 441, chars 15060-15093, hits: 0) +- IC 5064 -> Item 274 + - Refers to item: Statement (location: source ID 5, line 441, chars 15060-15093, hits: 0) +- IC 5087 -> Item 275 + - Refers to item: Branch (branch: 12, path: 0) (location: source ID 5, line 441, chars 15056-15285, hits: 0) +- IC 5151 -> Item 276 + - Refers to item: Branch (branch: 12, path: 1) (location: source ID 5, line 441, chars 15056-15285, hits: 0) +- IC 5087 -> Item 277 + - Refers to item: Line (location: source ID 5, line 442, chars 15109-15274, hits: 0) +- IC 5087 -> Item 278 + - Refers to item: Statement (location: source ID 5, line 442, chars 15109-15274, hits: 0) +- IC 5152 -> Item 279 + - Refers to item: Line (location: source ID 5, line 449, chars 15365-15469, hits: 0) +- IC 5152 -> Item 280 + - Refers to item: Statement (location: source ID 5, line 449, chars 15365-15469, hits: 0) +- IC 5154 -> Item 281 + - Refers to item: Statement (location: source ID 5, line 449, chars 15404-15469, hits: 0) +- IC 5244 -> Item 282 + - Refers to item: Line (location: source ID 5, line 452, chars 15484-15497, hits: 0) +- IC 5244 -> Item 283 + - Refers to item: Statement (location: source ID 5, line 452, chars 15484-15497, hits: 0) +- IC 5247 -> Item 284 + - Refers to item: Statement (location: source ID 5, line 452, chars 15499-15531, hits: 0) +- IC 5365 -> Item 285 + - Refers to item: Statement (location: source ID 5, line 452, chars 15533-15536, hits: 0) +- IC 5270 -> Item 286 + - Refers to item: Line (location: source ID 5, line 453, chars 15552-15652, hits: 0) +- IC 5270 -> Item 287 + - Refers to item: Statement (location: source ID 5, line 453, chars 15552-15652, hits: 0) +- IC 5385 -> Item 288 + - Refers to item: Line (location: source ID 5, line 461, chars 15838-15953, hits: 0) +- IC 5385 -> Item 289 + - Refers to item: Statement (location: source ID 5, line 461, chars 15838-15953, hits: 0) +- IC 5414 -> Item 290 + - Refers to item: Branch (branch: 13, path: 0) (location: source ID 5, line 460, chars 15821-16131, hits: 0) +- IC 5481 -> Item 291 + - Refers to item: Branch (branch: 13, path: 1) (location: source ID 5, line 460, chars 15821-16131, hits: 0) +- IC 5414 -> Item 292 + - Refers to item: Line (location: source ID 5, line 466, chars 15978-16120, hits: 0) +- IC 5414 -> Item 293 + - Refers to item: Statement (location: source ID 5, line 466, chars 15978-16120, hits: 0) +- IC 5805 -> Item 294 + - Refers to item: Function "_getSupportedSubstandards" (location: source ID 5, line 480, chars 16292-16557, hits: 0) +- IC 5808 -> Item 295 + - Refers to item: Line (location: source ID 5, line 486, chars 16461-16492, hits: 0) +- IC 5808 -> Item 296 + - Refers to item: Statement (location: source ID 5, line 486, chars 16461-16492, hits: 0) +- IC 5884 -> Item 297 + - Refers to item: Line (location: source ID 5, line 487, chars 16502-16521, hits: 0) +- IC 5884 -> Item 298 + - Refers to item: Statement (location: source ID 5, line 487, chars 16502-16521, hits: 0) +- IC 5918 -> Item 299 + - Refers to item: Line (location: source ID 5, line 488, chars 16531-16550, hits: 0) +- IC 5918 -> Item 300 + - Refers to item: Statement (location: source ID 5, line 488, chars 16531-16550, hits: 0) +- IC 5491 -> Item 301 + - Refers to item: Function "_deriveSignedOrderHash" (location: source ID 5, line 502, chars 16950-17440, hits: 0) +- IC 5494 -> Item 302 + - Refers to item: Line (location: source ID 5, line 509, chars 17200-17433, hits: 0) +- IC 5494 -> Item 303 + - Refers to item: Statement (location: source ID 5, line 509, chars 17200-17433, hits: 0) +- IC 4248 -> Item 304 + - Refers to item: Function "_deriveConsiderationHash" (location: source ID 5, line 524, chars 17597-18511, hits: 0) +- IC 4251 -> Item 305 + - Refers to item: Line (location: source ID 5, line 527, chars 17726-17770, hits: 0) +- IC 4251 -> Item 306 + - Refers to item: Statement (location: source ID 5, line 527, chars 17726-17770, hits: 0) +- IC 4258 -> Item 307 + - Refers to item: Line (location: source ID 5, line 528, chars 17780-17847, hits: 0) +- IC 4258 -> Item 308 + - Refers to item: Statement (location: source ID 5, line 528, chars 17780-17847, hits: 0) +- IC 4260 -> Item 309 + - Refers to item: Statement (location: source ID 5, line 528, chars 17819-17847, hits: 0) +- IC 4335 -> Item 310 + - Refers to item: Line (location: source ID 5, line 529, chars 17862-17871, hits: 0) +- IC 4335 -> Item 311 + - Refers to item: Statement (location: source ID 5, line 529, chars 17862-17871, hits: 0) +- IC 4338 -> Item 312 + - Refers to item: Statement (location: source ID 5, line 529, chars 17873-17890, hits: 0) +- IC 4644 -> Item 313 + - Refers to item: Statement (location: source ID 5, line 529, chars 17892-17895, hits: 0) +- IC 4383 -> Item 314 + - Refers to item: Line (location: source ID 5, line 530, chars 17911-18282, hits: 0) +- IC 4383 -> Item 315 + - Refers to item: Statement (location: source ID 5, line 530, chars 17911-18282, hits: 0) +- IC 4763 -> Item 316 + - Refers to item: Line (location: source ID 5, line 541, chars 18302-18504, hits: 0) +- IC 4763 -> Item 317 + - Refers to item: Statement (location: source ID 5, line 541, chars 18302-18504, hits: 0) +- IC 6011 -> Item 318 + - Refers to item: Function "_everyElementExists" (location: source ID 5, line 557, chars 18752-20028, hits: 0) +- IC 6014 -> Item 319 + - Refers to item: Line (location: source ID 5, line 562, chars 18954-18988, hits: 0) +- IC 6014 -> Item 320 + - Refers to item: Statement (location: source ID 5, line 562, chars 18954-18988, hits: 0) +- IC 6019 -> Item 321 + - Refers to item: Line (location: source ID 5, line 563, chars 18998-19032, hits: 0) +- IC 6019 -> Item 322 + - Refers to item: Statement (location: source ID 5, line 563, chars 18998-19032, hits: 0) +- IC 6027 -> Item 323 + - Refers to item: Line (location: source ID 5, line 567, chars 19171-19194, hits: 0) +- IC 6027 -> Item 324 + - Refers to item: Statement (location: source ID 5, line 567, chars 19171-19194, hits: 0) +- IC 6035 -> Item 325 + - Refers to item: Branch (branch: 14, path: 0) (location: source ID 5, line 567, chars 19167-19233, hits: 0) +- IC 6045 -> Item 326 + - Refers to item: Branch (branch: 14, path: 1) (location: source ID 5, line 567, chars 19167-19233, hits: 0) +- IC 6035 -> Item 327 + - Refers to item: Line (location: source ID 5, line 568, chars 19210-19222, hits: 0) +- IC 6035 -> Item 328 + - Refers to item: Statement (location: source ID 5, line 568, chars 19210-19222, hits: 0) +- IC 6046 -> Item 329 + - Refers to item: Line (location: source ID 5, line 572, chars 19305-19318, hits: 0) +- IC 6046 -> Item 330 + - Refers to item: Statement (location: source ID 5, line 572, chars 19305-19318, hits: 0) +- IC 6049 -> Item 331 + - Refers to item: Statement (location: source ID 5, line 572, chars 19320-19334, hits: 0) +- IC 6057 -> Item 332 + - Refers to item: Line (location: source ID 5, line 573, chars 19352-19370, hits: 0) +- IC 6057 -> Item 333 + - Refers to item: Statement (location: source ID 5, line 573, chars 19352-19370, hits: 0) +- IC 6059 -> Item 334 + - Refers to item: Line (location: source ID 5, line 574, chars 19384-19408, hits: 0) +- IC 6059 -> Item 335 + - Refers to item: Statement (location: source ID 5, line 574, chars 19384-19408, hits: 0) +- IC 6089 -> Item 336 + - Refers to item: Line (location: source ID 5, line 575, chars 19427-19440, hits: 0) +- IC 6089 -> Item 337 + - Refers to item: Statement (location: source ID 5, line 575, chars 19427-19440, hits: 0) +- IC 6092 -> Item 338 + - Refers to item: Statement (location: source ID 5, line 575, chars 19442-19456, hits: 0) +- IC 6100 -> Item 339 + - Refers to item: Line (location: source ID 5, line 576, chars 19482-19499, hits: 0) +- IC 6100 -> Item 340 + - Refers to item: Statement (location: source ID 5, line 576, chars 19482-19499, hits: 0) +- IC 6132 -> Item 341 + - Refers to item: Branch (branch: 15, path: 0) (location: source ID 5, line 576, chars 19478-19644, hits: 0) +- IC 6140 -> Item 342 + - Refers to item: Branch (branch: 15, path: 1) (location: source ID 5, line 576, chars 19478-19644, hits: 0) +- IC 6132 -> Item 343 + - Refers to item: Line (location: source ID 5, line 578, chars 19586-19598, hits: 0) +- IC 6132 -> Item 344 + - Refers to item: Statement (location: source ID 5, line 578, chars 19586-19598, hits: 0) +- IC 6136 -> Item 345 + - Refers to item: Line (location: source ID 5, line 579, chars 19620-19625, hits: 0) +- IC 6136 -> Item 346 + - Refers to item: Statement (location: source ID 5, line 579, chars 19620-19625, hits: 0) +- IC 6141 -> Item 347 + - Refers to item: Line (location: source ID 5, line 582, chars 19693-19696, hits: 0) +- IC 6141 -> Item 348 + - Refers to item: Statement (location: source ID 5, line 582, chars 19693-19696, hits: 0) +- IC 6155 -> Item 349 + - Refers to item: Line (location: source ID 5, line 585, chars 19746-19752, hits: 0) +- IC 6155 -> Item 350 + - Refers to item: Statement (location: source ID 5, line 585, chars 19746-19752, hits: 0) +- IC 6160 -> Item 351 + - Refers to item: Branch (branch: 16, path: 0) (location: source ID 5, line 585, chars 19742-19879, hits: 0) +- IC 6173 -> Item 352 + - Refers to item: Branch (branch: 16, path: 1) (location: source ID 5, line 585, chars 19742-19879, hits: 0) +- IC 6160 -> Item 353 + - Refers to item: Line (location: source ID 5, line 587, chars 19852-19864, hits: 0) +- IC 6160 -> Item 354 + - Refers to item: Statement (location: source ID 5, line 587, chars 19852-19864, hits: 0) +- IC 6174 -> Item 355 + - Refers to item: Line (location: source ID 5, line 590, chars 19920-19923, hits: 0) +- IC 6174 -> Item 356 + - Refers to item: Statement (location: source ID 5, line 590, chars 19920-19923, hits: 0) +- IC 6190 -> Item 357 + - Refers to item: Line (location: source ID 5, line 595, chars 20010-20021, hits: 0) +- IC 6190 -> Item 358 + - Refers to item: Statement (location: source ID 5, line 595, chars 20010-20021, hits: 0) +- IC 185 -> Item 359 + - Refers to item: Function "supportsInterface" (location: source ID 5, line 598, chars 20034-20288, hits: 0) +- IC 540 -> Item 360 + - Refers to item: Line (location: source ID 5, line 601, chars 20164-20281, hits: 0) +- IC 540 -> Item 361 + - Refers to item: Statement (location: source ID 5, line 601, chars 20164-20281, hits: 0) + +Anchors for Contract "MockOffchainSource" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 149): +- IC 181 -> Item 0 + - Refers to item: Function "setIsReady" (location: source ID 149, line 11, chars 263-338, hits: 6) +- IC 362 -> Item 1 + - Refers to item: Line (location: source ID 149, line 12, chars 315-331, hits: 6) +- IC 362 -> Item 2 + - Refers to item: Statement (location: source ID 149, line 12, chars 315-331, hits: 6) +- IC 209 -> Item 3 + - Refers to item: Function "requestOffchainRandom" (location: source ID 149, line 15, chars 344-488, hits: 6) +- IC 393 -> Item 4 + - Refers to item: Line (location: source ID 149, line 16, chars 463-481, hits: 6) +- IC 393 -> Item 5 + - Refers to item: Statement (location: source ID 149, line 16, chars 463-481, hits: 6) +- IC 239 -> Item 6 + - Refers to item: Function "getOffchainRandom" (location: source ID 149, line 19, chars 494-764, hits: 6) +- IC 422 -> Item 7 + - Refers to item: Line (location: source ID 149, line 20, chars 638-646, hits: 6) +- IC 422 -> Item 8 + - Refers to item: Statement (location: source ID 149, line 20, chars 638-646, hits: 6) +- IC 442 -> Item 9 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 149, line 20, chars 634-695, hits: 0) +- IC 491 -> Item 10 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 149, line 20, chars 634-695, hits: 6) +- IC 442 -> Item 11 + - Refers to item: Line (location: source ID 149, line 21, chars 662-684, hits: 0) +- IC 442 -> Item 12 + - Refers to item: Statement (location: source ID 149, line 21, chars 662-684, hits: 0) +- IC 492 -> Item 13 + - Refers to item: Line (location: source ID 149, line 23, chars 704-757, hits: 6) +- IC 492 -> Item 14 + - Refers to item: Statement (location: source ID 149, line 23, chars 704-757, hits: 6) +- IC 103 -> Item 15 + - Refers to item: Function "isOffchainRandomReady" (location: source ID 149, line 26, chars 770-893, hits: 2) +- IC 320 -> Item 16 + - Refers to item: Line (location: source ID 149, line 27, chars 872-886, hits: 2) +- IC 320 -> Item 17 + - Refers to item: Statement (location: source ID 149, line 27, chars 872-886, hits: 2) + +Anchors for Contract "MockMarketplace" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 6): +- IC 286 -> Item 220 + - Refers to item: Function "executeTransfer" (location: source ID 6, line 16, chars 421-565, hits: 0) +- IC 1235 -> Item 221 + - Refers to item: Line (location: source ID 6, line 17, chars 500-558, hits: 0) +- IC 1235 -> Item 222 + - Refers to item: Statement (location: source ID 6, line 17, chars 500-558, hits: 0) +- IC 118 -> Item 223 + - Refers to item: Function "executeTransferFrom" (location: source ID 6, line 20, chars 571-713, hits: 0) +- IC 868 -> Item 224 + - Refers to item: Line (location: source ID 6, line 21, chars 661-706, hits: 0) +- IC 868 -> Item 225 + - Refers to item: Statement (location: source ID 6, line 21, chars 661-706, hits: 0) +- IC 245 -> Item 226 + - Refers to item: Function "executeApproveForAll" (location: source ID 6, line 24, chars 719-856, hits: 0) +- IC 1090 -> Item 227 + - Refers to item: Line (location: source ID 6, line 25, chars 799-849, hits: 0) +- IC 1090 -> Item 228 + - Refers to item: Statement (location: source ID 6, line 25, chars 799-849, hits: 0) +- IC 90 -> Item 229 + - Refers to item: Function "executeTransferRoyalties" (location: source ID 6, line 28, chars 862-1355, hits: 0) +- IC 328 -> Item 230 + - Refers to item: Line (location: source ID 6, line 29, chars 987-1040, hits: 0) +- IC 328 -> Item 231 + - Refers to item: Statement (location: source ID 6, line 29, chars 987-1040, hits: 0) +- IC 335 -> Item 232 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 6, line 29, chars 987-1040, hits: 0) +- IC 393 -> Item 233 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 6, line 29, chars 987-1040, hits: 0) +- IC 394 -> Item 234 + - Refers to item: Line (location: source ID 6, line 30, chars 1050-1137, hits: 0) +- IC 394 -> Item 235 + - Refers to item: Statement (location: source ID 6, line 30, chars 1050-1137, hits: 0) +- IC 397 -> Item 236 + - Refers to item: Statement (location: source ID 6, line 30, chars 1094-1137, hits: 0) +- IC 558 -> Item 237 + - Refers to item: Line (location: source ID 6, line 31, chars 1147-1192, hits: 0) +- IC 558 -> Item 238 + - Refers to item: Statement (location: source ID 6, line 31, chars 1147-1192, hits: 0) +- IC 560 -> Item 239 + - Refers to item: Statement (location: source ID 6, line 31, chars 1167-1192, hits: 0) +- IC 574 -> Item 240 + - Refers to item: Line (location: source ID 6, line 32, chars 1202-1243, hits: 0) +- IC 574 -> Item 241 + - Refers to item: Statement (location: source ID 6, line 32, chars 1202-1243, hits: 0) +- IC 645 -> Item 242 + - Refers to item: Line (location: source ID 6, line 33, chars 1253-1286, hits: 0) +- IC 645 -> Item 243 + - Refers to item: Statement (location: source ID 6, line 33, chars 1253-1286, hits: 0) +- IC 716 -> Item 244 + - Refers to item: Line (location: source ID 6, line 34, chars 1296-1348, hits: 0) +- IC 716 -> Item 245 + - Refers to item: Statement (location: source ID 6, line 34, chars 1296-1348, hits: 0) + +Anchors for Contract "ImmutableERC721" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 25): +- IC 1510 -> Item 531 + - Refers to item: Function "mint" (location: source ID 25, line 49, chars 1728-1841, hits: 0) +- IC 4395 -> Item 532 + - Refers to item: Line (location: source ID 25, line 50, chars 1812-1834, hits: 0) +- IC 4395 -> Item 533 + - Refers to item: Statement (location: source ID 25, line 50, chars 1812-1834, hits: 0) +- IC 2210 -> Item 534 + - Refers to item: Function "safeMint" (location: source ID 25, line 57, chars 2054-2175, hits: 0) +- IC 5750 -> Item 535 + - Refers to item: Line (location: source ID 25, line 58, chars 2142-2168, hits: 0) +- IC 5750 -> Item 536 + - Refers to item: Statement (location: source ID 25, line 58, chars 2142-2168, hits: 0) +- IC 2668 -> Item 537 + - Refers to item: Function "mintByQuantity" (location: source ID 25, line 65, chars 2386-2517, hits: 0) +- IC 6958 -> Item 538 + - Refers to item: Line (location: source ID 25, line 66, chars 2481-2510, hits: 0) +- IC 6958 -> Item 539 + - Refers to item: Statement (location: source ID 25, line 66, chars 2481-2510, hits: 0) +- IC 1698 -> Item 540 + - Refers to item: Function "safeMintByQuantity" (location: source ID 25, line 74, chars 2758-2897, hits: 0) +- IC 4688 -> Item 541 + - Refers to item: Line (location: source ID 25, line 75, chars 2857-2890, hits: 0) +- IC 4688 -> Item 542 + - Refers to item: Statement (location: source ID 25, line 75, chars 2857-2890, hits: 0) +- IC 2506 -> Item 543 + - Refers to item: Function "mintBatchByQuantity" (location: source ID 25, line 81, chars 3113-3240, hits: 0) +- IC 6641 -> Item 544 + - Refers to item: Line (location: source ID 25, line 82, chars 3206-3233, hits: 0) +- IC 6641 -> Item 545 + - Refers to item: Statement (location: source ID 25, line 82, chars 3206-3233, hits: 0) +- IC 1308 -> Item 546 + - Refers to item: Function "safeMintBatchByQuantity" (location: source ID 25, line 88, chars 3461-3596, hits: 0) +- IC 3851 -> Item 547 + - Refers to item: Line (location: source ID 25, line 89, chars 3558-3589, hits: 0) +- IC 3851 -> Item 548 + - Refers to item: Statement (location: source ID 25, line 89, chars 3558-3589, hits: 0) +- IC 2154 -> Item 549 + - Refers to item: Function "mintBatch" (location: source ID 25, line 96, chars 3886-4009, hits: 0) +- IC 5552 -> Item 550 + - Refers to item: Line (location: source ID 25, line 97, chars 3971-4002, hits: 0) +- IC 5552 -> Item 551 + - Refers to item: Statement (location: source ID 25, line 97, chars 3971-4002, hits: 0) +- IC 1125 -> Item 552 + - Refers to item: Function "safeMintBatch" (location: source ID 25, line 104, chars 4299-4430, hits: 0) +- IC 3187 -> Item 553 + - Refers to item: Line (location: source ID 25, line 105, chars 4388-4423, hits: 0) +- IC 3187 -> Item 554 + - Refers to item: Statement (location: source ID 25, line 105, chars 4388-4423, hits: 0) +- IC 1908 -> Item 555 + - Refers to item: Function "safeBurnBatch" (location: source ID 25, line 111, chars 4605-4700, hits: 0) +- IC 5009 -> Item 556 + - Refers to item: Line (location: source ID 25, line 112, chars 4672-4693, hits: 0) +- IC 5009 -> Item 557 + - Refers to item: Statement (location: source ID 25, line 112, chars 4672-4693, hits: 0) +- IC 865 -> Item 558 + - Refers to item: Function "safeTransferFromBatch" (location: source ID 25, line 119, chars 4935-5269, hits: 0) +- IC 2697 -> Item 559 + - Refers to item: Line (location: source ID 25, line 120, chars 5018-5053, hits: 0) +- IC 2697 -> Item 560 + - Refers to item: Statement (location: source ID 25, line 120, chars 5018-5053, hits: 0) +- IC 2738 -> Item 561 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 25, line 120, chars 5014-5130, hits: 0) +- IC 2787 -> Item 562 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 25, line 120, chars 5014-5130, hits: 0) +- IC 2738 -> Item 563 + - Refers to item: Line (location: source ID 25, line 121, chars 5069-5119, hits: 0) +- IC 2738 -> Item 564 + - Refers to item: Statement (location: source ID 25, line 121, chars 5069-5119, hits: 0) +- IC 2788 -> Item 565 + - Refers to item: Line (location: source ID 25, line 124, chars 5145-5155, hits: 0) +- IC 2788 -> Item 566 + - Refers to item: Statement (location: source ID 25, line 124, chars 5145-5155, hits: 0) +- IC 2791 -> Item 567 + - Refers to item: Statement (location: source ID 25, line 124, chars 5157-5179, hits: 0) +- IC 2937 -> Item 568 + - Refers to item: Statement (location: source ID 25, line 124, chars 5181-5184, hits: 0) +- IC 2816 -> Item 569 + - Refers to item: Line (location: source ID 25, line 125, chars 5200-5252, hits: 0) +- IC 2816 -> Item 570 + - Refers to item: Statement (location: source ID 25, line 125, chars 5200-5252, hits: 0) +- IC 1482 -> Item 58 + - Refers to item: Function "grantMinterRole" (location: source ID 22, line 15, chars 511-631, hits: 0) +- IC 4307 -> Item 59 + - Refers to item: Line (location: source ID 22, line 16, chars 596-624, hits: 0) +- IC 4307 -> Item 60 + - Refers to item: Statement (location: source ID 22, line 16, chars 596-624, hits: 0) +- IC 1774 -> Item 61 + - Refers to item: Function "revokeMinterRole" (location: source ID 22, line 22, chars 780-902, hits: 0) +- IC 4766 -> Item 62 + - Refers to item: Line (location: source ID 22, line 23, chars 866-895, hits: 0) +- IC 4766 -> Item 63 + - Refers to item: Statement (location: source ID 22, line 23, chars 866-895, hits: 0) +- IC 1394 -> Item 64 + - Refers to item: Function "getAdmins" (location: source ID 22, line 27, chars 980-1319, hits: 0) +- IC 3926 -> Item 65 + - Refers to item: Line (location: source ID 22, line 28, chars 1050-1109, hits: 0) +- IC 3926 -> Item 66 + - Refers to item: Statement (location: source ID 22, line 28, chars 1050-1109, hits: 0) +- IC 3928 -> Item 67 + - Refers to item: Statement (location: source ID 22, line 28, chars 1071-1109, hits: 0) +- IC 3942 -> Item 68 + - Refers to item: Line (location: source ID 22, line 29, chars 1119-1170, hits: 0) +- IC 3942 -> Item 69 + - Refers to item: Statement (location: source ID 22, line 29, chars 1119-1170, hits: 0) +- IC 3944 -> Item 70 + - Refers to item: Statement (location: source ID 22, line 29, chars 1145-1170, hits: 0) +- IC 4019 -> Item 71 + - Refers to item: Line (location: source ID 22, line 30, chars 1185-1194, hits: 0) +- IC 4019 -> Item 72 + - Refers to item: Statement (location: source ID 22, line 30, chars 1185-1194, hits: 0) +- IC 4022 -> Item 73 + - Refers to item: Statement (location: source ID 22, line 30, chars 1196-1210, hits: 0) +- IC 4120 -> Item 74 + - Refers to item: Statement (location: source ID 22, line 30, chars 1212-1215, hits: 0) +- IC 4030 -> Item 75 + - Refers to item: Line (location: source ID 22, line 31, chars 1231-1279, hits: 0) +- IC 4030 -> Item 76 + - Refers to item: Statement (location: source ID 22, line 31, chars 1231-1279, hits: 0) +- IC 4140 -> Item 77 + - Refers to item: Line (location: source ID 22, line 33, chars 1299-1312, hits: 0) +- IC 4140 -> Item 78 + - Refers to item: Statement (location: source ID 22, line 33, chars 1299-1312, hits: 0) +- IC 893 -> Item 571 + - Refers to item: Function "supportsInterface" (location: source ID 21, line 51, chars 2034-2324, hits: 0) +- IC 2962 -> Item 572 + - Refers to item: Line (location: source ID 21, line 60, chars 2274-2317, hits: 0) +- IC 2962 -> Item 573 + - Refers to item: Statement (location: source ID 21, line 60, chars 2274-2317, hits: 0) +- IC 18471 -> Item 574 + - Refers to item: Function "_baseURI" (location: source ID 21, line 64, chars 2384-2490, hits: 0) +- IC 18474 -> Item 575 + - Refers to item: Line (location: source ID 21, line 65, chars 2469-2483, hits: 0) +- IC 18474 -> Item 576 + - Refers to item: Statement (location: source ID 21, line 65, chars 2469-2483, hits: 0) +- IC 1670 -> Item 577 + - Refers to item: Function "setBaseURI" (location: source ID 21, line 71, chars 2597-2712, hits: 0) +- IC 4626 -> Item 578 + - Refers to item: Line (location: source ID 21, line 72, chars 2687-2705, hits: 0) +- IC 4626 -> Item 579 + - Refers to item: Statement (location: source ID 21, line 72, chars 2687-2705, hits: 0) +- IC 2096 -> Item 580 + - Refers to item: Function "setContractURI" (location: source ID 21, line 79, chars 2877-3008, hits: 0) +- IC 5475 -> Item 581 + - Refers to item: Line (location: source ID 21, line 80, chars 2975-3001, hits: 0) +- IC 5475 -> Item 582 + - Refers to item: Statement (location: source ID 21, line 80, chars 2975-3001, hits: 0) +- IC 2268 -> Item 583 + - Refers to item: Function "setApprovalForAll" (location: source ID 21, line 87, chars 3126-3333, hits: 0) +- IC 6291 -> Item 584 + - Refers to item: Line (location: source ID 21, line 91, chars 3283-3326, hits: 0) +- IC 6291 -> Item 585 + - Refers to item: Statement (location: source ID 21, line 91, chars 3283-3326, hits: 0) +- IC 12944 -> Item 586 + - Refers to item: Function "_approve" (location: source ID 21, line 98, chars 3453-3605, hits: 0) +- IC 13464 -> Item 587 + - Refers to item: Line (location: source ID 21, line 99, chars 3571-3598, hits: 0) +- IC 13464 -> Item 588 + - Refers to item: Statement (location: source ID 21, line 99, chars 3571-3598, hits: 0) +- IC 13844 -> Item 589 + - Refers to item: Function "_transfer" (location: source ID 21, line 106, chars 3740-3956, hits: 0) +- IC 14644 -> Item 590 + - Refers to item: Line (location: source ID 21, line 111, chars 3915-3949, hits: 0) +- IC 14644 -> Item 591 + - Refers to item: Statement (location: source ID 21, line 111, chars 3915-3949, hits: 0) +- IC 1972 -> Item 592 + - Refers to item: Function "setDefaultRoyaltyReceiver" (location: source ID 21, line 119, chars 4245-4414, hits: 0) +- IC 5294 -> Item 593 + - Refers to item: Line (location: source ID 21, line 120, chars 4365-4407, hits: 0) +- IC 5294 -> Item 594 + - Refers to item: Statement (location: source ID 21, line 120, chars 4365-4407, hits: 0) +- IC 1594 -> Item 595 + - Refers to item: Function "setNFTRoyaltyReceiver" (location: source ID 21, line 129, chars 4776-4988, hits: 0) +- IC 4578 -> Item 596 + - Refers to item: Line (location: source ID 21, line 134, chars 4932-4981, hits: 0) +- IC 4578 -> Item 597 + - Refers to item: Statement (location: source ID 21, line 134, chars 4932-4981, hits: 0) +- IC 2296 -> Item 598 + - Refers to item: Function "setNFTRoyaltyReceiverBatch" (location: source ID 21, line 143, chars 5356-5656, hits: 0) +- IC 6348 -> Item 599 + - Refers to item: Line (location: source ID 21, line 148, chars 5534-5544, hits: 0) +- IC 6348 -> Item 600 + - Refers to item: Statement (location: source ID 21, line 148, chars 5534-5544, hits: 0) +- IC 6351 -> Item 601 + - Refers to item: Statement (location: source ID 21, line 148, chars 5546-5565, hits: 0) +- IC 6398 -> Item 602 + - Refers to item: Statement (location: source ID 21, line 148, chars 5567-5570, hits: 0) +- IC 6362 -> Item 603 + - Refers to item: Line (location: source ID 21, line 149, chars 5586-5639, hits: 0) +- IC 6362 -> Item 604 + - Refers to item: Statement (location: source ID 21, line 149, chars 5586-5639, hits: 0) +- IC 16724 -> Item 897 + - Refers to item: Function "_burn" (location: source ID 24, line 31, chars 760-1065, hits: 0) +- IC 16725 -> Item 898 + - Refers to item: Line (location: source ID 24, line 32, chars 819-850, hits: 0) +- IC 16725 -> Item 899 + - Refers to item: Statement (location: source ID 24, line 32, chars 819-850, hits: 0) +- IC 16727 -> Item 900 + - Refers to item: Statement (location: source ID 24, line 32, chars 834-850, hits: 0) +- IC 16738 -> Item 901 + - Refers to item: Line (location: source ID 24, line 33, chars 860-911, hits: 0) +- IC 16738 -> Item 902 + - Refers to item: Statement (location: source ID 24, line 33, chars 860-911, hits: 0) +- IC 16752 -> Item 903 + - Refers to item: Line (location: source ID 24, line 34, chars 921-946, hits: 0) +- IC 16752 -> Item 904 + - Refers to item: Statement (location: source ID 24, line 34, chars 921-946, hits: 0) +- IC 16772 -> Item 905 + - Refers to item: Line (location: source ID 24, line 36, chars 957-997, hits: 0) +- IC 16772 -> Item 906 + - Refers to item: Statement (location: source ID 24, line 36, chars 957-997, hits: 0) +- IC 16864 -> Item 907 + - Refers to item: Line (location: source ID 24, line 38, chars 1008-1058, hits: 0) +- IC 16864 -> Item 908 + - Refers to item: Statement (location: source ID 24, line 38, chars 1008-1058, hits: 0) +- IC 16942 -> Item 909 + - Refers to item: Function "_exists" (location: source ID 24, line 49, chars 1368-1571, hits: 0) +- IC 16945 -> Item 910 + - Refers to item: Line (location: source ID 24, line 50, chars 1462-1487, hits: 0) +- IC 16945 -> Item 911 + - Refers to item: Statement (location: source ID 24, line 50, chars 1462-1487, hits: 0) +- IC 16970 -> Item 912 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 24, line 50, chars 1458-1526, hits: 0) +- IC 16978 -> Item 913 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 24, line 50, chars 1458-1526, hits: 0) +- IC 16970 -> Item 914 + - Refers to item: Line (location: source ID 24, line 51, chars 1503-1515, hits: 0) +- IC 16970 -> Item 915 + - Refers to item: Statement (location: source ID 24, line 51, chars 1503-1515, hits: 0) +- IC 16979 -> Item 916 + - Refers to item: Line (location: source ID 24, line 53, chars 1535-1564, hits: 0) +- IC 16979 -> Item 917 + - Refers to item: Statement (location: source ID 24, line 53, chars 1535-1564, hits: 0) +- IC 8001 -> Item 918 + - Refers to item: Function "totalSupply" (location: source ID 24, line 59, chars 1642-1762, hits: 0) +- IC 8004 -> Item 919 + - Refers to item: Line (location: source ID 24, line 60, chars 1722-1755, hits: 0) +- IC 8004 -> Item 920 + - Refers to item: Statement (location: source ID 24, line 60, chars 1722-1755, hits: 0) +- IC 13478 -> Item 921 + - Refers to item: Function "_burned" (location: source ID 24, line 66, chars 1828-2170, hits: 0) +- IC 13481 -> Item 922 + - Refers to item: Line (location: source ID 24, line 67, chars 1896-1938, hits: 0) +- IC 13481 -> Item 923 + - Refers to item: Statement (location: source ID 24, line 67, chars 1896-1938, hits: 0) +- IC 13482 -> Item 924 + - Refers to item: Statement (location: source ID 24, line 67, chars 1918-1938, hits: 0) +- IC 13496 -> Item 925 + - Refers to item: Line (location: source ID 24, line 68, chars 1948-1994, hits: 0) +- IC 13496 -> Item 926 + - Refers to item: Statement (location: source ID 24, line 68, chars 1948-1994, hits: 0) +- IC 13498 -> Item 927 + - Refers to item: Statement (location: source ID 24, line 68, chars 1969-1994, hits: 0) +- IC 13524 -> Item 928 + - Refers to item: Line (location: source ID 24, line 70, chars 2010-2033, hits: 0) +- IC 13524 -> Item 929 + - Refers to item: Statement (location: source ID 24, line 70, chars 2010-2033, hits: 0) +- IC 13530 -> Item 930 + - Refers to item: Statement (location: source ID 24, line 70, chars 2035-2049, hits: 0) +- IC 13585 -> Item 931 + - Refers to item: Statement (location: source ID 24, line 70, chars 2051-2054, hits: 0) +- IC 13538 -> Item 932 + - Refers to item: Line (location: source ID 24, line 71, chars 2070-2112, hits: 0) +- IC 13538 -> Item 933 + - Refers to item: Statement (location: source ID 24, line 71, chars 2070-2112, hits: 0) +- IC 13540 -> Item 934 + - Refers to item: Statement (location: source ID 24, line 71, chars 2087-2112, hits: 0) +- IC 13562 -> Item 935 + - Refers to item: Line (location: source ID 24, line 72, chars 2126-2153, hits: 0) +- IC 13562 -> Item 936 + - Refers to item: Statement (location: source ID 24, line 72, chars 2126-2153, hits: 0) +- IC 19641 -> Item 937 + - Refers to item: Function "_popcount" (location: source ID 24, line 79, chars 2232-2393, hits: 0) +- IC 19645 -> Item 940 + - Refers to item: Statement (location: source ID 24, line 81, chars 2349-2355, hits: 0) +- IC 19661 -> Item 941 + - Refers to item: Statement (location: source ID 24, line 81, chars 2357-2364, hits: 0) +- IC 19653 -> Item 942 + - Refers to item: Statement (location: source ID 24, line 81, chars 2366-2376, hits: 0) +- IC 1880 -> Item 91 + - Refers to item: Function "permit" (location: source ID 17, line 46, chars 1738-1899, hits: 0) +- IC 4991 -> Item 92 + - Refers to item: Line (location: source ID 17, line 47, chars 1852-1892, hits: 0) +- IC 4991 -> Item 93 + - Refers to item: Statement (location: source ID 17, line 47, chars 1852-1892, hits: 0) +- IC 1047 -> Item 94 + - Refers to item: Function "nonces" (location: source ID 17, line 55, chars 2107-2212, hits: 0) +- IC 3090 -> Item 95 + - Refers to item: Line (location: source ID 17, line 56, chars 2182-2205, hits: 0) +- IC 3090 -> Item 96 + - Refers to item: Statement (location: source ID 17, line 56, chars 2182-2205, hits: 0) +- IC 1424 -> Item 97 + - Refers to item: Function "DOMAIN_SEPARATOR" (location: source ID 17, line 63, chars 2395-2508, hits: 0) +- IC 4150 -> Item 98 + - Refers to item: Line (location: source ID 17, line 64, chars 2474-2501, hits: 0) +- IC 4150 -> Item 99 + - Refers to item: Statement (location: source ID 17, line 64, chars 2474-2501, hits: 0) +- IC 6972 -> Item 100 + - Refers to item: Function "supportsInterface" (location: source ID 17, line 72, chars 2819-3076, hits: 0) +- IC 6975 -> Item 101 + - Refers to item: Line (location: source ID 17, line 73, chars 2943-3069, hits: 0) +- IC 6975 -> Item 102 + - Refers to item: Statement (location: source ID 17, line 73, chars 2943-3069, hits: 0) +- IC 20295 -> Item 103 + - Refers to item: Function "_transfer" (location: source ID 17, line 84, chars 3419-3600, hits: 0) +- IC 20296 -> Item 104 + - Refers to item: Line (location: source ID 17, line 85, chars 3531-3549, hits: 0) +- IC 20296 -> Item 105 + - Refers to item: Statement (location: source ID 17, line 85, chars 3531-3549, hits: 0) +- IC 20337 -> Item 106 + - Refers to item: Line (location: source ID 17, line 86, chars 3559-3593, hits: 0) +- IC 20337 -> Item 107 + - Refers to item: Statement (location: source ID 17, line 86, chars 3559-3593, hits: 0) +- IC 10270 -> Item 108 + - Refers to item: Function "_permit" (location: source ID 17, line 89, chars 3606-4760, hits: 0) +- IC 10271 -> Item 109 + - Refers to item: Line (location: source ID 17, line 90, chars 3724-3750, hits: 0) +- IC 10271 -> Item 110 + - Refers to item: Statement (location: source ID 17, line 90, chars 3724-3750, hits: 0) +- IC 10279 -> Item 111 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 17, line 90, chars 3720-3799, hits: 0) +- IC 10328 -> Item 112 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 17, line 90, chars 3720-3799, hits: 0) +- IC 10279 -> Item 113 + - Refers to item: Line (location: source ID 17, line 91, chars 3766-3788, hits: 0) +- IC 10279 -> Item 114 + - Refers to item: Statement (location: source ID 17, line 91, chars 3766-3788, hits: 0) +- IC 10329 -> Item 115 + - Refers to item: Line (location: source ID 17, line 94, chars 3809-3872, hits: 0) +- IC 10329 -> Item 116 + - Refers to item: Statement (location: source ID 17, line 94, chars 3809-3872, hits: 0) +- IC 10331 -> Item 117 + - Refers to item: Statement (location: source ID 17, line 94, chars 3826-3872, hits: 0) +- IC 10344 -> Item 118 + - Refers to item: Line (location: source ID 17, line 97, chars 3941-3996, hits: 0) +- IC 10344 -> Item 119 + - Refers to item: Statement (location: source ID 17, line 97, chars 3941-3996, hits: 0) +- IC 10368 -> Item 120 + - Refers to item: Branch (branch: 1, path: 0) (location: source ID 17, line 97, chars 3937-4069, hits: 0) +- IC 10383 -> Item 121 + - Refers to item: Branch (branch: 1, path: 1) (location: source ID 17, line 97, chars 3937-4069, hits: 0) +- IC 10368 -> Item 122 + - Refers to item: Line (location: source ID 17, line 98, chars 4012-4038, hits: 0) +- IC 10368 -> Item 123 + - Refers to item: Statement (location: source ID 17, line 98, chars 4012-4038, hits: 0) +- IC 10378 -> Item 124 + - Refers to item: Line (location: source ID 17, line 99, chars 4052-4059, hits: 0) +- IC 10378 -> Item 125 + - Refers to item: Statement (location: source ID 17, line 99, chars 4052-4059, hits: 0) +- IC 10384 -> Item 126 + - Refers to item: Line (location: source ID 17, line 102, chars 4079-4102, hits: 0) +- IC 10384 -> Item 127 + - Refers to item: Statement (location: source ID 17, line 102, chars 4079-4102, hits: 0) +- IC 10386 -> Item 128 + - Refers to item: Line (location: source ID 17, line 105, chars 4153-4169, hits: 0) +- IC 10386 -> Item 129 + - Refers to item: Statement (location: source ID 17, line 105, chars 4153-4169, hits: 0) +- IC 10395 -> Item 130 + - Refers to item: Branch (branch: 2, path: 0) (location: source ID 17, line 105, chars 4149-4399, hits: 0) +- IC 10454 -> Item 131 + - Refers to item: Branch (branch: 2, path: 1) (location: source ID 17, line 105, chars 4149-4399, hits: 0) +- IC 10395 -> Item 132 + - Refers to item: Line (location: source ID 17, line 107, chars 4212-4388, hits: 0) +- IC 10395 -> Item 133 + - Refers to item: Statement (location: source ID 17, line 107, chars 4212-4388, hits: 0) +- IC 10455 -> Item 134 + - Refers to item: Line (location: source ID 17, line 112, chars 4409-4425, hits: 0) +- IC 10455 -> Item 135 + - Refers to item: Statement (location: source ID 17, line 112, chars 4409-4425, hits: 0) +- IC 10464 -> Item 136 + - Refers to item: Branch (branch: 3, path: 0) (location: source ID 17, line 112, chars 4405-4529, hits: 0) +- IC 10480 -> Item 137 + - Refers to item: Branch (branch: 3, path: 1) (location: source ID 17, line 112, chars 4405-4529, hits: 0) +- IC 10464 -> Item 138 + - Refers to item: Line (location: source ID 17, line 114, chars 4474-4518, hits: 0) +- IC 10464 -> Item 139 + - Refers to item: Statement (location: source ID 17, line 114, chars 4474-4518, hits: 0) +- IC 10481 -> Item 140 + - Refers to item: Line (location: source ID 17, line 116, chars 4549-4574, hits: 0) +- IC 10481 -> Item 141 + - Refers to item: Statement (location: source ID 17, line 116, chars 4549-4574, hits: 0) +- IC 10532 -> Item 142 + - Refers to item: Line (location: source ID 17, line 119, chars 4599-4645, hits: 0) +- IC 10532 -> Item 143 + - Refers to item: Statement (location: source ID 17, line 119, chars 4599-4645, hits: 0) +- IC 10547 -> Item 144 + - Refers to item: Branch (branch: 4, path: 0) (location: source ID 17, line 119, chars 4595-4698, hits: 0) +- IC 10561 -> Item 145 + - Refers to item: Branch (branch: 4, path: 1) (location: source ID 17, line 119, chars 4595-4698, hits: 0) +- IC 10547 -> Item 146 + - Refers to item: Line (location: source ID 17, line 120, chars 4661-4687, hits: 0) +- IC 10547 -> Item 147 + - Refers to item: Statement (location: source ID 17, line 120, chars 4661-4687, hits: 0) +- IC 10562 -> Item 148 + - Refers to item: Line (location: source ID 17, line 122, chars 4718-4743, hits: 0) +- IC 10562 -> Item 149 + - Refers to item: Statement (location: source ID 17, line 122, chars 4718-4743, hits: 0) +- IC 17195 -> Item 150 + - Refers to item: Function "_buildPermitDigest" (location: source ID 17, line 133, chars 5176-5415, hits: 0) +- IC 17198 -> Item 151 + - Refers to item: Line (location: source ID 17, line 134, chars 5298-5408, hits: 0) +- IC 17198 -> Item 152 + - Refers to item: Statement (location: source ID 17, line 134, chars 5298-5408, hits: 0) +- IC 18059 -> Item 153 + - Refers to item: Function "_isValidEOASignature" (location: source ID 17, line 143, chars 5726-5927, hits: 0) +- IC 18062 -> Item 154 + - Refers to item: Line (location: source ID 17, line 144, chars 5836-5920, hits: 0) +- IC 18062 -> Item 155 + - Refers to item: Statement (location: source ID 17, line 144, chars 5836-5920, hits: 0) +- IC 17316 -> Item 156 + - Refers to item: Function "_isValidERC1271Signature" (location: source ID 17, line 154, chars 6300-6825, hits: 0) +- IC 17319 -> Item 157 + - Refers to item: Line (location: source ID 17, line 155, chars 6423-6571, hits: 0) +- IC 17319 -> Item 158 + - Refers to item: Statement (location: source ID 17, line 155, chars 6423-6571, hits: 0) +- IC 17322 -> Item 159 + - Refers to item: Statement (location: source ID 17, line 155, chars 6458-6571, hits: 0) +- IC 17547 -> Item 160 + - Refers to item: Line (location: source ID 17, line 159, chars 6586-6613, hits: 0) +- IC 17547 -> Item 161 + - Refers to item: Statement (location: source ID 17, line 159, chars 6586-6613, hits: 0) +- IC 17666 -> Item 162 + - Refers to item: Branch (branch: 5, path: 0) (location: source ID 17, line 159, chars 6582-6796, hits: 0) +- IC 17677 -> Item 163 + - Refers to item: Branch (branch: 5, path: 1) (location: source ID 17, line 159, chars 6582-6796, hits: 0) +- IC 17566 -> Item 164 + - Refers to item: Line (location: source ID 17, line 160, chars 6629-6674, hits: 0) +- IC 17566 -> Item 165 + - Refers to item: Statement (location: source ID 17, line 160, chars 6629-6674, hits: 0) +- IC 17568 -> Item 166 + - Refers to item: Statement (location: source ID 17, line 160, chars 6649-6674, hits: 0) +- IC 17590 -> Item 167 + - Refers to item: Line (location: source ID 17, line 161, chars 6692-6740, hits: 0) +- IC 17590 -> Item 168 + - Refers to item: Statement (location: source ID 17, line 161, chars 6692-6740, hits: 0) +- IC 17666 -> Item 169 + - Refers to item: Branch (branch: 6, path: 0) (location: source ID 17, line 161, chars 6688-6786, hits: 0) +- IC 17677 -> Item 170 + - Refers to item: Branch (branch: 6, path: 1) (location: source ID 17, line 161, chars 6688-6786, hits: 0) +- IC 17666 -> Item 171 + - Refers to item: Line (location: source ID 17, line 162, chars 6760-6771, hits: 0) +- IC 17666 -> Item 172 + - Refers to item: Statement (location: source ID 17, line 162, chars 6760-6771, hits: 0) +- IC 17680 -> Item 173 + - Refers to item: Line (location: source ID 17, line 166, chars 6806-6818, hits: 0) +- IC 17680 -> Item 174 + - Refers to item: Statement (location: source ID 17, line 166, chars 6806-6818, hits: 0) +- IC 2562 -> Item 1523 + - Refers to item: Function "setOperatorAllowlistRegistry" (location: source ID 2, line 94, chars 3760-3928, hits: 0) +- IC 6741 -> Item 1524 + - Refers to item: Line (location: source ID 2, line 95, chars 3872-3921, hits: 0) +- IC 6741 -> Item 1525 + - Refers to item: Statement (location: source ID 2, line 95, chars 3872-3921, hits: 0) +- IC 26509 -> Item 1526 + - Refers to item: Function "supportsInterface" (location: source ID 2, line 102, chars 4071-4222, hits: 0) +- IC 26512 -> Item 1527 + - Refers to item: Line (location: source ID 2, line 103, chars 4172-4215, hits: 0) +- IC 26512 -> Item 1528 + - Refers to item: Statement (location: source ID 2, line 103, chars 4172-4215, hits: 0) +- IC 12322 -> Item 1529 + - Refers to item: Function "_setOperatorAllowlistRegistry" (location: source ID 2, line 110, chars 4419-4842, hits: 0) +- IC 12323 -> Item 1530 + - Refers to item: Line (location: source ID 2, line 111, chars 4509-4593, hits: 0) +- IC 12323 -> Item 1531 + - Refers to item: Statement (location: source ID 2, line 111, chars 4509-4593, hits: 0) +- IC 12481 -> Item 1532 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 2, line 111, chars 4505-4672, hits: 0) +- IC 12530 -> Item 1533 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 2, line 111, chars 4505-4672, hits: 0) +- IC 12481 -> Item 1534 + - Refers to item: Line (location: source ID 2, line 112, chars 4609-4661, hits: 0) +- IC 12481 -> Item 1535 + - Refers to item: Statement (location: source ID 2, line 112, chars 4609-4661, hits: 0) +- IC 12531 -> Item 1536 + - Refers to item: Line (location: source ID 2, line 115, chars 4682-4767, hits: 0) +- IC 12531 -> Item 1537 + - Refers to item: Statement (location: source ID 2, line 115, chars 4682-4767, hits: 0) +- IC 12622 -> Item 1538 + - Refers to item: Line (location: source ID 2, line 116, chars 4777-4835, hits: 0) +- IC 12622 -> Item 1539 + - Refers to item: Statement (location: source ID 2, line 116, chars 4777-4835, hits: 0) +- IC 2534 -> Item 990 + - Refers to item: Function "burnBatch" (location: source ID 16, line 60, chars 1977-2135, hits: 0) +- IC 6656 -> Item 991 + - Refers to item: Line (location: source ID 16, line 61, chars 2049-2059, hits: 0) +- IC 6656 -> Item 992 + - Refers to item: Statement (location: source ID 16, line 61, chars 2049-2059, hits: 0) +- IC 6659 -> Item 993 + - Refers to item: Statement (location: source ID 16, line 61, chars 2061-2080, hits: 0) +- IC 6704 -> Item 994 + - Refers to item: Statement (location: source ID 16, line 61, chars 2082-2085, hits: 0) +- IC 6670 -> Item 995 + - Refers to item: Line (location: source ID 16, line 62, chars 2101-2118, hits: 0) +- IC 6670 -> Item 996 + - Refers to item: Statement (location: source ID 16, line 62, chars 2101-2118, hits: 0) +- IC 1566 -> Item 997 + - Refers to item: Function "burn" (location: source ID 16, line 69, chars 2246-2455, hits: 0) +- IC 4442 -> Item 998 + - Refers to item: Line (location: source ID 16, line 70, chars 2306-2348, hits: 0) +- IC 4442 -> Item 999 + - Refers to item: Statement (location: source ID 16, line 70, chars 2306-2348, hits: 0) +- IC 4463 -> Item 1000 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 16, line 70, chars 2302-2425, hits: 0) +- IC 4523 -> Item 1001 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 16, line 70, chars 2302-2425, hits: 0) +- IC 4463 -> Item 1002 + - Refers to item: Line (location: source ID 16, line 71, chars 2364-2414, hits: 0) +- IC 4463 -> Item 1003 + - Refers to item: Statement (location: source ID 16, line 71, chars 2364-2414, hits: 0) +- IC 4524 -> Item 1004 + - Refers to item: Line (location: source ID 16, line 73, chars 2434-2448, hits: 0) +- IC 4524 -> Item 1005 + - Refers to item: Statement (location: source ID 16, line 73, chars 2434-2448, hits: 0) +- IC 2182 -> Item 1006 + - Refers to item: Function "safeBurn" (location: source ID 16, line 80, chars 2656-2928, hits: 0) +- IC 5567 -> Item 1007 + - Refers to item: Line (location: source ID 16, line 81, chars 2731-2770, hits: 0) +- IC 5567 -> Item 1008 + - Refers to item: Statement (location: source ID 16, line 81, chars 2731-2770, hits: 0) +- IC 5569 -> Item 1009 + - Refers to item: Statement (location: source ID 16, line 81, chars 2754-2770, hits: 0) +- IC 5580 -> Item 1010 + - Refers to item: Line (location: source ID 16, line 82, chars 2784-2805, hits: 0) +- IC 5580 -> Item 1011 + - Refers to item: Statement (location: source ID 16, line 82, chars 2784-2805, hits: 0) +- IC 5631 -> Item 1012 + - Refers to item: Branch (branch: 1, path: 0) (location: source ID 16, line 82, chars 2780-2898, hits: 0) +- IC 5693 -> Item 1013 + - Refers to item: Branch (branch: 1, path: 1) (location: source ID 16, line 82, chars 2780-2898, hits: 0) +- IC 5631 -> Item 1014 + - Refers to item: Line (location: source ID 16, line 83, chars 2821-2887, hits: 0) +- IC 5631 -> Item 1015 + - Refers to item: Statement (location: source ID 16, line 83, chars 2821-2887, hits: 0) +- IC 5694 -> Item 1016 + - Refers to item: Line (location: source ID 16, line 86, chars 2908-2921, hits: 0) +- IC 5694 -> Item 1017 + - Refers to item: Statement (location: source ID 16, line 86, chars 2908-2921, hits: 0) +- IC 1364 -> Item 1018 + - Refers to item: Function "mintBatchByQuantityThreshold" (location: source ID 16, line 92, chars 3053-3163, hits: 0) +- IC 3901 -> Item 1019 + - Refers to item: Line (location: source ID 16, line 93, chars 3141-3156, hits: 0) +- IC 3901 -> Item 1020 + - Refers to item: Statement (location: source ID 16, line 93, chars 3141-3156, hits: 0) +- IC 1622 -> Item 1021 + - Refers to item: Function "exists" (location: source ID 16, line 99, chars 3300-3408, hits: 0) +- IC 4597 -> Item 1022 + - Refers to item: Line (location: source ID 16, line 100, chars 3378-3401, hits: 0) +- IC 4597 -> Item 1023 + - Refers to item: Statement (location: source ID 16, line 100, chars 3378-3401, hits: 0) +- IC 1832 -> Item 1024 + - Refers to item: Function "balanceOf" (location: source ID 16, line 106, chars 3592-3765, hits: 0) +- IC 4956 -> Item 1025 + - Refers to item: Line (location: source ID 16, line 107, chars 3699-3758, hits: 0) +- IC 4956 -> Item 1026 + - Refers to item: Statement (location: source ID 16, line 107, chars 3699-3758, hits: 0) +- IC 1095 -> Item 1027 + - Refers to item: Function "totalSupply" (location: source ID 16, line 113, chars 3948-4105, hits: 0) +- IC 3119 -> Item 1028 + - Refers to item: Line (location: source ID 16, line 114, chars 4039-4098, hits: 0) +- IC 3119 -> Item 1029 + - Refers to item: Statement (location: source ID 16, line 114, chars 4039-4098, hits: 0) +- IC 1726 -> Item 1030 + - Refers to item: Function "ownerOf" (location: source ID 16, line 118, chars 4163-4423, hits: 0) +- IC 4705 -> Item 1031 + - Refers to item: Line (location: source ID 16, line 119, chars 4277-4317, hits: 0) +- IC 4705 -> Item 1032 + - Refers to item: Statement (location: source ID 16, line 119, chars 4277-4317, hits: 0) +- IC 4720 -> Item 1033 + - Refers to item: Branch (branch: 2, path: 0) (location: source ID 16, line 119, chars 4273-4374, hits: 0) +- IC 4735 -> Item 1034 + - Refers to item: Branch (branch: 2, path: 1) (location: source ID 16, line 119, chars 4273-4374, hits: 0) +- IC 4720 -> Item 1035 + - Refers to item: Line (location: source ID 16, line 120, chars 4333-4363, hits: 0) +- IC 4720 -> Item 1036 + - Refers to item: Statement (location: source ID 16, line 120, chars 4333-4363, hits: 0) +- IC 4736 -> Item 1037 + - Refers to item: Line (location: source ID 16, line 122, chars 4383-4416, hits: 0) +- IC 4736 -> Item 1038 + - Refers to item: Statement (location: source ID 16, line 122, chars 4383-4416, hits: 0) +- IC 2352 -> Item 1039 + - Refers to item: Function "tokenURI" (location: source ID 16, line 132, chars 4648-4803, hits: 0) +- IC 6478 -> Item 1040 + - Refers to item: Line (location: source ID 16, line 133, chars 4765-4796, hits: 0) +- IC 6478 -> Item 1041 + - Refers to item: Statement (location: source ID 16, line 133, chars 4765-4796, hits: 0) +- IC 941 -> Item 1042 + - Refers to item: Function "name" (location: source ID 16, line 139, chars 4851-4976, hits: 0) +- IC 2980 -> Item 1043 + - Refers to item: Line (location: source ID 16, line 140, chars 4949-4969, hits: 0) +- IC 2980 -> Item 1044 + - Refers to item: Statement (location: source ID 16, line 140, chars 4949-4969, hits: 0) +- IC 2124 -> Item 1045 + - Refers to item: Function "symbol" (location: source ID 16, line 146, chars 5024-5153, hits: 0) +- IC 5497 -> Item 1046 + - Refers to item: Line (location: source ID 16, line 147, chars 5124-5146, hits: 0) +- IC 5497 -> Item 1047 + - Refers to item: Statement (location: source ID 16, line 147, chars 5124-5146, hits: 0) +- IC 12851 -> Item 1048 + - Refers to item: Function "supportsInterface" (location: source ID 16, line 153, chars 5201-5372, hits: 0) +- IC 12854 -> Item 1049 + - Refers to item: Line (location: source ID 16, line 154, chars 5321-5365, hits: 0) +- IC 12854 -> Item 1050 + - Refers to item: Statement (location: source ID 16, line 154, chars 5321-5365, hits: 0) +- IC 11888 -> Item 1051 + - Refers to item: Function "setApprovalForAll" (location: source ID 16, line 160, chars 5420-5591, hits: 0) +- IC 11889 -> Item 1052 + - Refers to item: Line (location: source ID 16, line 161, chars 5533-5584, hits: 0) +- IC 11889 -> Item 1053 + - Refers to item: Statement (location: source ID 16, line 161, chars 5533-5584, hits: 0) +- IC 1538 -> Item 1054 + - Refers to item: Function "safeTransferFrom" (location: source ID 16, line 167, chars 5639-5807, hits: 0) +- IC 4410 -> Item 1055 + - Refers to item: Line (location: source ID 16, line 168, chars 5761-5800, hits: 0) +- IC 4410 -> Item 1056 + - Refers to item: Statement (location: source ID 16, line 168, chars 5761-5800, hits: 0) +- IC 2324 -> Item 1057 + - Refers to item: Function "safeTransferFrom" (location: source ID 16, line 172, chars 5861-6243, hits: 0) +- IC 6425 -> Item 1058 + - Refers to item: Line (location: source ID 16, line 178, chars 6045-6085, hits: 0) +- IC 6425 -> Item 1059 + - Refers to item: Statement (location: source ID 16, line 178, chars 6045-6085, hits: 0) +- IC 6440 -> Item 1060 + - Refers to item: Branch (branch: 3, path: 0) (location: source ID 16, line 178, chars 6041-6168, hits: 0) +- IC 6456 -> Item 1061 + - Refers to item: Branch (branch: 3, path: 1) (location: source ID 16, line 178, chars 6041-6168, hits: 0) +- IC 6440 -> Item 1062 + - Refers to item: Line (location: source ID 16, line 179, chars 6101-6157, hits: 0) +- IC 6440 -> Item 1063 + - Refers to item: Statement (location: source ID 16, line 179, chars 6101-6157, hits: 0) +- IC 6457 -> Item 1064 + - Refers to item: Line (location: source ID 16, line 181, chars 6177-6236, hits: 0) +- IC 6457 -> Item 1065 + - Refers to item: Statement (location: source ID 16, line 181, chars 6177-6236, hits: 0) +- IC 2620 -> Item 1066 + - Refers to item: Function "isApprovedForAll" (location: source ID 16, line 185, chars 6297-6505, hits: 0) +- IC 6898 -> Item 1067 + - Refers to item: Line (location: source ID 16, line 189, chars 6451-6498, hits: 0) +- IC 6898 -> Item 1068 + - Refers to item: Statement (location: source ID 16, line 189, chars 6451-6498, hits: 0) +- IC 971 -> Item 1069 + - Refers to item: Function "getApproved" (location: source ID 16, line 193, chars 6559-6831, hits: 0) +- IC 2995 -> Item 1070 + - Refers to item: Line (location: source ID 16, line 194, chars 6677-6717, hits: 0) +- IC 2995 -> Item 1071 + - Refers to item: Statement (location: source ID 16, line 194, chars 6677-6717, hits: 0) +- IC 3010 -> Item 1072 + - Refers to item: Branch (branch: 4, path: 0) (location: source ID 16, line 194, chars 6673-6778, hits: 0) +- IC 3025 -> Item 1073 + - Refers to item: Branch (branch: 4, path: 1) (location: source ID 16, line 194, chars 6673-6778, hits: 0) +- IC 3010 -> Item 1074 + - Refers to item: Line (location: source ID 16, line 195, chars 6733-6767, hits: 0) +- IC 3010 -> Item 1075 + - Refers to item: Statement (location: source ID 16, line 195, chars 6733-6767, hits: 0) +- IC 3026 -> Item 1076 + - Refers to item: Line (location: source ID 16, line 197, chars 6787-6824, hits: 0) +- IC 3026 -> Item 1077 + - Refers to item: Statement (location: source ID 16, line 197, chars 6787-6824, hits: 0) +- IC 1019 -> Item 1078 + - Refers to item: Function "approve" (location: source ID 16, line 201, chars 6885-7142, hits: 0) +- IC 3043 -> Item 1079 + - Refers to item: Line (location: source ID 16, line 202, chars 6988-7028, hits: 0) +- IC 3043 -> Item 1080 + - Refers to item: Statement (location: source ID 16, line 202, chars 6988-7028, hits: 0) +- IC 3058 -> Item 1081 + - Refers to item: Branch (branch: 5, path: 0) (location: source ID 16, line 202, chars 6984-7089, hits: 0) +- IC 3072 -> Item 1082 + - Refers to item: Branch (branch: 5, path: 1) (location: source ID 16, line 202, chars 6984-7089, hits: 0) +- IC 3058 -> Item 1083 + - Refers to item: Line (location: source ID 16, line 203, chars 7044-7078, hits: 0) +- IC 3058 -> Item 1084 + - Refers to item: Statement (location: source ID 16, line 203, chars 7044-7078, hits: 0) +- IC 3073 -> Item 1085 + - Refers to item: Line (location: source ID 16, line 205, chars 7098-7135, hits: 0) +- IC 3073 -> Item 1086 + - Refers to item: Statement (location: source ID 16, line 205, chars 7098-7135, hits: 0) +- IC 1153 -> Item 1087 + - Refers to item: Function "transferFrom" (location: source ID 16, line 209, chars 7196-7494, hits: 0) +- IC 3202 -> Item 1088 + - Refers to item: Line (location: source ID 16, line 210, chars 7318-7358, hits: 0) +- IC 3202 -> Item 1089 + - Refers to item: Statement (location: source ID 16, line 210, chars 7318-7358, hits: 0) +- IC 3217 -> Item 1090 + - Refers to item: Branch (branch: 6, path: 0) (location: source ID 16, line 210, chars 7314-7430, hits: 0) +- IC 3232 -> Item 1091 + - Refers to item: Branch (branch: 6, path: 1) (location: source ID 16, line 210, chars 7314-7430, hits: 0) +- IC 3217 -> Item 1092 + - Refers to item: Line (location: source ID 16, line 211, chars 7374-7419, hits: 0) +- IC 3217 -> Item 1093 + - Refers to item: Statement (location: source ID 16, line 211, chars 7374-7419, hits: 0) +- IC 3233 -> Item 1094 + - Refers to item: Line (location: source ID 16, line 213, chars 7439-7487, hits: 0) +- IC 3233 -> Item 1095 + - Refers to item: Statement (location: source ID 16, line 213, chars 7439-7487, hits: 0) +- IC 12837 -> Item 1096 + - Refers to item: Function "_mintByQuantity" (location: source ID 16, line 220, chars 7687-7797, hits: 0) +- IC 12838 -> Item 1097 + - Refers to item: Line (location: source ID 16, line 221, chars 7761-7790, hits: 0) +- IC 12838 -> Item 1098 + - Refers to item: Statement (location: source ID 16, line 221, chars 7761-7790, hits: 0) +- IC 9660 -> Item 1099 + - Refers to item: Function "_safeMintByQuantity" (location: source ID 16, line 228, chars 7995-8113, hits: 0) +- IC 9661 -> Item 1100 + - Refers to item: Line (location: source ID 16, line 229, chars 8073-8106, hits: 0) +- IC 9661 -> Item 1101 + - Refers to item: Statement (location: source ID 16, line 229, chars 8073-8106, hits: 0) +- IC 12223 -> Item 1102 + - Refers to item: Function "_mintBatchByQuantity" (location: source ID 16, line 235, chars 8272-8488, hits: 0) +- IC 12224 -> Item 1103 + - Refers to item: Line (location: source ID 16, line 236, chars 8349-8359, hits: 0) +- IC 12224 -> Item 1104 + - Refers to item: Statement (location: source ID 16, line 236, chars 8349-8359, hits: 0) +- IC 12227 -> Item 1105 + - Refers to item: Statement (location: source ID 16, line 236, chars 8361-8377, hits: 0) +- IC 12299 -> Item 1106 + - Refers to item: Statement (location: source ID 16, line 236, chars 8379-8382, hits: 0) +- IC 12238 -> Item 1107 + - Refers to item: Line (location: source ID 16, line 237, chars 8398-8424, hits: 0) +- IC 12238 -> Item 1108 + - Refers to item: Statement (location: source ID 16, line 237, chars 8398-8424, hits: 0) +- IC 12266 -> Item 1109 + - Refers to item: Line (location: source ID 16, line 238, chars 8438-8471, hits: 0) +- IC 12266 -> Item 1110 + - Refers to item: Statement (location: source ID 16, line 238, chars 8438-8471, hits: 0) +- IC 8378 -> Item 1111 + - Refers to item: Function "_safeMintBatchByQuantity" (location: source ID 16, line 245, chars 8652-8876, hits: 0) +- IC 8379 -> Item 1112 + - Refers to item: Line (location: source ID 16, line 246, chars 8733-8743, hits: 0) +- IC 8379 -> Item 1113 + - Refers to item: Statement (location: source ID 16, line 246, chars 8733-8743, hits: 0) +- IC 8382 -> Item 1114 + - Refers to item: Statement (location: source ID 16, line 246, chars 8745-8761, hits: 0) +- IC 8454 -> Item 1115 + - Refers to item: Statement (location: source ID 16, line 246, chars 8763-8766, hits: 0) +- IC 8393 -> Item 1116 + - Refers to item: Line (location: source ID 16, line 247, chars 8782-8808, hits: 0) +- IC 8393 -> Item 1117 + - Refers to item: Statement (location: source ID 16, line 247, chars 8782-8808, hits: 0) +- IC 8421 -> Item 1118 + - Refers to item: Line (location: source ID 16, line 248, chars 8822-8859, hits: 0) +- IC 8421 -> Item 1119 + - Refers to item: Statement (location: source ID 16, line 248, chars 8822-8859, hits: 0) +- IC 8772 -> Item 1120 + - Refers to item: Function "_mintByID" (location: source ID 16, line 257, chars 9087-9471, hits: 0) +- IC 8773 -> Item 1121 + - Refers to item: Line (location: source ID 16, line 258, chars 9158-9199, hits: 0) +- IC 8773 -> Item 1122 + - Refers to item: Statement (location: source ID 16, line 258, chars 9158-9199, hits: 0) +- IC 8787 -> Item 1123 + - Refers to item: Branch (branch: 7, path: 0) (location: source ID 16, line 258, chars 9154-9274, hits: 0) +- IC 8847 -> Item 1124 + - Refers to item: Branch (branch: 7, path: 1) (location: source ID 16, line 258, chars 9154-9274, hits: 0) +- IC 8787 -> Item 1125 + - Refers to item: Line (location: source ID 16, line 259, chars 9215-9263, hits: 0) +- IC 8787 -> Item 1126 + - Refers to item: Statement (location: source ID 16, line 259, chars 9215-9263, hits: 0) +- IC 8848 -> Item 1127 + - Refers to item: Line (location: source ID 16, line 262, chars 9288-9314, hits: 0) +- IC 8848 -> Item 1128 + - Refers to item: Statement (location: source ID 16, line 262, chars 9288-9314, hits: 0) +- IC 8873 -> Item 1129 + - Refers to item: Branch (branch: 8, path: 0) (location: source ID 16, line 262, chars 9284-9391, hits: 0) +- IC 8933 -> Item 1130 + - Refers to item: Branch (branch: 8, path: 1) (location: source ID 16, line 262, chars 9284-9391, hits: 0) +- IC 8873 -> Item 1131 + - Refers to item: Line (location: source ID 16, line 263, chars 9330-9380, hits: 0) +- IC 8873 -> Item 1132 + - Refers to item: Statement (location: source ID 16, line 263, chars 9330-9380, hits: 0) +- IC 8934 -> Item 1133 + - Refers to item: Line (location: source ID 16, line 266, chars 9409-9429, hits: 0) +- IC 8934 -> Item 1134 + - Refers to item: Statement (location: source ID 16, line 266, chars 9409-9429, hits: 0) +- IC 8958 -> Item 1135 + - Refers to item: Line (location: source ID 16, line 267, chars 9439-9464, hits: 0) +- IC 8958 -> Item 1136 + - Refers to item: Statement (location: source ID 16, line 267, chars 9439-9464, hits: 0) +- IC 11689 -> Item 1137 + - Refers to item: Function "_safeMintByID" (location: source ID 16, line 274, chars 9676-10064, hits: 0) +- IC 11690 -> Item 1138 + - Refers to item: Line (location: source ID 16, line 275, chars 9751-9792, hits: 0) +- IC 11690 -> Item 1139 + - Refers to item: Statement (location: source ID 16, line 275, chars 9751-9792, hits: 0) +- IC 11704 -> Item 1140 + - Refers to item: Branch (branch: 9, path: 0) (location: source ID 16, line 275, chars 9747-9867, hits: 0) +- IC 11764 -> Item 1141 + - Refers to item: Branch (branch: 9, path: 1) (location: source ID 16, line 275, chars 9747-9867, hits: 0) +- IC 11704 -> Item 1142 + - Refers to item: Line (location: source ID 16, line 276, chars 9808-9856, hits: 0) +- IC 11704 -> Item 1143 + - Refers to item: Statement (location: source ID 16, line 276, chars 9808-9856, hits: 0) +- IC 11765 -> Item 1144 + - Refers to item: Line (location: source ID 16, line 279, chars 9881-9907, hits: 0) +- IC 11765 -> Item 1145 + - Refers to item: Statement (location: source ID 16, line 279, chars 9881-9907, hits: 0) +- IC 11790 -> Item 1146 + - Refers to item: Branch (branch: 10, path: 0) (location: source ID 16, line 279, chars 9877-9984, hits: 0) +- IC 11850 -> Item 1147 + - Refers to item: Branch (branch: 10, path: 1) (location: source ID 16, line 279, chars 9877-9984, hits: 0) +- IC 11790 -> Item 1148 + - Refers to item: Line (location: source ID 16, line 280, chars 9923-9973, hits: 0) +- IC 11790 -> Item 1149 + - Refers to item: Statement (location: source ID 16, line 280, chars 9923-9973, hits: 0) +- IC 11851 -> Item 1150 + - Refers to item: Line (location: source ID 16, line 283, chars 9994-10014, hits: 0) +- IC 11851 -> Item 1151 + - Refers to item: Statement (location: source ID 16, line 283, chars 9994-10014, hits: 0) +- IC 11875 -> Item 1152 + - Refers to item: Line (location: source ID 16, line 284, chars 10024-10053, hits: 0) +- IC 11875 -> Item 1153 + - Refers to item: Statement (location: source ID 16, line 284, chars 10024-10053, hits: 0) +- IC 18294 -> Item 1154 + - Refers to item: Function "_mintBatchByID" (location: source ID 16, line 291, chars 10252-10436, hits: 0) +- IC 18295 -> Item 1155 + - Refers to item: Line (location: source ID 16, line 292, chars 10341-10351, hits: 0) +- IC 18295 -> Item 1156 + - Refers to item: Statement (location: source ID 16, line 292, chars 10341-10351, hits: 0) +- IC 18298 -> Item 1157 + - Refers to item: Statement (location: source ID 16, line 292, chars 10353-10372, hits: 0) +- IC 18344 -> Item 1158 + - Refers to item: Statement (location: source ID 16, line 292, chars 10374-10377, hits: 0) +- IC 18309 -> Item 1159 + - Refers to item: Line (location: source ID 16, line 293, chars 10393-10419, hits: 0) +- IC 18309 -> Item 1160 + - Refers to item: Statement (location: source ID 16, line 293, chars 10393-10419, hits: 0) +- IC 13770 -> Item 1161 + - Refers to item: Function "_safeMintBatchByID" (location: source ID 16, line 301, chars 10630-10822, hits: 0) +- IC 13771 -> Item 1162 + - Refers to item: Line (location: source ID 16, line 302, chars 10723-10733, hits: 0) +- IC 13771 -> Item 1163 + - Refers to item: Statement (location: source ID 16, line 302, chars 10723-10733, hits: 0) +- IC 13774 -> Item 1164 + - Refers to item: Statement (location: source ID 16, line 302, chars 10735-10754, hits: 0) +- IC 13820 -> Item 1165 + - Refers to item: Statement (location: source ID 16, line 302, chars 10756-10759, hits: 0) +- IC 13785 -> Item 1166 + - Refers to item: Line (location: source ID 16, line 303, chars 10775-10805, hits: 0) +- IC 13785 -> Item 1167 + - Refers to item: Statement (location: source ID 16, line 303, chars 10775-10805, hits: 0) +- IC 11567 -> Item 1168 + - Refers to item: Function "_mintBatchByIDToMultiple" (location: source ID 16, line 310, chars 10970-11193, hits: 0) +- IC 11568 -> Item 1169 + - Refers to item: Line (location: source ID 16, line 311, chars 11053-11063, hits: 0) +- IC 11568 -> Item 1170 + - Refers to item: Statement (location: source ID 16, line 311, chars 11053-11063, hits: 0) +- IC 11571 -> Item 1171 + - Refers to item: Statement (location: source ID 16, line 311, chars 11065-11081, hits: 0) +- IC 11666 -> Item 1172 + - Refers to item: Statement (location: source ID 16, line 311, chars 11083-11086, hits: 0) +- IC 11582 -> Item 1173 + - Refers to item: Line (location: source ID 16, line 312, chars 11102-11130, hits: 0) +- IC 11582 -> Item 1174 + - Refers to item: Statement (location: source ID 16, line 312, chars 11102-11130, hits: 0) +- IC 11622 -> Item 1175 + - Refers to item: Line (location: source ID 16, line 313, chars 11144-11176, hits: 0) +- IC 11622 -> Item 1176 + - Refers to item: Statement (location: source ID 16, line 313, chars 11144-11176, hits: 0) +- IC 8054 -> Item 1177 + - Refers to item: Function "_safeMintBatchByIDToMultiple" (location: source ID 16, line 320, chars 11346-11577, hits: 0) +- IC 8055 -> Item 1178 + - Refers to item: Line (location: source ID 16, line 321, chars 11433-11443, hits: 0) +- IC 8055 -> Item 1179 + - Refers to item: Statement (location: source ID 16, line 321, chars 11433-11443, hits: 0) +- IC 8058 -> Item 1180 + - Refers to item: Statement (location: source ID 16, line 321, chars 11445-11461, hits: 0) +- IC 8153 -> Item 1181 + - Refers to item: Statement (location: source ID 16, line 321, chars 11463-11466, hits: 0) +- IC 8069 -> Item 1182 + - Refers to item: Line (location: source ID 16, line 322, chars 11482-11510, hits: 0) +- IC 8069 -> Item 1183 + - Refers to item: Statement (location: source ID 16, line 322, chars 11482-11510, hits: 0) +- IC 8109 -> Item 1184 + - Refers to item: Line (location: source ID 16, line 323, chars 11524-11560, hits: 0) +- IC 8109 -> Item 1185 + - Refers to item: Statement (location: source ID 16, line 323, chars 11524-11560, hits: 0) +- IC 10620 -> Item 1186 + - Refers to item: Function "_safeBurnBatch" (location: source ID 16, line 330, chars 11741-12031, hits: 0) +- IC 10621 -> Item 1187 + - Refers to item: Line (location: source ID 16, line 331, chars 11814-11824, hits: 0) +- IC 10621 -> Item 1188 + - Refers to item: Statement (location: source ID 16, line 331, chars 11814-11824, hits: 0) +- IC 10624 -> Item 1189 + - Refers to item: Statement (location: source ID 16, line 331, chars 11826-11842, hits: 0) +- IC 10791 -> Item 1190 + - Refers to item: Statement (location: source ID 16, line 331, chars 11844-11847, hits: 0) +- IC 10635 -> Item 1191 + - Refers to item: Line (location: source ID 16, line 332, chars 11863-11891, hits: 0) +- IC 10635 -> Item 1192 + - Refers to item: Statement (location: source ID 16, line 332, chars 11863-11891, hits: 0) +- IC 10675 -> Item 1193 + - Refers to item: Line (location: source ID 16, line 333, chars 11910-11920, hits: 0) +- IC 10675 -> Item 1194 + - Refers to item: Statement (location: source ID 16, line 333, chars 11910-11920, hits: 0) +- IC 10678 -> Item 1195 + - Refers to item: Statement (location: source ID 16, line 333, chars 11922-11943, hits: 0) +- IC 10770 -> Item 1196 + - Refers to item: Statement (location: source ID 16, line 333, chars 11945-11948, hits: 0) +- IC 10703 -> Item 1197 + - Refers to item: Line (location: source ID 16, line 334, chars 11968-12000, hits: 0) +- IC 10703 -> Item 1198 + - Refers to item: Statement (location: source ID 16, line 334, chars 11968-12000, hits: 0) +- IC 23261 -> Item 1199 + - Refers to item: Function "_transfer" (location: source ID 16, line 340, chars 12085-12383, hits: 0) +- IC 23262 -> Item 1200 + - Refers to item: Line (location: source ID 16, line 341, chars 12206-12246, hits: 0) +- IC 23262 -> Item 1201 + - Refers to item: Statement (location: source ID 16, line 341, chars 12206-12246, hits: 0) +- IC 23277 -> Item 1202 + - Refers to item: Branch (branch: 11, path: 0) (location: source ID 16, line 341, chars 12202-12308, hits: 0) +- IC 23292 -> Item 1203 + - Refers to item: Branch (branch: 11, path: 1) (location: source ID 16, line 341, chars 12202-12308, hits: 0) +- IC 23277 -> Item 1204 + - Refers to item: Line (location: source ID 16, line 342, chars 12262-12297, hits: 0) +- IC 23277 -> Item 1205 + - Refers to item: Statement (location: source ID 16, line 342, chars 12262-12297, hits: 0) +- IC 23293 -> Item 1206 + - Refers to item: Line (location: source ID 16, line 344, chars 12328-12366, hits: 0) +- IC 23293 -> Item 1207 + - Refers to item: Statement (location: source ID 16, line 344, chars 12328-12366, hits: 0) +- IC 9024 -> Item 1208 + - Refers to item: Function "_burn" (location: source ID 16, line 352, chars 12644-12974, hits: 0) +- IC 9025 -> Item 1209 + - Refers to item: Line (location: source ID 16, line 353, chars 12743-12783, hits: 0) +- IC 9025 -> Item 1210 + - Refers to item: Statement (location: source ID 16, line 353, chars 12743-12783, hits: 0) +- IC 9040 -> Item 1211 + - Refers to item: Branch (branch: 12, path: 0) (location: source ID 16, line 353, chars 12739-12905, hits: 0) +- IC 9097 -> Item 1212 + - Refers to item: Branch (branch: 12, path: 1) (location: source ID 16, line 353, chars 12739-12905, hits: 0) +- IC 9040 -> Item 1213 + - Refers to item: Line (location: source ID 16, line 354, chars 12799-12820, hits: 0) +- IC 9040 -> Item 1214 + - Refers to item: Statement (location: source ID 16, line 354, chars 12799-12820, hits: 0) +- IC 9049 -> Item 1215 + - Refers to item: Line (location: source ID 16, line 355, chars 12834-12860, hits: 0) +- IC 9049 -> Item 1216 + - Refers to item: Statement (location: source ID 16, line 355, chars 12834-12860, hits: 0) +- IC 9069 -> Item 1217 + - Refers to item: Line (location: source ID 16, line 356, chars 12874-12894, hits: 0) +- IC 9069 -> Item 1218 + - Refers to item: Statement (location: source ID 16, line 356, chars 12874-12894, hits: 0) +- IC 9098 -> Item 1219 + - Refers to item: Line (location: source ID 16, line 358, chars 12925-12957, hits: 0) +- IC 9098 -> Item 1220 + - Refers to item: Statement (location: source ID 16, line 358, chars 12925-12957, hits: 0) +- IC 19564 -> Item 1221 + - Refers to item: Function "_approve" (location: source ID 16, line 363, chars 13028-13290, hits: 0) +- IC 19565 -> Item 1222 + - Refers to item: Line (location: source ID 16, line 364, chars 13134-13174, hits: 0) +- IC 19565 -> Item 1223 + - Refers to item: Statement (location: source ID 16, line 364, chars 13134-13174, hits: 0) +- IC 19580 -> Item 1224 + - Refers to item: Branch (branch: 13, path: 0) (location: source ID 16, line 364, chars 13130-13236, hits: 0) +- IC 19594 -> Item 1225 + - Refers to item: Branch (branch: 13, path: 1) (location: source ID 16, line 364, chars 13130-13236, hits: 0) +- IC 19580 -> Item 1226 + - Refers to item: Line (location: source ID 16, line 365, chars 13190-13225, hits: 0) +- IC 19580 -> Item 1227 + - Refers to item: Statement (location: source ID 16, line 365, chars 13190-13225, hits: 0) +- IC 19595 -> Item 1228 + - Refers to item: Line (location: source ID 16, line 367, chars 13245-13283, hits: 0) +- IC 19595 -> Item 1229 + - Refers to item: Statement (location: source ID 16, line 367, chars 13245-13283, hits: 0) +- IC 18420 -> Item 1230 + - Refers to item: Function "_safeTransfer" (location: source ID 16, line 371, chars 13344-13719, hits: 0) +- IC 18421 -> Item 1231 + - Refers to item: Line (location: source ID 16, line 377, chars 13527-13567, hits: 0) +- IC 18421 -> Item 1232 + - Refers to item: Statement (location: source ID 16, line 377, chars 13527-13567, hits: 0) +- IC 18436 -> Item 1233 + - Refers to item: Branch (branch: 14, path: 0) (location: source ID 16, line 377, chars 13523-13647, hits: 0) +- IC 18452 -> Item 1234 + - Refers to item: Branch (branch: 14, path: 1) (location: source ID 16, line 377, chars 13523-13647, hits: 0) +- IC 18436 -> Item 1235 + - Refers to item: Line (location: source ID 16, line 378, chars 13583-13636, hits: 0) +- IC 18436 -> Item 1236 + - Refers to item: Statement (location: source ID 16, line 378, chars 13583-13636, hits: 0) +- IC 18453 -> Item 1237 + - Refers to item: Line (location: source ID 16, line 380, chars 13656-13712, hits: 0) +- IC 18453 -> Item 1238 + - Refers to item: Statement (location: source ID 16, line 380, chars 13656-13712, hits: 0) +- IC 21760 -> Item 1242 + - Refers to item: Function "_safeMint" (location: source ID 16, line 398, chars 14511-14676, hits: 0) +- IC 21761 -> Item 1243 + - Refers to item: Line (location: source ID 16, line 399, chars 14634-14669, hits: 0) +- IC 21761 -> Item 1244 + - Refers to item: Statement (location: source ID 16, line 399, chars 14634-14669, hits: 0) +- IC 26495 -> Item 1245 + - Refers to item: Function "_mint" (location: source ID 16, line 405, chars 14867-14997, hits: 0) +- IC 26496 -> Item 1246 + - Refers to item: Line (location: source ID 16, line 406, chars 14966-14990, hits: 0) +- IC 26496 -> Item 1247 + - Refers to item: Statement (location: source ID 16, line 406, chars 14966-14990, hits: 0) +- IC 8971 -> Item 1248 + - Refers to item: Function "_isApprovedOrOwner" (location: source ID 16, line 410, chars 15051-15400, hits: 0) +- IC 8974 -> Item 1249 + - Refers to item: Line (location: source ID 16, line 414, chars 15214-15254, hits: 0) +- IC 8974 -> Item 1250 + - Refers to item: Statement (location: source ID 16, line 414, chars 15214-15254, hits: 0) +- IC 8989 -> Item 1251 + - Refers to item: Branch (branch: 15, path: 0) (location: source ID 16, line 414, chars 15210-15331, hits: 0) +- IC 9005 -> Item 1252 + - Refers to item: Branch (branch: 15, path: 1) (location: source ID 16, line 414, chars 15210-15331, hits: 0) +- IC 8989 -> Item 1253 + - Refers to item: Line (location: source ID 16, line 415, chars 15270-15320, hits: 0) +- IC 8989 -> Item 1254 + - Refers to item: Statement (location: source ID 16, line 415, chars 15270-15320, hits: 0) +- IC 9006 -> Item 1255 + - Refers to item: Line (location: source ID 16, line 417, chars 15340-15393, hits: 0) +- IC 9006 -> Item 1256 + - Refers to item: Statement (location: source ID 16, line 417, chars 15340-15393, hits: 0) +- IC 9533 -> Item 1257 + - Refers to item: Function "_exists" (location: source ID 16, line 421, chars 15454-15777, hits: 0) +- IC 9536 -> Item 1258 + - Refers to item: Line (location: source ID 16, line 422, chars 15575-15615, hits: 0) +- IC 9536 -> Item 1259 + - Refers to item: Statement (location: source ID 16, line 422, chars 15575-15615, hits: 0) +- IC 9614 -> Item 1260 + - Refers to item: Branch (branch: 16, path: 0) (location: source ID 16, line 422, chars 15571-15720, hits: 0) +- IC 9636 -> Item 1261 + - Refers to item: Branch (branch: 16, path: 1) (location: source ID 16, line 422, chars 15571-15720, hits: 0) +- IC 9551 -> Item 1262 + - Refers to item: Line (location: source ID 16, line 423, chars 15631-15709, hits: 0) +- IC 9551 -> Item 1263 + - Refers to item: Statement (location: source ID 16, line 423, chars 15631-15709, hits: 0) +- IC 9644 -> Item 1264 + - Refers to item: Line (location: source ID 16, line 425, chars 15729-15770, hits: 0) +- IC 9644 -> Item 1265 + - Refers to item: Statement (location: source ID 16, line 425, chars 15729-15770, hits: 0) +- IC 17170 -> Item 1266 + - Refers to item: Function "_startTokenId" (location: source ID 16, line 429, chars 15876-16015, hits: 0) +- IC 17173 -> Item 1267 + - Refers to item: Line (location: source ID 16, line 430, chars 15971-16008, hits: 0) +- IC 17173 -> Item 1268 + - Refers to item: Statement (location: source ID 16, line 430, chars 15971-16008, hits: 0) +- IC 17185 -> Item 1275 + - Refers to item: Function "_nextTokenId" (location: source ID 23, line 72, chars 2499-2600, hits: 0) +- IC 17188 -> Item 1276 + - Refers to item: Line (location: source ID 23, line 73, chars 2573-2593, hits: 0) +- IC 17188 -> Item 1277 + - Refers to item: Statement (location: source ID 23, line 73, chars 2573-2593, hits: 0) +- IC 13609 -> Item 1278 + - Refers to item: Function "_totalMinted" (location: source ID 23, line 79, chars 2693-2812, hits: 0) +- IC 13612 -> Item 1279 + - Refers to item: Line (location: source ID 23, line 80, chars 2767-2805, hits: 0) +- IC 13612 -> Item 1280 + - Refers to item: Statement (location: source ID 23, line 80, chars 2767-2805, hits: 0) +- IC 22665 -> Item 1281 + - Refers to item: Function "supportsInterface" (location: source ID 23, line 86, chars 2879-3179, hits: 0) +- IC 22668 -> Item 1282 + - Refers to item: Line (location: source ID 23, line 87, chars 2997-3172, hits: 0) +- IC 22668 -> Item 1283 + - Refers to item: Statement (location: source ID 23, line 87, chars 2997-3172, hits: 0) +- IC 9832 -> Item 1284 + - Refers to item: Function "balanceOf" (location: source ID 23, line 96, chars 3238-3663, hits: 0) +- IC 9835 -> Item 1285 + - Refers to item: Line (location: source ID 23, line 97, chars 3326-3403, hits: 0) +- IC 9835 -> Item 1286 + - Refers to item: Statement (location: source ID 23, line 97, chars 3326-3403, hits: 0) +- IC 9886 -> Item 1287 + - Refers to item: Branch (branch: 0, path: 0) (location: source ID 23, line 97, chars 3326-3403, hits: 0) +- IC 9944 -> Item 1288 + - Refers to item: Branch (branch: 0, path: 1) (location: source ID 23, line 97, chars 3326-3403, hits: 0) +- IC 9945 -> Item 1289 + - Refers to item: Line (location: source ID 23, line 99, chars 3414-3424, hits: 0) +- IC 9945 -> Item 1290 + - Refers to item: Statement (location: source ID 23, line 99, chars 3414-3424, hits: 0) +- IC 9947 -> Item 1291 + - Refers to item: Line (location: source ID 23, line 100, chars 3439-3463, hits: 0) +- IC 9947 -> Item 1292 + - Refers to item: Statement (location: source ID 23, line 100, chars 3439-3463, hits: 0) +- IC 9948 -> Item 1293 + - Refers to item: Statement (location: source ID 23, line 100, chars 3448-3463, hits: 0) +- IC 9959 -> Item 1294 + - Refers to item: Statement (location: source ID 23, line 100, chars 3465-3483, hits: 0) +- IC 10061 -> Item 1295 + - Refers to item: Statement (location: source ID 23, line 100, chars 3485-3488, hits: 0) +- IC 9974 -> Item 1296 + - Refers to item: Line (location: source ID 23, line 101, chars 3508-3518, hits: 0) +- IC 9974 -> Item 1297 + - Refers to item: Statement (location: source ID 23, line 101, chars 3508-3518, hits: 0) +- IC 10047 -> Item 1298 + - Refers to item: Branch (branch: 1, path: 0) (location: source ID 23, line 101, chars 3504-3625, hits: 0) +- IC 10059 -> Item 1299 + - Refers to item: Branch (branch: 1, path: 1) (location: source ID 23, line 101, chars 3504-3625, hits: 0) +- IC 9988 -> Item 1300 + - Refers to item: Line (location: source ID 23, line 102, chars 3542-3561, hits: 0) +- IC 9988 -> Item 1301 + - Refers to item: Statement (location: source ID 23, line 102, chars 3542-3561, hits: 0) +- IC 10047 -> Item 1302 + - Refers to item: Branch (branch: 2, path: 0) (location: source ID 23, line 102, chars 3538-3611, hits: 0) +- IC 10059 -> Item 1303 + - Refers to item: Branch (branch: 2, path: 1) (location: source ID 23, line 102, chars 3538-3611, hits: 0) +- IC 10047 -> Item 1304 + - Refers to item: Line (location: source ID 23, line 103, chars 3585-3592, hits: 0) +- IC 10047 -> Item 1305 + - Refers to item: Statement (location: source ID 23, line 103, chars 3585-3592, hits: 0) +- IC 10079 -> Item 1306 + - Refers to item: Line (location: source ID 23, line 107, chars 3644-3656, hits: 0) +- IC 10079 -> Item 1307 + - Refers to item: Statement (location: source ID 23, line 107, chars 3644-3656, hits: 0) +- IC 9808 -> Item 1308 + - Refers to item: Function "ownerOf" (location: source ID 23, line 113, chars 3720-3889, hits: 0) +- IC 9811 -> Item 1309 + - Refers to item: Line (location: source ID 23, line 114, chars 3811-3860, hits: 0) +- IC 9811 -> Item 1310 + - Refers to item: Statement (location: source ID 23, line 114, chars 3811-3860, hits: 0) +- IC 9812 -> Item 1311 + - Refers to item: Statement (location: source ID 23, line 114, chars 3831-3860, hits: 0) +- IC 9824 -> Item 1312 + - Refers to item: Line (location: source ID 23, line 115, chars 3870-3882, hits: 0) +- IC 9824 -> Item 1313 + - Refers to item: Statement (location: source ID 23, line 115, chars 3870-3882, hits: 0) +- IC 17025 -> Item 1314 + - Refers to item: Function "_ownerAndBatchHeadOf" (location: source ID 23, line 118, chars 3895-4190, hits: 0) +- IC 17029 -> Item 1315 + - Refers to item: Line (location: source ID 23, line 119, chars 4016-4089, hits: 0) +- IC 17029 -> Item 1316 + - Refers to item: Statement (location: source ID 23, line 119, chars 4016-4089, hits: 0) +- IC 17042 -> Item 1317 + - Refers to item: Branch (branch: 3, path: 0) (location: source ID 23, line 119, chars 4016-4089, hits: 0) +- IC 17100 -> Item 1318 + - Refers to item: Branch (branch: 3, path: 1) (location: source ID 23, line 119, chars 4016-4089, hits: 0) +- IC 17101 -> Item 1319 + - Refers to item: Line (location: source ID 23, line 120, chars 4099-4140, hits: 0) +- IC 17101 -> Item 1320 + - Refers to item: Statement (location: source ID 23, line 120, chars 4099-4140, hits: 0) +- IC 17112 -> Item 1321 + - Refers to item: Line (location: source ID 23, line 121, chars 4150-4183, hits: 0) +- IC 17112 -> Item 1322 + - Refers to item: Statement (location: source ID 23, line 121, chars 4150-4183, hits: 0) +- IC 7722 -> Item 1342 + - Refers to item: Function "approve" (location: source ID 23, line 160, chars 5296-5696, hits: 0) +- IC 7723 -> Item 1343 + - Refers to item: Line (location: source ID 23, line 161, chars 5376-5408, hits: 0) +- IC 7723 -> Item 1344 + - Refers to item: Statement (location: source ID 23, line 161, chars 5376-5408, hits: 0) +- IC 7725 -> Item 1345 + - Refers to item: Statement (location: source ID 23, line 161, chars 5392-5408, hits: 0) +- IC 7736 -> Item 1346 + - Refers to item: Line (location: source ID 23, line 162, chars 5418-5478, hits: 0) +- IC 7736 -> Item 1347 + - Refers to item: Statement (location: source ID 23, line 162, chars 5418-5478, hits: 0) +- IC 7787 -> Item 1348 + - Refers to item: Branch (branch: 5, path: 0) (location: source ID 23, line 162, chars 5418-5478, hits: 0) +- IC 7845 -> Item 1349 + - Refers to item: Branch (branch: 5, path: 1) (location: source ID 23, line 162, chars 5418-5478, hits: 0) +- IC 7846 -> Item 1350 + - Refers to item: Line (location: source ID 23, line 164, chars 5489-5657, hits: 0) +- IC 7846 -> Item 1351 + - Refers to item: Statement (location: source ID 23, line 164, chars 5489-5657, hits: 0) +- IC 7928 -> Item 1352 + - Refers to item: Branch (branch: 6, path: 0) (location: source ID 23, line 164, chars 5489-5657, hits: 0) +- IC 7986 -> Item 1353 + - Refers to item: Branch (branch: 6, path: 1) (location: source ID 23, line 164, chars 5489-5657, hits: 0) +- IC 7987 -> Item 1354 + - Refers to item: Line (location: source ID 23, line 169, chars 5668-5689, hits: 0) +- IC 7987 -> Item 1355 + - Refers to item: Statement (location: source ID 23, line 169, chars 5668-5689, hits: 0) +- IC 7310 -> Item 1356 + - Refers to item: Function "getApproved" (location: source ID 23, line 175, chars 5757-5977, hits: 0) +- IC 7313 -> Item 1357 + - Refers to item: Line (location: source ID 23, line 176, chars 5852-5928, hits: 0) +- IC 7313 -> Item 1358 + - Refers to item: Statement (location: source ID 23, line 176, chars 5852-5928, hits: 0) +- IC 7326 -> Item 1359 + - Refers to item: Branch (branch: 7, path: 0) (location: source ID 23, line 176, chars 5852-5928, hits: 0) +- IC 7384 -> Item 1360 + - Refers to item: Branch (branch: 7, path: 1) (location: source ID 23, line 176, chars 5852-5928, hits: 0) +- IC 7385 -> Item 1361 + - Refers to item: Line (location: source ID 23, line 178, chars 5939-5970, hits: 0) +- IC 7385 -> Item 1362 + - Refers to item: Statement (location: source ID 23, line 178, chars 5939-5970, hits: 0) +- IC 8272 -> Item 1375 + - Refers to item: Function "transferFrom" (location: source ID 23, line 201, chars 6627-6930, hits: 0) +- IC 8273 -> Item 1376 + - Refers to item: Line (location: source ID 23, line 203, chars 6778-6884, hits: 0) +- IC 8273 -> Item 1377 + - Refers to item: Statement (location: source ID 23, line 203, chars 6778-6884, hits: 0) +- IC 8294 -> Item 1378 + - Refers to item: Branch (branch: 9, path: 0) (location: source ID 23, line 203, chars 6778-6884, hits: 0) +- IC 8352 -> Item 1379 + - Refers to item: Branch (branch: 9, path: 1) (location: source ID 23, line 203, chars 6778-6884, hits: 0) +- IC 8353 -> Item 1380 + - Refers to item: Line (location: source ID 23, line 205, chars 6895-6923, hits: 0) +- IC 8353 -> Item 1381 + - Refers to item: Statement (location: source ID 23, line 205, chars 6895-6923, hits: 0) +- IC 12000 -> Item 1385 + - Refers to item: Function "safeTransferFrom" (location: source ID 23, line 218, chars 7211-7496, hits: 0) +- IC 12001 -> Item 1386 + - Refers to item: Line (location: source ID 23, line 219, chars 7334-7440, hits: 0) +- IC 12001 -> Item 1387 + - Refers to item: Statement (location: source ID 23, line 219, chars 7334-7440, hits: 0) +- IC 12022 -> Item 1388 + - Refers to item: Branch (branch: 10, path: 0) (location: source ID 23, line 219, chars 7334-7440, hits: 0) +- IC 12080 -> Item 1389 + - Refers to item: Branch (branch: 10, path: 1) (location: source ID 23, line 219, chars 7334-7440, hits: 0) +- IC 12081 -> Item 1390 + - Refers to item: Line (location: source ID 23, line 220, chars 7450-7489, hits: 0) +- IC 12081 -> Item 1391 + - Refers to item: Statement (location: source ID 23, line 220, chars 7450-7489, hits: 0) +- IC 22232 -> Item 1392 + - Refers to item: Function "_safeTransfer" (location: source ID 23, line 241, chars 8358-8667, hits: 0) +- IC 22233 -> Item 1393 + - Refers to item: Line (location: source ID 23, line 242, chars 8471-8499, hits: 0) +- IC 22233 -> Item 1394 + - Refers to item: Statement (location: source ID 23, line 242, chars 8471-8499, hits: 0) +- IC 22244 -> Item 1395 + - Refers to item: Line (location: source ID 23, line 243, chars 8509-8660, hits: 0) +- IC 22244 -> Item 1396 + - Refers to item: Statement (location: source ID 23, line 243, chars 8509-8660, hits: 0) +- IC 22262 -> Item 1397 + - Refers to item: Branch (branch: 11, path: 0) (location: source ID 23, line 243, chars 8509-8660, hits: 0) +- IC 22320 -> Item 1398 + - Refers to item: Branch (branch: 11, path: 1) (location: source ID 23, line 243, chars 8509-8660, hits: 0) +- IC 20948 -> Item 1399 + - Refers to item: Function "_exists" (location: source ID 23, line 256, chars 8913-9062, hits: 0) +- IC 20951 -> Item 1400 + - Refers to item: Line (location: source ID 23, line 257, chars 8994-9055, hits: 0) +- IC 20951 -> Item 1401 + - Refers to item: Statement (location: source ID 23, line 257, chars 8994-9055, hits: 0) +- IC 16106 -> Item 1402 + - Refers to item: Function "_isApprovedOrOwner" (location: source ID 23, line 267, chars 9220-9560, hits: 0) +- IC 16109 -> Item 1403 + - Refers to item: Line (location: source ID 23, line 268, chars 9329-9405, hits: 0) +- IC 16109 -> Item 1404 + - Refers to item: Statement (location: source ID 23, line 268, chars 9329-9405, hits: 0) +- IC 16122 -> Item 1405 + - Refers to item: Branch (branch: 12, path: 0) (location: source ID 23, line 268, chars 9329-9405, hits: 0) +- IC 16180 -> Item 1406 + - Refers to item: Branch (branch: 12, path: 1) (location: source ID 23, line 268, chars 9329-9405, hits: 0) +- IC 16181 -> Item 1407 + - Refers to item: Line (location: source ID 23, line 269, chars 9415-9447, hits: 0) +- IC 16181 -> Item 1408 + - Refers to item: Statement (location: source ID 23, line 269, chars 9415-9447, hits: 0) +- IC 16183 -> Item 1409 + - Refers to item: Statement (location: source ID 23, line 269, chars 9431-9447, hits: 0) +- IC 16194 -> Item 1410 + - Refers to item: Line (location: source ID 23, line 270, chars 9457-9553, hits: 0) +- IC 16194 -> Item 1411 + - Refers to item: Statement (location: source ID 23, line 270, chars 9457-9553, hits: 0) +- IC 16995 -> Item 1412 + - Refers to item: Function "_safeMint" (location: source ID 23, line 283, chars 9911-10031, hits: 0) +- IC 16996 -> Item 1413 + - Refers to item: Line (location: source ID 23, line 284, chars 9987-10024, hits: 0) +- IC 16996 -> Item 1414 + - Refers to item: Statement (location: source ID 23, line 284, chars 9987-10024, hits: 0) +- IC 20986 -> Item 1415 + - Refers to item: Function "_safeMint" (location: source ID 23, line 287, chars 10037-10534, hits: 0) +- IC 20987 -> Item 1416 + - Refers to item: Line (location: source ID 23, line 288, chars 10133-10169, hits: 0) +- IC 20987 -> Item 1417 + - Refers to item: Statement (location: source ID 23, line 288, chars 10133-10169, hits: 0) +- IC 20989 -> Item 1418 + - Refers to item: Statement (location: source ID 23, line 288, chars 10155-10169, hits: 0) +- IC 20999 -> Item 1419 + - Refers to item: Line (location: source ID 23, line 291, chars 10320-10349, hits: 0) +- IC 20999 -> Item 1420 + - Refers to item: Statement (location: source ID 23, line 291, chars 10320-10349, hits: 0) +- IC 21009 -> Item 1421 + - Refers to item: Line (location: source ID 23, line 292, chars 10359-10527, hits: 0) +- IC 21009 -> Item 1422 + - Refers to item: Statement (location: source ID 23, line 292, chars 10359-10527, hits: 0) +- IC 21027 -> Item 1423 + - Refers to item: Branch (branch: 13, path: 0) (location: source ID 23, line 292, chars 10359-10527, hits: 0) +- IC 21085 -> Item 1424 + - Refers to item: Branch (branch: 13, path: 1) (location: source ID 23, line 292, chars 10359-10527, hits: 0) +- IC 18840 -> Item 1425 + - Refers to item: Function "_mint" (location: source ID 23, line 298, chars 10540-12535, hits: 0) +- IC 18841 -> Item 1426 + - Refers to item: Line (location: source ID 23, line 299, chars 10612-10648, hits: 0) +- IC 18841 -> Item 1427 + - Refers to item: Statement (location: source ID 23, line 299, chars 10612-10648, hits: 0) +- IC 18843 -> Item 1428 + - Refers to item: Statement (location: source ID 23, line 299, chars 10634-10648, hits: 0) +- IC 18853 -> Item 1429 + - Refers to item: Line (location: source ID 23, line 301, chars 10659-10721, hits: 0) +- IC 18853 -> Item 1430 + - Refers to item: Statement (location: source ID 23, line 301, chars 10659-10721, hits: 0) +- IC 18861 -> Item 1431 + - Refers to item: Branch (branch: 14, path: 0) (location: source ID 23, line 301, chars 10659-10721, hits: 0) +- IC 18919 -> Item 1432 + - Refers to item: Branch (branch: 14, path: 1) (location: source ID 23, line 301, chars 10659-10721, hits: 0) +- IC 18920 -> Item 1433 + - Refers to item: Line (location: source ID 23, line 302, chars 10731-10795, hits: 0) +- IC 18920 -> Item 1434 + - Refers to item: Statement (location: source ID 23, line 302, chars 10731-10795, hits: 0) +- IC 18972 -> Item 1435 + - Refers to item: Branch (branch: 15, path: 0) (location: source ID 23, line 302, chars 10731-10795, hits: 0) +- IC 19030 -> Item 1436 + - Refers to item: Branch (branch: 15, path: 1) (location: source ID 23, line 302, chars 10731-10795, hits: 0) +- IC 19031 -> Item 1437 + - Refers to item: Line (location: source ID 23, line 304, chars 10806-10866, hits: 0) +- IC 19031 -> Item 1438 + - Refers to item: Statement (location: source ID 23, line 304, chars 10806-10866, hits: 0) +- IC 19044 -> Item 1439 + - Refers to item: Line (location: source ID 23, line 305, chars 10876-10901, hits: 0) +- IC 19044 -> Item 1440 + - Refers to item: Statement (location: source ID 23, line 305, chars 10876-10901, hits: 0) +- IC 19069 -> Item 1441 + - Refers to item: Line (location: source ID 23, line 306, chars 10911-10936, hits: 0) +- IC 19069 -> Item 1442 + - Refers to item: Statement (location: source ID 23, line 306, chars 10911-10936, hits: 0) +- IC 19151 -> Item 1443 + - Refers to item: Line (location: source ID 23, line 307, chars 10946-10973, hits: 0) +- IC 19151 -> Item 1444 + - Refers to item: Statement (location: source ID 23, line 307, chars 10946-10973, hits: 0) +- IC 19171 -> Item 1445 + - Refers to item: Line (location: source ID 23, line 309, chars 10984-11000, hits: 0) +- IC 19171 -> Item 1446 + - Refers to item: Statement (location: source ID 23, line 309, chars 10984-11000, hits: 0) +- IC 19173 -> Item 1447 + - Refers to item: Line (location: source ID 23, line 310, chars 11010-11046, hits: 0) +- IC 19173 -> Item 1448 + - Refers to item: Statement (location: source ID 23, line 310, chars 11010-11046, hits: 0) +- IC 19174 -> Item 1449 + - Refers to item: Statement (location: source ID 23, line 310, chars 11024-11046, hits: 0) +- IC 19188 -> Item 1450 + - Refers to item: Line (location: source ID 23, line 318, chars 11503-11540, hits: 0) +- IC 19188 -> Item 1451 + - Refers to item: Statement (location: source ID 23, line 318, chars 11503-11540, hits: 0) +- IC 19319 -> Item 1452 + - Refers to item: Line (location: source ID 23, line 342, chars 12469-12528, hits: 0) +- IC 19319 -> Item 1453 + - Refers to item: Statement (location: source ID 23, line 342, chars 12469-12528, hits: 0) +- IC 25699 -> Item 1454 + - Refers to item: Function "_transfer" (location: source ID 23, line 356, chars 12859-13793, hits: 0) +- IC 25700 -> Item 1455 + - Refers to item: Line (location: source ID 23, line 357, chars 12948-13021, hits: 0) +- IC 25700 -> Item 1456 + - Refers to item: Statement (location: source ID 23, line 357, chars 12948-13021, hits: 0) +- IC 25703 -> Item 1457 + - Refers to item: Statement (location: source ID 23, line 357, chars 12992-13021, hits: 0) +- IC 25716 -> Item 1458 + - Refers to item: Line (location: source ID 23, line 359, chars 13032-13102, hits: 0) +- IC 25716 -> Item 1459 + - Refers to item: Statement (location: source ID 23, line 359, chars 13032-13102, hits: 0) +- IC 25767 -> Item 1460 + - Refers to item: Branch (branch: 16, path: 0) (location: source ID 23, line 359, chars 13032-13102, hits: 0) +- IC 25825 -> Item 1461 + - Refers to item: Branch (branch: 16, path: 1) (location: source ID 23, line 359, chars 13032-13102, hits: 0) +- IC 25826 -> Item 1462 + - Refers to item: Line (location: source ID 23, line 360, chars 13112-13180, hits: 0) +- IC 25826 -> Item 1463 + - Refers to item: Statement (location: source ID 23, line 360, chars 13112-13180, hits: 0) +- IC 25878 -> Item 1464 + - Refers to item: Branch (branch: 17, path: 0) (location: source ID 23, line 360, chars 13112-13180, hits: 0) +- IC 25936 -> Item 1465 + - Refers to item: Branch (branch: 17, path: 1) (location: source ID 23, line 360, chars 13112-13180, hits: 0) +- IC 25937 -> Item 1466 + - Refers to item: Line (location: source ID 23, line 362, chars 13191-13234, hits: 0) +- IC 25937 -> Item 1467 + - Refers to item: Statement (location: source ID 23, line 362, chars 13191-13234, hits: 0) +- IC 25950 -> Item 1468 + - Refers to item: Line (location: source ID 23, line 365, chars 13296-13325, hits: 0) +- IC 25950 -> Item 1469 + - Refers to item: Statement (location: source ID 23, line 365, chars 13296-13325, hits: 0) +- IC 25961 -> Item 1470 + - Refers to item: Line (location: source ID 23, line 367, chars 13336-13375, hits: 0) +- IC 25961 -> Item 1471 + - Refers to item: Statement (location: source ID 23, line 367, chars 13336-13375, hits: 0) +- IC 25963 -> Item 1472 + - Refers to item: Statement (location: source ID 23, line 367, chars 13364-13375, hits: 0) +- IC 25978 -> Item 1473 + - Refers to item: Line (location: source ID 23, line 369, chars 13390-13462, hits: 0) +- IC 25978 -> Item 1474 + - Refers to item: Statement (location: source ID 23, line 369, chars 13390-13462, hits: 0) +- IC 26022 -> Item 1475 + - Refers to item: Branch (branch: 18, path: 0) (location: source ID 23, line 369, chars 13386-13569, hits: 0) +- IC 26124 -> Item 1476 + - Refers to item: Branch (branch: 18, path: 1) (location: source ID 23, line 369, chars 13386-13569, hits: 0) +- IC 26022 -> Item 1477 + - Refers to item: Line (location: source ID 23, line 370, chars 13478-13511, hits: 0) +- IC 26022 -> Item 1478 + - Refers to item: Statement (location: source ID 23, line 370, chars 13478-13511, hits: 0) +- IC 26104 -> Item 1479 + - Refers to item: Line (location: source ID 23, line 371, chars 13525-13558, hits: 0) +- IC 26104 -> Item 1480 + - Refers to item: Statement (location: source ID 23, line 371, chars 13525-13558, hits: 0) +- IC 26125 -> Item 1481 + - Refers to item: Line (location: source ID 23, line 374, chars 13579-13600, hits: 0) +- IC 26125 -> Item 1482 + - Refers to item: Statement (location: source ID 23, line 374, chars 13579-13600, hits: 0) +- IC 26207 -> Item 1483 + - Refers to item: Line (location: source ID 23, line 375, chars 13614-13641, hits: 0) +- IC 26207 -> Item 1484 + - Refers to item: Statement (location: source ID 23, line 375, chars 13614-13641, hits: 0) +- IC 26214 -> Item 1485 + - Refers to item: Branch (branch: 19, path: 0) (location: source ID 23, line 375, chars 13610-13691, hits: 0) +- IC 26234 -> Item 1486 + - Refers to item: Branch (branch: 19, path: 1) (location: source ID 23, line 375, chars 13610-13691, hits: 0) +- IC 26214 -> Item 1487 + - Refers to item: Line (location: source ID 23, line 376, chars 13657-13680, hits: 0) +- IC 26214 -> Item 1488 + - Refers to item: Statement (location: source ID 23, line 376, chars 13657-13680, hits: 0) +- IC 26235 -> Item 1489 + - Refers to item: Line (location: source ID 23, line 379, chars 13701-13733, hits: 0) +- IC 26235 -> Item 1490 + - Refers to item: Statement (location: source ID 23, line 379, chars 13701-13733, hits: 0) +- IC 26326 -> Item 1491 + - Refers to item: Line (location: source ID 23, line 381, chars 13744-13786, hits: 0) +- IC 26326 -> Item 1492 + - Refers to item: Statement (location: source ID 23, line 381, chars 13744-13786, hits: 0) +- IC 23076 -> Item 1493 + - Refers to item: Function "_approve" (location: source ID 23, line 389, chars 13904-14068, hits: 0) +- IC 23077 -> Item 1494 + - Refers to item: Line (location: source ID 23, line 390, chars 13978-14007, hits: 0) +- IC 23077 -> Item 1495 + - Refers to item: Statement (location: source ID 23, line 390, chars 13978-14007, hits: 0) +- IC 23159 -> Item 1496 + - Refers to item: Line (location: source ID 23, line 391, chars 14017-14061, hits: 0) +- IC 23159 -> Item 1497 + - Refers to item: Statement (location: source ID 23, line 391, chars 14017-14061, hits: 0) +- IC 23344 -> Item 1498 + - Refers to item: Function "_checkOnERC721Received" (location: source ID 23, line 405, chars 14709-15724, hits: 0) +- IC 23347 -> Item 1499 + - Refers to item: Line (location: source ID 23, line 412, chars 14912-14927, hits: 0) +- IC 23347 -> Item 1500 + - Refers to item: Statement (location: source ID 23, line 412, chars 14912-14927, hits: 0) +- IC 23679 -> Item 1501 + - Refers to item: Branch (branch: 20, path: 0) (location: source ID 23, line 412, chars 14908-15676, hits: 0) +- IC 23752 -> Item 1502 + - Refers to item: Branch (branch: 20, path: 1) (location: source ID 23, line 412, chars 14908-15676, hits: 0) +- IC 23383 -> Item 1503 + - Refers to item: Line (location: source ID 23, line 413, chars 14943-14951, hits: 0) +- IC 23383 -> Item 1504 + - Refers to item: Statement (location: source ID 23, line 413, chars 14943-14951, hits: 0) +- IC 23387 -> Item 1505 + - Refers to item: Line (location: source ID 23, line 414, chars 14970-15000, hits: 0) +- IC 23387 -> Item 1506 + - Refers to item: Statement (location: source ID 23, line 414, chars 14970-15000, hits: 0) +- IC 23393 -> Item 1507 + - Refers to item: Statement (location: source ID 23, line 414, chars 15002-15035, hits: 0) +- IC 23756 -> Item 1508 + - Refers to item: Statement (location: source ID 23, line 414, chars 15037-15046, hits: 0) +- IC 23412 -> Item 1509 + - Refers to item: Line (location: source ID 23, line 415, chars 15070-15142, hits: 0) +- IC 23412 -> Item 1510 + - Refers to item: Statement (location: source ID 23, line 415, chars 15070-15142, hits: 0) +- IC 23776 -> Item 1511 + - Refers to item: Line (location: source ID 23, line 427, chars 15657-15665, hits: 0) +- IC 23776 -> Item 1512 + - Refers to item: Statement (location: source ID 23, line 427, chars 15657-15665, hits: 0) +- IC 23781 -> Item 1513 + - Refers to item: Line (location: source ID 23, line 429, chars 15696-15707, hits: 0) +- IC 23781 -> Item 1514 + - Refers to item: Statement (location: source ID 23, line 429, chars 15696-15707, hits: 0) +- IC 21091 -> Item 1515 + - Refers to item: Function "_getBatchHead" (location: source ID 23, line 433, chars 15730-15886, hits: 0) +- IC 21094 -> Item 1516 + - Refers to item: Line (location: source ID 23, line 434, chars 15829-15879, hits: 0) +- IC 21094 -> Item 1517 + - Refers to item: Statement (location: source ID 23, line 434, chars 15829-15879, hits: 0) +- IC 20752 -> Item 1521 + - Refers to item: Function "_beforeTokenTransfers" (location: source ID 23, line 453, chars 16465-16581, hits: 0) +- IC 20851 -> Item 1522 + - Refers to item: Function "_afterTokenTransfers" (location: source ID 23, line 467, chars 16979-17094, hits: 0) + +Anchors for Contract "Minting" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 15): + From 6a3f5bfaa9244ce6a56d9864883c5c87deac903d Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 15 Jan 2024 18:05:13 +1000 Subject: [PATCH 054/100] Remove coverage report --- x.txt | 6717 --------------------------------------------------------- 1 file changed, 6717 deletions(-) delete mode 100644 x.txt diff --git a/x.txt b/x.txt deleted file mode 100644 index 2732f1d1..00000000 --- a/x.txt +++ /dev/null @@ -1,6717 +0,0 @@ -Compiling 111 files with 0.8.19 -Compiling 11 files with 0.8.14 -Compiling 42 files with 0.8.20 -Compiling 77 files with 0.8.17 -Solc 0.8.14 finished in 102.46ms -Solc 0.8.20 finished in 672.01ms -Solc 0.8.17 finished in 1.58s -Solc 0.8.19 finished in 3.76s -Compiler run successful! -Analysing contracts... -Running tests... -Uncovered for contracts/allowlist/OperatorAllowlist.sol: -- Function "removeAddressFromAllowlist" (location: source ID 1, line 77, chars 2962-3266, hits: 0) -- Line (location: source ID 1, line 78, chars 3082-3091, hits: 0) -- Statement (location: source ID 1, line 78, chars 3082-3091, hits: 0) -- Statement (location: source ID 1, line 78, chars 3093-3118, hits: 0) -- Statement (location: source ID 1, line 78, chars 3120-3123, hits: 0) -- Line (location: source ID 1, line 79, chars 3139-3181, hits: 0) -- Statement (location: source ID 1, line 79, chars 3139-3181, hits: 0) -- Line (location: source ID 1, line 80, chars 3195-3249, hits: 0) -- Statement (location: source ID 1, line 80, chars 3195-3249, hits: 0) -- Function "removeWalletFromAllowlist" (location: source ID 1, line 111, chars 4462-4968, hits: 0) -- Line (location: source ID 1, line 113, chars 4595-4611, hits: 0) -- Statement (location: source ID 1, line 113, chars 4595-4611, hits: 0) -- Line (location: source ID 1, line 115, chars 4644-4679, hits: 0) -- Statement (location: source ID 1, line 115, chars 4644-4679, hits: 0) -- Line (location: source ID 1, line 117, chars 4698-4732, hits: 0) -- Statement (location: source ID 1, line 117, chars 4698-4732, hits: 0) -- Line (location: source ID 1, line 119, chars 4782-4841, hits: 0) -- Statement (location: source ID 1, line 119, chars 4782-4841, hits: 0) -- Statement (location: source ID 1, line 119, chars 4797-4841, hits: 0) -- Line (location: source ID 1, line 120, chars 4851-4894, hits: 0) -- Statement (location: source ID 1, line 120, chars 4851-4894, hits: 0) -- Line (location: source ID 1, line 122, chars 4905-4961, hits: 0) -- Statement (location: source ID 1, line 122, chars 4905-4961, hits: 0) -- Function "grantRegistrarRole" (location: source ID 1, line 129, chars 5128-5256, hits: 0) -- Line (location: source ID 1, line 130, chars 5218-5249, hits: 0) -- Statement (location: source ID 1, line 130, chars 5218-5249, hits: 0) -- Function "revokeRegistrarRole" (location: source ID 1, line 137, chars 5424-5554, hits: 0) -- Line (location: source ID 1, line 138, chars 5515-5547, hits: 0) -- Statement (location: source ID 1, line 138, chars 5515-5547, hits: 0) -- Branch (branch: 1, path: 0) (location: source ID 1, line 157, chars 6105-6367, hits: 0) -- Function "supportsInterface" (location: source ID 1, line 171, chars 6539-6768, hits: 0) -- Line (location: source ID 1, line 172, chars 6663-6761, hits: 0) -- Statement (location: source ID 1, line 172, chars 6663-6761, hits: 0) - -Uncovered for contracts/allowlist/OperatorAllowlistEnforced.sol: -- Function "setOperatorAllowlistRegistry" (location: source ID 2, line 94, chars 3760-3928, hits: 0) -- Line (location: source ID 2, line 95, chars 3872-3921, hits: 0) -- Statement (location: source ID 2, line 95, chars 3872-3921, hits: 0) -- Function "supportsInterface" (location: source ID 2, line 102, chars 4071-4222, hits: 0) -- Line (location: source ID 2, line 103, chars 4172-4215, hits: 0) -- Statement (location: source ID 2, line 103, chars 4172-4215, hits: 0) -- Function "_setOperatorAllowlistRegistry" (location: source ID 2, line 110, chars 4419-4842, hits: 0) -- Line (location: source ID 2, line 111, chars 4509-4593, hits: 0) -- Statement (location: source ID 2, line 111, chars 4509-4593, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 2, line 111, chars 4505-4672, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 2, line 111, chars 4505-4672, hits: 0) -- Line (location: source ID 2, line 112, chars 4609-4661, hits: 0) -- Statement (location: source ID 2, line 112, chars 4609-4661, hits: 0) -- Line (location: source ID 2, line 115, chars 4682-4767, hits: 0) -- Statement (location: source ID 2, line 115, chars 4682-4767, hits: 0) -- Line (location: source ID 2, line 116, chars 4777-4835, hits: 0) -- Statement (location: source ID 2, line 116, chars 4777-4835, hits: 0) - -Uncovered for contracts/bridge/x/Registration.sol: -- Function "registerAndDepositNft" (location: source ID 2, line 13, chars 200-532, hits: 0) -- Line (location: source ID 2, line 21, chars 417-462, hits: 0) -- Statement (location: source ID 2, line 21, chars 417-462, hits: 0) -- Line (location: source ID 2, line 22, chars 472-525, hits: 0) -- Statement (location: source ID 2, line 22, chars 472-525, hits: 0) -- Function "registerAndWithdraw" (location: source ID 2, line 25, chars 538-798, hits: 0) -- Line (location: source ID 2, line 31, chars 703-748, hits: 0) -- Statement (location: source ID 2, line 31, chars 703-748, hits: 0) -- Line (location: source ID 2, line 32, chars 758-791, hits: 0) -- Statement (location: source ID 2, line 32, chars 758-791, hits: 0) -- Function "registerAndWithdrawTo" (location: source ID 2, line 35, chars 804-1106, hits: 0) -- Line (location: source ID 2, line 42, chars 998-1043, hits: 0) -- Statement (location: source ID 2, line 42, chars 998-1043, hits: 0) -- Line (location: source ID 2, line 43, chars 1053-1099, hits: 0) -- Statement (location: source ID 2, line 43, chars 1053-1099, hits: 0) -- Function "registerAndWithdrawNft" (location: source ID 2, line 46, chars 1112-1412, hits: 0) -- Line (location: source ID 2, line 53, chars 1305-1350, hits: 0) -- Statement (location: source ID 2, line 53, chars 1305-1350, hits: 0) -- Line (location: source ID 2, line 54, chars 1360-1405, hits: 0) -- Statement (location: source ID 2, line 54, chars 1360-1405, hits: 0) -- Function "registerAndWithdrawNftTo" (location: source ID 2, line 57, chars 1418-1760, hits: 0) -- Line (location: source ID 2, line 65, chars 1640-1685, hits: 0) -- Statement (location: source ID 2, line 65, chars 1640-1685, hits: 0) -- Line (location: source ID 2, line 66, chars 1695-1753, hits: 0) -- Statement (location: source ID 2, line 66, chars 1695-1753, hits: 0) -- Function "regsiterAndWithdrawAndMint" (location: source ID 2, line 69, chars 1766-2089, hits: 0) -- Line (location: source ID 2, line 76, chars 1974-2019, hits: 0) -- Statement (location: source ID 2, line 76, chars 1974-2019, hits: 0) -- Line (location: source ID 2, line 77, chars 2029-2082, hits: 0) -- Statement (location: source ID 2, line 77, chars 2029-2082, hits: 0) -- Function "isRegistered" (location: source ID 2, line 80, chars 2095-2223, hits: 0) -- Line (location: source ID 2, line 81, chars 2172-2216, hits: 0) -- Statement (location: source ID 2, line 81, chars 2172-2216, hits: 0) - -Uncovered for contracts/mocks/MockDisguisedEOA.sol: -- Function "executeTransfer" (location: source ID 3, line 14, chars 295-449, hits: 0) -- Line (location: source ID 3, line 15, chars 390-442, hits: 0) -- Statement (location: source ID 3, line 15, chars 390-442, hits: 0) - -Uncovered for contracts/mocks/MockEIP1271Wallet.sol: -- Function "isValidSignature" (location: source ID 4, line 14, chars 316-633, hits: 0) -- Line (location: source ID 4, line 15, chars 428-485, hits: 0) -- Statement (location: source ID 4, line 15, chars 428-485, hits: 0) -- Statement (location: source ID 4, line 15, chars 455-485, hits: 0) -- Line (location: source ID 4, line 16, chars 499-524, hits: 0) -- Statement (location: source ID 4, line 16, chars 499-524, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 4, line 16, chars 495-588, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 4, line 16, chars 495-588, hits: 0) -- Line (location: source ID 4, line 17, chars 540-577, hits: 0) -- Statement (location: source ID 4, line 17, chars 540-577, hits: 0) -- Line (location: source ID 4, line 19, chars 608-616, hits: 0) -- Statement (location: source ID 4, line 19, chars 608-616, hits: 0) - -Uncovered for contracts/mocks/MockFactory.sol: -- Function "computeAddress" (location: source ID 5, line 7, chars 152-300, hits: 0) -- Line (location: source ID 5, line 8, chars 248-293, hits: 0) -- Statement (location: source ID 5, line 8, chars 248-293, hits: 0) -- Function "deploy" (location: source ID 5, line 11, chars 306-408, hits: 0) -- Line (location: source ID 5, line 12, chars 372-401, hits: 0) -- Statement (location: source ID 5, line 12, chars 372-401, hits: 0) - -Uncovered for contracts/mocks/MockMarketplace.sol: -- Function "executeTransfer" (location: source ID 6, line 16, chars 421-565, hits: 0) -- Line (location: source ID 6, line 17, chars 500-558, hits: 0) -- Statement (location: source ID 6, line 17, chars 500-558, hits: 0) -- Function "executeTransferFrom" (location: source ID 6, line 20, chars 571-713, hits: 0) -- Line (location: source ID 6, line 21, chars 661-706, hits: 0) -- Statement (location: source ID 6, line 21, chars 661-706, hits: 0) -- Function "executeApproveForAll" (location: source ID 6, line 24, chars 719-856, hits: 0) -- Line (location: source ID 6, line 25, chars 799-849, hits: 0) -- Statement (location: source ID 6, line 25, chars 799-849, hits: 0) -- Function "executeTransferRoyalties" (location: source ID 6, line 28, chars 862-1355, hits: 0) -- Line (location: source ID 6, line 29, chars 987-1040, hits: 0) -- Statement (location: source ID 6, line 29, chars 987-1040, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 6, line 29, chars 987-1040, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 6, line 29, chars 987-1040, hits: 0) -- Line (location: source ID 6, line 30, chars 1050-1137, hits: 0) -- Statement (location: source ID 6, line 30, chars 1050-1137, hits: 0) -- Statement (location: source ID 6, line 30, chars 1094-1137, hits: 0) -- Line (location: source ID 6, line 31, chars 1147-1192, hits: 0) -- Statement (location: source ID 6, line 31, chars 1147-1192, hits: 0) -- Statement (location: source ID 6, line 31, chars 1167-1192, hits: 0) -- Line (location: source ID 6, line 32, chars 1202-1243, hits: 0) -- Statement (location: source ID 6, line 32, chars 1202-1243, hits: 0) -- Line (location: source ID 6, line 33, chars 1253-1286, hits: 0) -- Statement (location: source ID 6, line 33, chars 1253-1286, hits: 0) -- Line (location: source ID 6, line 34, chars 1296-1348, hits: 0) -- Statement (location: source ID 6, line 34, chars 1296-1348, hits: 0) - -Uncovered for contracts/mocks/MockOnReceive.sol: -- Function "onERC721Received" (location: source ID 7, line 16, chars 412-712, hits: 0) -- Line (location: source ID 7, line 22, chars 598-658, hits: 0) -- Statement (location: source ID 7, line 22, chars 598-658, hits: 0) -- Line (location: source ID 7, line 23, chars 668-705, hits: 0) -- Statement (location: source ID 7, line 23, chars 668-705, hits: 0) - -Uncovered for contracts/mocks/MockWallet.sol: -- Function "transferNFT" (location: source ID 8, line 12, chars 341-492, hits: 0) -- Line (location: source ID 8, line 13, chars 439-485, hits: 0) -- Statement (location: source ID 8, line 13, chars 439-485, hits: 0) -- Function "transfer1155" (location: source ID 8, line 16, chars 498-683, hits: 0) -- Line (location: source ID 8, line 17, chars 613-676, hits: 0) -- Statement (location: source ID 8, line 17, chars 613-676, hits: 0) -- Function "batchTransfer1155" (location: source ID 8, line 20, chars 689-952, hits: 0) -- Line (location: source ID 8, line 27, chars 875-945, hits: 0) -- Statement (location: source ID 8, line 27, chars 875-945, hits: 0) -- Function "onERC1155Received" (location: source ID 8, line 30, chars 958-1294, hits: 0) -- Line (location: source ID 8, line 37, chars 1147-1193, hits: 0) -- Statement (location: source ID 8, line 37, chars 1147-1193, hits: 0) -- Line (location: source ID 8, line 38, chars 1203-1287, hits: 0) -- Statement (location: source ID 8, line 38, chars 1203-1287, hits: 0) -- Function "onERC1155BatchReceived" (location: source ID 8, line 41, chars 1300-1681, hits: 0) -- Line (location: source ID 8, line 48, chars 1518-1571, hits: 0) -- Statement (location: source ID 8, line 48, chars 1518-1571, hits: 0) -- Line (location: source ID 8, line 49, chars 1581-1674, hits: 0) -- Statement (location: source ID 8, line 49, chars 1581-1674, hits: 0) -- Function "transferNFT" (location: source ID 4, line 12, chars 341-492, hits: 0) -- Line (location: source ID 4, line 13, chars 439-485, hits: 0) -- Statement (location: source ID 4, line 13, chars 439-485, hits: 0) -- Function "transfer1155" (location: source ID 4, line 16, chars 498-683, hits: 0) -- Line (location: source ID 4, line 17, chars 613-676, hits: 0) -- Statement (location: source ID 4, line 17, chars 613-676, hits: 0) -- Function "batchTransfer1155" (location: source ID 4, line 20, chars 689-952, hits: 0) -- Line (location: source ID 4, line 27, chars 875-945, hits: 0) -- Statement (location: source ID 4, line 27, chars 875-945, hits: 0) -- Function "onERC1155Received" (location: source ID 4, line 30, chars 958-1294, hits: 0) -- Line (location: source ID 4, line 37, chars 1147-1193, hits: 0) -- Statement (location: source ID 4, line 37, chars 1147-1193, hits: 0) -- Line (location: source ID 4, line 38, chars 1203-1287, hits: 0) -- Statement (location: source ID 4, line 38, chars 1203-1287, hits: 0) -- Function "onERC1155BatchReceived" (location: source ID 4, line 41, chars 1300-1681, hits: 0) -- Line (location: source ID 4, line 48, chars 1518-1571, hits: 0) -- Statement (location: source ID 4, line 48, chars 1518-1571, hits: 0) -- Line (location: source ID 4, line 49, chars 1581-1674, hits: 0) -- Statement (location: source ID 4, line 49, chars 1581-1674, hits: 0) - -Uncovered for contracts/mocks/MockWalletFactory.sol: -- Function "getAddress" (location: source ID 9, line 8, chars 1496-1916, hits: 0) -- Line (location: source ID 9, line 9, chars 1601-1860, hits: 0) -- Statement (location: source ID 9, line 9, chars 1601-1860, hits: 0) -- Statement (location: source ID 9, line 9, chars 1617-1860, hits: 0) -- Line (location: source ID 9, line 17, chars 1870-1909, hits: 0) -- Statement (location: source ID 9, line 17, chars 1870-1909, hits: 0) -- Function "deploy" (location: source ID 9, line 20, chars 1922-2345, hits: 0) -- Line (location: source ID 9, line 21, chars 2027-2114, hits: 0) -- Statement (location: source ID 9, line 21, chars 2027-2114, hits: 0) -- Statement (location: source ID 9, line 21, chars 2047-2114, hits: 0) -- Line (location: source ID 9, line 23, chars 2147-2215, hits: 0) -- Statement (location: source ID 9, line 23, chars 2147-2215, hits: 0) -- Line (location: source ID 9, line 26, chars 2270-2338, hits: 0) -- Statement (location: source ID 9, line 26, chars 2270-2338, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 9, line 26, chars 2270-2338, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 9, line 26, chars 2270-2338, hits: 0) -- Function "getAddress" (location: source ID 5, line 8, chars 1496-1916, hits: 0) -- Line (location: source ID 5, line 9, chars 1601-1860, hits: 0) -- Statement (location: source ID 5, line 9, chars 1601-1860, hits: 0) -- Statement (location: source ID 5, line 9, chars 1617-1860, hits: 0) -- Line (location: source ID 5, line 17, chars 1870-1909, hits: 0) -- Statement (location: source ID 5, line 17, chars 1870-1909, hits: 0) -- Function "deploy" (location: source ID 5, line 20, chars 1922-2345, hits: 0) -- Line (location: source ID 5, line 21, chars 2027-2114, hits: 0) -- Statement (location: source ID 5, line 21, chars 2027-2114, hits: 0) -- Statement (location: source ID 5, line 21, chars 2047-2114, hits: 0) -- Line (location: source ID 5, line 23, chars 2147-2215, hits: 0) -- Statement (location: source ID 5, line 23, chars 2147-2215, hits: 0) -- Line (location: source ID 5, line 26, chars 2270-2338, hits: 0) -- Statement (location: source ID 5, line 26, chars 2270-2338, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 5, line 26, chars 2270-2338, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 5, line 26, chars 2270-2338, hits: 0) - -Uncovered for contracts/random/RandomSeedProvider.sol: -- Line (location: source ID 7, line 83, chars 3938-3980, hits: 0) -- Statement (location: source ID 7, line 83, chars 3938-3980, hits: 0) -- Line (location: source ID 7, line 84, chars 3990-4033, hits: 0) -- Statement (location: source ID 7, line 84, chars 3990-4033, hits: 0) -- Line (location: source ID 7, line 89, chars 4235-4309, hits: 0) -- Statement (location: source ID 7, line 89, chars 4235-4309, hits: 0) -- Line (location: source ID 7, line 90, chars 4319-4338, hits: 0) -- Statement (location: source ID 7, line 90, chars 4319-4338, hits: 0) -- Line (location: source ID 7, line 91, chars 4348-4387, hits: 0) -- Statement (location: source ID 7, line 91, chars 4348-4387, hits: 0) -- Line (location: source ID 7, line 93, chars 4398-4420, hits: 0) -- Statement (location: source ID 7, line 93, chars 4398-4420, hits: 0) -- Line (location: source ID 7, line 94, chars 4430-4464, hits: 0) -- Statement (location: source ID 7, line 94, chars 4430-4464, hits: 0) - -Uncovered for contracts/random/RandomValues.sol: - -Uncovered for contracts/random/offchainsources/ChainlinkSourceAdaptor.sol: -- Function "configureRequests" (location: source ID 9, line 49, chars 1836-2064, hits: 0) -- Line (location: source ID 9, line 50, chars 1969-1987, hits: 0) -- Statement (location: source ID 9, line 50, chars 1969-1987, hits: 0) -- Line (location: source ID 9, line 51, chars 1997-2011, hits: 0) -- Statement (location: source ID 9, line 51, chars 1997-2011, hits: 0) -- Line (location: source ID 9, line 52, chars 2021-2057, hits: 0) -- Statement (location: source ID 9, line 52, chars 2021-2057, hits: 0) -- Function "requestOffchainRandom" (location: source ID 9, line 55, chars 2070-2261, hits: 0) -- Line (location: source ID 9, line 56, chars 2150-2254, hits: 0) -- Statement (location: source ID 9, line 56, chars 2150-2254, hits: 0) -- Function "fulfillRandomWords" (location: source ID 9, line 61, chars 2281-2680, hits: 0) -- Line (location: source ID 9, line 64, chars 2508-2532, hits: 0) -- Statement (location: source ID 9, line 64, chars 2508-2532, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 9, line 64, chars 2504-2612, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 9, line 64, chars 2504-2612, hits: 0) -- Line (location: source ID 9, line 65, chars 2548-2601, hits: 0) -- Statement (location: source ID 9, line 65, chars 2548-2601, hits: 0) -- Line (location: source ID 9, line 68, chars 2622-2673, hits: 0) -- Statement (location: source ID 9, line 68, chars 2622-2673, hits: 0) -- Function "getOffchainRandom" (location: source ID 9, line 72, chars 2687-2957, hits: 0) -- Line (location: source ID 9, line 73, chars 2795-2841, hits: 0) -- Statement (location: source ID 9, line 73, chars 2795-2841, hits: 0) -- Line (location: source ID 9, line 74, chars 2855-2873, hits: 0) -- Statement (location: source ID 9, line 74, chars 2855-2873, hits: 0) -- Branch (branch: 1, path: 0) (location: source ID 9, line 74, chars 2851-2922, hits: 0) -- Branch (branch: 1, path: 1) (location: source ID 9, line 74, chars 2851-2922, hits: 0) -- Line (location: source ID 9, line 75, chars 2889-2911, hits: 0) -- Statement (location: source ID 9, line 75, chars 2889-2911, hits: 0) -- Line (location: source ID 9, line 77, chars 2931-2950, hits: 0) -- Statement (location: source ID 9, line 77, chars 2931-2950, hits: 0) -- Function "isOffchainRandomReady" (location: source ID 9, line 80, chars 2963-3118, hits: 0) -- Line (location: source ID 9, line 81, chars 3059-3111, hits: 0) -- Statement (location: source ID 9, line 81, chars 3059-3111, hits: 0) - -Uncovered for contracts/token/erc1155/abstract/ERC1155Permit.Sol: -- Branch (branch: 1, path: 0) (location: source ID 11, line 32, chars 1220-1360, hits: 0) -- Line (location: source ID 11, line 33, chars 1285-1329, hits: 0) -- Statement (location: source ID 11, line 33, chars 1285-1329, hits: 0) -- Line (location: source ID 11, line 34, chars 1343-1350, hits: 0) -- Statement (location: source ID 11, line 34, chars 1343-1350, hits: 0) -- Branch (branch: 2, path: 0) (location: source ID 11, line 40, chars 1440-1690, hits: 0) -- Line (location: source ID 11, line 42, chars 1503-1679, hits: 0) -- Statement (location: source ID 11, line 42, chars 1503-1679, hits: 0) -- Branch (branch: 3, path: 1) (location: source ID 11, line 47, chars 1696-1820, hits: 0) -- Line (location: source ID 11, line 51, chars 1840-1865, hits: 0) -- Statement (location: source ID 11, line 51, chars 1840-1865, hits: 0) -- Function "DOMAIN_SEPARATOR" (location: source ID 11, line 76, chars 2563-2676, hits: 0) -- Line (location: source ID 11, line 77, chars 2642-2669, hits: 0) -- Statement (location: source ID 11, line 77, chars 2642-2669, hits: 0) -- Function "supportsInterface" (location: source ID 11, line 85, chars 2987-3255, hits: 0) -- Line (location: source ID 11, line 92, chars 3128-3248, hits: 0) -- Statement (location: source ID 11, line 92, chars 3128-3248, hits: 0) -- Branch (branch: 5, path: 0) (location: source ID 11, line 140, chars 4842-5056, hits: 0) -- Branch (branch: 5, path: 1) (location: source ID 11, line 140, chars 4842-5056, hits: 0) -- Line (location: source ID 11, line 141, chars 4889-4934, hits: 0) -- Statement (location: source ID 11, line 141, chars 4889-4934, hits: 0) -- Statement (location: source ID 11, line 141, chars 4909-4934, hits: 0) -- Line (location: source ID 11, line 142, chars 4952-5000, hits: 0) -- Statement (location: source ID 11, line 142, chars 4952-5000, hits: 0) -- Branch (branch: 6, path: 0) (location: source ID 11, line 142, chars 4948-5046, hits: 0) -- Branch (branch: 6, path: 1) (location: source ID 11, line 142, chars 4948-5046, hits: 0) -- Line (location: source ID 11, line 143, chars 5020-5031, hits: 0) -- Statement (location: source ID 11, line 143, chars 5020-5031, hits: 0) - -Uncovered for contracts/token/erc1155/abstract/ImmutableERC1155Base.sol: -- Function "setDefaultRoyaltyReceiver" (location: source ID 13, line 61, chars 1879-2048, hits: 0) -- Line (location: source ID 13, line 62, chars 1999-2041, hits: 0) -- Statement (location: source ID 13, line 62, chars 1999-2041, hits: 0) -- Function "setNFTRoyaltyReceiver" (location: source ID 13, line 71, chars 2328-2540, hits: 0) -- Line (location: source ID 13, line 76, chars 2484-2533, hits: 0) -- Statement (location: source ID 13, line 76, chars 2484-2533, hits: 0) -- Function "setNFTRoyaltyReceiverBatch" (location: source ID 13, line 85, chars 2822-3122, hits: 0) -- Line (location: source ID 13, line 90, chars 3000-3010, hits: 0) -- Statement (location: source ID 13, line 90, chars 3000-3010, hits: 0) -- Statement (location: source ID 13, line 90, chars 3012-3031, hits: 0) -- Statement (location: source ID 13, line 90, chars 3033-3036, hits: 0) -- Line (location: source ID 13, line 91, chars 3052-3105, hits: 0) -- Statement (location: source ID 13, line 91, chars 3052-3105, hits: 0) -- Function "revokeMinterRole" (location: source ID 13, line 107, chars 3522-3644, hits: 0) -- Line (location: source ID 13, line 108, chars 3608-3637, hits: 0) -- Statement (location: source ID 13, line 108, chars 3608-3637, hits: 0) -- Function "exists" (location: source ID 13, line 146, chars 4984-5090, hits: 0) -- Line (location: source ID 13, line 147, chars 5057-5083, hits: 0) -- Statement (location: source ID 13, line 147, chars 5057-5083, hits: 0) -- Function "supportsInterface" (location: source ID 13, line 155, chars 5395-5655, hits: 0) -- Line (location: source ID 13, line 164, chars 5605-5648, hits: 0) -- Statement (location: source ID 13, line 164, chars 5605-5648, hits: 0) -- Function "uri" (location: source ID 13, line 195, chars 6793-6900, hits: 0) -- Line (location: source ID 13, line 196, chars 6878-6893, hits: 0) -- Statement (location: source ID 13, line 196, chars 6878-6893, hits: 0) -- Function "getAdmins" (location: source ID 13, line 203, chars 7055-7394, hits: 0) -- Line (location: source ID 13, line 204, chars 7125-7184, hits: 0) -- Statement (location: source ID 13, line 204, chars 7125-7184, hits: 0) -- Statement (location: source ID 13, line 204, chars 7146-7184, hits: 0) -- Line (location: source ID 13, line 205, chars 7194-7245, hits: 0) -- Statement (location: source ID 13, line 205, chars 7194-7245, hits: 0) -- Statement (location: source ID 13, line 205, chars 7220-7245, hits: 0) -- Line (location: source ID 13, line 206, chars 7260-7269, hits: 0) -- Statement (location: source ID 13, line 206, chars 7260-7269, hits: 0) -- Statement (location: source ID 13, line 206, chars 7271-7285, hits: 0) -- Statement (location: source ID 13, line 206, chars 7287-7290, hits: 0) -- Line (location: source ID 13, line 207, chars 7306-7354, hits: 0) -- Statement (location: source ID 13, line 207, chars 7306-7354, hits: 0) -- Line (location: source ID 13, line 209, chars 7374-7387, hits: 0) -- Statement (location: source ID 13, line 209, chars 7374-7387, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 13, line 231, chars 8185-8341, hits: 0) -- Branch (branch: 1, path: 0) (location: source ID 13, line 237, chars 8351-8775, hits: 0) -- Branch (branch: 2, path: 0) (location: source ID 13, line 242, chars 8579-8648, hits: 0) - -Uncovered for contracts/token/erc1155/preset/draft-ImmutableERC1155.sol: - -Uncovered for contracts/token/erc721/abstract/ERC721Hybrid.sol: -- Function "burnBatch" (location: source ID 16, line 60, chars 1977-2135, hits: 0) -- Line (location: source ID 16, line 61, chars 2049-2059, hits: 0) -- Statement (location: source ID 16, line 61, chars 2049-2059, hits: 0) -- Statement (location: source ID 16, line 61, chars 2061-2080, hits: 0) -- Statement (location: source ID 16, line 61, chars 2082-2085, hits: 0) -- Line (location: source ID 16, line 62, chars 2101-2118, hits: 0) -- Statement (location: source ID 16, line 62, chars 2101-2118, hits: 0) -- Function "burn" (location: source ID 16, line 69, chars 2246-2455, hits: 0) -- Line (location: source ID 16, line 70, chars 2306-2348, hits: 0) -- Statement (location: source ID 16, line 70, chars 2306-2348, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 16, line 70, chars 2302-2425, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 16, line 70, chars 2302-2425, hits: 0) -- Line (location: source ID 16, line 71, chars 2364-2414, hits: 0) -- Statement (location: source ID 16, line 71, chars 2364-2414, hits: 0) -- Line (location: source ID 16, line 73, chars 2434-2448, hits: 0) -- Statement (location: source ID 16, line 73, chars 2434-2448, hits: 0) -- Function "safeBurn" (location: source ID 16, line 80, chars 2656-2928, hits: 0) -- Line (location: source ID 16, line 81, chars 2731-2770, hits: 0) -- Statement (location: source ID 16, line 81, chars 2731-2770, hits: 0) -- Statement (location: source ID 16, line 81, chars 2754-2770, hits: 0) -- Line (location: source ID 16, line 82, chars 2784-2805, hits: 0) -- Statement (location: source ID 16, line 82, chars 2784-2805, hits: 0) -- Branch (branch: 1, path: 0) (location: source ID 16, line 82, chars 2780-2898, hits: 0) -- Branch (branch: 1, path: 1) (location: source ID 16, line 82, chars 2780-2898, hits: 0) -- Line (location: source ID 16, line 83, chars 2821-2887, hits: 0) -- Statement (location: source ID 16, line 83, chars 2821-2887, hits: 0) -- Line (location: source ID 16, line 86, chars 2908-2921, hits: 0) -- Statement (location: source ID 16, line 86, chars 2908-2921, hits: 0) -- Function "mintBatchByQuantityThreshold" (location: source ID 16, line 92, chars 3053-3163, hits: 0) -- Line (location: source ID 16, line 93, chars 3141-3156, hits: 0) -- Statement (location: source ID 16, line 93, chars 3141-3156, hits: 0) -- Function "exists" (location: source ID 16, line 99, chars 3300-3408, hits: 0) -- Line (location: source ID 16, line 100, chars 3378-3401, hits: 0) -- Statement (location: source ID 16, line 100, chars 3378-3401, hits: 0) -- Function "balanceOf" (location: source ID 16, line 106, chars 3592-3765, hits: 0) -- Line (location: source ID 16, line 107, chars 3699-3758, hits: 0) -- Statement (location: source ID 16, line 107, chars 3699-3758, hits: 0) -- Function "totalSupply" (location: source ID 16, line 113, chars 3948-4105, hits: 0) -- Line (location: source ID 16, line 114, chars 4039-4098, hits: 0) -- Statement (location: source ID 16, line 114, chars 4039-4098, hits: 0) -- Function "ownerOf" (location: source ID 16, line 118, chars 4163-4423, hits: 0) -- Line (location: source ID 16, line 119, chars 4277-4317, hits: 0) -- Statement (location: source ID 16, line 119, chars 4277-4317, hits: 0) -- Branch (branch: 2, path: 0) (location: source ID 16, line 119, chars 4273-4374, hits: 0) -- Branch (branch: 2, path: 1) (location: source ID 16, line 119, chars 4273-4374, hits: 0) -- Line (location: source ID 16, line 120, chars 4333-4363, hits: 0) -- Statement (location: source ID 16, line 120, chars 4333-4363, hits: 0) -- Line (location: source ID 16, line 122, chars 4383-4416, hits: 0) -- Statement (location: source ID 16, line 122, chars 4383-4416, hits: 0) -- Function "tokenURI" (location: source ID 16, line 132, chars 4648-4803, hits: 0) -- Line (location: source ID 16, line 133, chars 4765-4796, hits: 0) -- Statement (location: source ID 16, line 133, chars 4765-4796, hits: 0) -- Function "name" (location: source ID 16, line 139, chars 4851-4976, hits: 0) -- Line (location: source ID 16, line 140, chars 4949-4969, hits: 0) -- Statement (location: source ID 16, line 140, chars 4949-4969, hits: 0) -- Function "symbol" (location: source ID 16, line 146, chars 5024-5153, hits: 0) -- Line (location: source ID 16, line 147, chars 5124-5146, hits: 0) -- Statement (location: source ID 16, line 147, chars 5124-5146, hits: 0) -- Function "supportsInterface" (location: source ID 16, line 153, chars 5201-5372, hits: 0) -- Line (location: source ID 16, line 154, chars 5321-5365, hits: 0) -- Statement (location: source ID 16, line 154, chars 5321-5365, hits: 0) -- Function "setApprovalForAll" (location: source ID 16, line 160, chars 5420-5591, hits: 0) -- Line (location: source ID 16, line 161, chars 5533-5584, hits: 0) -- Statement (location: source ID 16, line 161, chars 5533-5584, hits: 0) -- Function "safeTransferFrom" (location: source ID 16, line 167, chars 5639-5807, hits: 0) -- Line (location: source ID 16, line 168, chars 5761-5800, hits: 0) -- Statement (location: source ID 16, line 168, chars 5761-5800, hits: 0) -- Function "safeTransferFrom" (location: source ID 16, line 172, chars 5861-6243, hits: 0) -- Line (location: source ID 16, line 178, chars 6045-6085, hits: 0) -- Statement (location: source ID 16, line 178, chars 6045-6085, hits: 0) -- Branch (branch: 3, path: 0) (location: source ID 16, line 178, chars 6041-6168, hits: 0) -- Branch (branch: 3, path: 1) (location: source ID 16, line 178, chars 6041-6168, hits: 0) -- Line (location: source ID 16, line 179, chars 6101-6157, hits: 0) -- Statement (location: source ID 16, line 179, chars 6101-6157, hits: 0) -- Line (location: source ID 16, line 181, chars 6177-6236, hits: 0) -- Statement (location: source ID 16, line 181, chars 6177-6236, hits: 0) -- Function "isApprovedForAll" (location: source ID 16, line 185, chars 6297-6505, hits: 0) -- Line (location: source ID 16, line 189, chars 6451-6498, hits: 0) -- Statement (location: source ID 16, line 189, chars 6451-6498, hits: 0) -- Function "getApproved" (location: source ID 16, line 193, chars 6559-6831, hits: 0) -- Line (location: source ID 16, line 194, chars 6677-6717, hits: 0) -- Statement (location: source ID 16, line 194, chars 6677-6717, hits: 0) -- Branch (branch: 4, path: 0) (location: source ID 16, line 194, chars 6673-6778, hits: 0) -- Branch (branch: 4, path: 1) (location: source ID 16, line 194, chars 6673-6778, hits: 0) -- Line (location: source ID 16, line 195, chars 6733-6767, hits: 0) -- Statement (location: source ID 16, line 195, chars 6733-6767, hits: 0) -- Line (location: source ID 16, line 197, chars 6787-6824, hits: 0) -- Statement (location: source ID 16, line 197, chars 6787-6824, hits: 0) -- Function "approve" (location: source ID 16, line 201, chars 6885-7142, hits: 0) -- Line (location: source ID 16, line 202, chars 6988-7028, hits: 0) -- Statement (location: source ID 16, line 202, chars 6988-7028, hits: 0) -- Branch (branch: 5, path: 0) (location: source ID 16, line 202, chars 6984-7089, hits: 0) -- Branch (branch: 5, path: 1) (location: source ID 16, line 202, chars 6984-7089, hits: 0) -- Line (location: source ID 16, line 203, chars 7044-7078, hits: 0) -- Statement (location: source ID 16, line 203, chars 7044-7078, hits: 0) -- Line (location: source ID 16, line 205, chars 7098-7135, hits: 0) -- Statement (location: source ID 16, line 205, chars 7098-7135, hits: 0) -- Function "transferFrom" (location: source ID 16, line 209, chars 7196-7494, hits: 0) -- Line (location: source ID 16, line 210, chars 7318-7358, hits: 0) -- Statement (location: source ID 16, line 210, chars 7318-7358, hits: 0) -- Branch (branch: 6, path: 0) (location: source ID 16, line 210, chars 7314-7430, hits: 0) -- Branch (branch: 6, path: 1) (location: source ID 16, line 210, chars 7314-7430, hits: 0) -- Line (location: source ID 16, line 211, chars 7374-7419, hits: 0) -- Statement (location: source ID 16, line 211, chars 7374-7419, hits: 0) -- Line (location: source ID 16, line 213, chars 7439-7487, hits: 0) -- Statement (location: source ID 16, line 213, chars 7439-7487, hits: 0) -- Function "_mintByQuantity" (location: source ID 16, line 220, chars 7687-7797, hits: 0) -- Line (location: source ID 16, line 221, chars 7761-7790, hits: 0) -- Statement (location: source ID 16, line 221, chars 7761-7790, hits: 0) -- Function "_safeMintByQuantity" (location: source ID 16, line 228, chars 7995-8113, hits: 0) -- Line (location: source ID 16, line 229, chars 8073-8106, hits: 0) -- Statement (location: source ID 16, line 229, chars 8073-8106, hits: 0) -- Function "_mintBatchByQuantity" (location: source ID 16, line 235, chars 8272-8488, hits: 0) -- Line (location: source ID 16, line 236, chars 8349-8359, hits: 0) -- Statement (location: source ID 16, line 236, chars 8349-8359, hits: 0) -- Statement (location: source ID 16, line 236, chars 8361-8377, hits: 0) -- Statement (location: source ID 16, line 236, chars 8379-8382, hits: 0) -- Line (location: source ID 16, line 237, chars 8398-8424, hits: 0) -- Statement (location: source ID 16, line 237, chars 8398-8424, hits: 0) -- Line (location: source ID 16, line 238, chars 8438-8471, hits: 0) -- Statement (location: source ID 16, line 238, chars 8438-8471, hits: 0) -- Function "_safeMintBatchByQuantity" (location: source ID 16, line 245, chars 8652-8876, hits: 0) -- Line (location: source ID 16, line 246, chars 8733-8743, hits: 0) -- Statement (location: source ID 16, line 246, chars 8733-8743, hits: 0) -- Statement (location: source ID 16, line 246, chars 8745-8761, hits: 0) -- Statement (location: source ID 16, line 246, chars 8763-8766, hits: 0) -- Line (location: source ID 16, line 247, chars 8782-8808, hits: 0) -- Statement (location: source ID 16, line 247, chars 8782-8808, hits: 0) -- Line (location: source ID 16, line 248, chars 8822-8859, hits: 0) -- Statement (location: source ID 16, line 248, chars 8822-8859, hits: 0) -- Function "_mintByID" (location: source ID 16, line 257, chars 9087-9471, hits: 0) -- Line (location: source ID 16, line 258, chars 9158-9199, hits: 0) -- Statement (location: source ID 16, line 258, chars 9158-9199, hits: 0) -- Branch (branch: 7, path: 0) (location: source ID 16, line 258, chars 9154-9274, hits: 0) -- Branch (branch: 7, path: 1) (location: source ID 16, line 258, chars 9154-9274, hits: 0) -- Line (location: source ID 16, line 259, chars 9215-9263, hits: 0) -- Statement (location: source ID 16, line 259, chars 9215-9263, hits: 0) -- Line (location: source ID 16, line 262, chars 9288-9314, hits: 0) -- Statement (location: source ID 16, line 262, chars 9288-9314, hits: 0) -- Branch (branch: 8, path: 0) (location: source ID 16, line 262, chars 9284-9391, hits: 0) -- Branch (branch: 8, path: 1) (location: source ID 16, line 262, chars 9284-9391, hits: 0) -- Line (location: source ID 16, line 263, chars 9330-9380, hits: 0) -- Statement (location: source ID 16, line 263, chars 9330-9380, hits: 0) -- Line (location: source ID 16, line 266, chars 9409-9429, hits: 0) -- Statement (location: source ID 16, line 266, chars 9409-9429, hits: 0) -- Line (location: source ID 16, line 267, chars 9439-9464, hits: 0) -- Statement (location: source ID 16, line 267, chars 9439-9464, hits: 0) -- Function "_safeMintByID" (location: source ID 16, line 274, chars 9676-10064, hits: 0) -- Line (location: source ID 16, line 275, chars 9751-9792, hits: 0) -- Statement (location: source ID 16, line 275, chars 9751-9792, hits: 0) -- Branch (branch: 9, path: 0) (location: source ID 16, line 275, chars 9747-9867, hits: 0) -- Branch (branch: 9, path: 1) (location: source ID 16, line 275, chars 9747-9867, hits: 0) -- Line (location: source ID 16, line 276, chars 9808-9856, hits: 0) -- Statement (location: source ID 16, line 276, chars 9808-9856, hits: 0) -- Line (location: source ID 16, line 279, chars 9881-9907, hits: 0) -- Statement (location: source ID 16, line 279, chars 9881-9907, hits: 0) -- Branch (branch: 10, path: 0) (location: source ID 16, line 279, chars 9877-9984, hits: 0) -- Branch (branch: 10, path: 1) (location: source ID 16, line 279, chars 9877-9984, hits: 0) -- Line (location: source ID 16, line 280, chars 9923-9973, hits: 0) -- Statement (location: source ID 16, line 280, chars 9923-9973, hits: 0) -- Line (location: source ID 16, line 283, chars 9994-10014, hits: 0) -- Statement (location: source ID 16, line 283, chars 9994-10014, hits: 0) -- Line (location: source ID 16, line 284, chars 10024-10053, hits: 0) -- Statement (location: source ID 16, line 284, chars 10024-10053, hits: 0) -- Function "_mintBatchByID" (location: source ID 16, line 291, chars 10252-10436, hits: 0) -- Line (location: source ID 16, line 292, chars 10341-10351, hits: 0) -- Statement (location: source ID 16, line 292, chars 10341-10351, hits: 0) -- Statement (location: source ID 16, line 292, chars 10353-10372, hits: 0) -- Statement (location: source ID 16, line 292, chars 10374-10377, hits: 0) -- Line (location: source ID 16, line 293, chars 10393-10419, hits: 0) -- Statement (location: source ID 16, line 293, chars 10393-10419, hits: 0) -- Function "_safeMintBatchByID" (location: source ID 16, line 301, chars 10630-10822, hits: 0) -- Line (location: source ID 16, line 302, chars 10723-10733, hits: 0) -- Statement (location: source ID 16, line 302, chars 10723-10733, hits: 0) -- Statement (location: source ID 16, line 302, chars 10735-10754, hits: 0) -- Statement (location: source ID 16, line 302, chars 10756-10759, hits: 0) -- Line (location: source ID 16, line 303, chars 10775-10805, hits: 0) -- Statement (location: source ID 16, line 303, chars 10775-10805, hits: 0) -- Function "_mintBatchByIDToMultiple" (location: source ID 16, line 310, chars 10970-11193, hits: 0) -- Line (location: source ID 16, line 311, chars 11053-11063, hits: 0) -- Statement (location: source ID 16, line 311, chars 11053-11063, hits: 0) -- Statement (location: source ID 16, line 311, chars 11065-11081, hits: 0) -- Statement (location: source ID 16, line 311, chars 11083-11086, hits: 0) -- Line (location: source ID 16, line 312, chars 11102-11130, hits: 0) -- Statement (location: source ID 16, line 312, chars 11102-11130, hits: 0) -- Line (location: source ID 16, line 313, chars 11144-11176, hits: 0) -- Statement (location: source ID 16, line 313, chars 11144-11176, hits: 0) -- Function "_safeMintBatchByIDToMultiple" (location: source ID 16, line 320, chars 11346-11577, hits: 0) -- Line (location: source ID 16, line 321, chars 11433-11443, hits: 0) -- Statement (location: source ID 16, line 321, chars 11433-11443, hits: 0) -- Statement (location: source ID 16, line 321, chars 11445-11461, hits: 0) -- Statement (location: source ID 16, line 321, chars 11463-11466, hits: 0) -- Line (location: source ID 16, line 322, chars 11482-11510, hits: 0) -- Statement (location: source ID 16, line 322, chars 11482-11510, hits: 0) -- Line (location: source ID 16, line 323, chars 11524-11560, hits: 0) -- Statement (location: source ID 16, line 323, chars 11524-11560, hits: 0) -- Function "_safeBurnBatch" (location: source ID 16, line 330, chars 11741-12031, hits: 0) -- Line (location: source ID 16, line 331, chars 11814-11824, hits: 0) -- Statement (location: source ID 16, line 331, chars 11814-11824, hits: 0) -- Statement (location: source ID 16, line 331, chars 11826-11842, hits: 0) -- Statement (location: source ID 16, line 331, chars 11844-11847, hits: 0) -- Line (location: source ID 16, line 332, chars 11863-11891, hits: 0) -- Statement (location: source ID 16, line 332, chars 11863-11891, hits: 0) -- Line (location: source ID 16, line 333, chars 11910-11920, hits: 0) -- Statement (location: source ID 16, line 333, chars 11910-11920, hits: 0) -- Statement (location: source ID 16, line 333, chars 11922-11943, hits: 0) -- Statement (location: source ID 16, line 333, chars 11945-11948, hits: 0) -- Line (location: source ID 16, line 334, chars 11968-12000, hits: 0) -- Statement (location: source ID 16, line 334, chars 11968-12000, hits: 0) -- Function "_transfer" (location: source ID 16, line 340, chars 12085-12383, hits: 0) -- Line (location: source ID 16, line 341, chars 12206-12246, hits: 0) -- Statement (location: source ID 16, line 341, chars 12206-12246, hits: 0) -- Branch (branch: 11, path: 0) (location: source ID 16, line 341, chars 12202-12308, hits: 0) -- Branch (branch: 11, path: 1) (location: source ID 16, line 341, chars 12202-12308, hits: 0) -- Line (location: source ID 16, line 342, chars 12262-12297, hits: 0) -- Statement (location: source ID 16, line 342, chars 12262-12297, hits: 0) -- Line (location: source ID 16, line 344, chars 12328-12366, hits: 0) -- Statement (location: source ID 16, line 344, chars 12328-12366, hits: 0) -- Function "_burn" (location: source ID 16, line 352, chars 12644-12974, hits: 0) -- Line (location: source ID 16, line 353, chars 12743-12783, hits: 0) -- Statement (location: source ID 16, line 353, chars 12743-12783, hits: 0) -- Branch (branch: 12, path: 0) (location: source ID 16, line 353, chars 12739-12905, hits: 0) -- Branch (branch: 12, path: 1) (location: source ID 16, line 353, chars 12739-12905, hits: 0) -- Line (location: source ID 16, line 354, chars 12799-12820, hits: 0) -- Statement (location: source ID 16, line 354, chars 12799-12820, hits: 0) -- Line (location: source ID 16, line 355, chars 12834-12860, hits: 0) -- Statement (location: source ID 16, line 355, chars 12834-12860, hits: 0) -- Line (location: source ID 16, line 356, chars 12874-12894, hits: 0) -- Statement (location: source ID 16, line 356, chars 12874-12894, hits: 0) -- Line (location: source ID 16, line 358, chars 12925-12957, hits: 0) -- Statement (location: source ID 16, line 358, chars 12925-12957, hits: 0) -- Function "_approve" (location: source ID 16, line 363, chars 13028-13290, hits: 0) -- Line (location: source ID 16, line 364, chars 13134-13174, hits: 0) -- Statement (location: source ID 16, line 364, chars 13134-13174, hits: 0) -- Branch (branch: 13, path: 0) (location: source ID 16, line 364, chars 13130-13236, hits: 0) -- Branch (branch: 13, path: 1) (location: source ID 16, line 364, chars 13130-13236, hits: 0) -- Line (location: source ID 16, line 365, chars 13190-13225, hits: 0) -- Statement (location: source ID 16, line 365, chars 13190-13225, hits: 0) -- Line (location: source ID 16, line 367, chars 13245-13283, hits: 0) -- Statement (location: source ID 16, line 367, chars 13245-13283, hits: 0) -- Function "_safeTransfer" (location: source ID 16, line 371, chars 13344-13719, hits: 0) -- Line (location: source ID 16, line 377, chars 13527-13567, hits: 0) -- Statement (location: source ID 16, line 377, chars 13527-13567, hits: 0) -- Branch (branch: 14, path: 0) (location: source ID 16, line 377, chars 13523-13647, hits: 0) -- Branch (branch: 14, path: 1) (location: source ID 16, line 377, chars 13523-13647, hits: 0) -- Line (location: source ID 16, line 378, chars 13583-13636, hits: 0) -- Statement (location: source ID 16, line 378, chars 13583-13636, hits: 0) -- Line (location: source ID 16, line 380, chars 13656-13712, hits: 0) -- Statement (location: source ID 16, line 380, chars 13656-13712, hits: 0) -- Function "_safeMint" (location: source ID 16, line 391, chars 14178-14316, hits: 0) -- Line (location: source ID 16, line 392, chars 14281-14309, hits: 0) -- Statement (location: source ID 16, line 392, chars 14281-14309, hits: 0) -- Function "_safeMint" (location: source ID 16, line 398, chars 14511-14676, hits: 0) -- Line (location: source ID 16, line 399, chars 14634-14669, hits: 0) -- Statement (location: source ID 16, line 399, chars 14634-14669, hits: 0) -- Function "_mint" (location: source ID 16, line 405, chars 14867-14997, hits: 0) -- Line (location: source ID 16, line 406, chars 14966-14990, hits: 0) -- Statement (location: source ID 16, line 406, chars 14966-14990, hits: 0) -- Function "_isApprovedOrOwner" (location: source ID 16, line 410, chars 15051-15400, hits: 0) -- Line (location: source ID 16, line 414, chars 15214-15254, hits: 0) -- Statement (location: source ID 16, line 414, chars 15214-15254, hits: 0) -- Branch (branch: 15, path: 0) (location: source ID 16, line 414, chars 15210-15331, hits: 0) -- Branch (branch: 15, path: 1) (location: source ID 16, line 414, chars 15210-15331, hits: 0) -- Line (location: source ID 16, line 415, chars 15270-15320, hits: 0) -- Statement (location: source ID 16, line 415, chars 15270-15320, hits: 0) -- Line (location: source ID 16, line 417, chars 15340-15393, hits: 0) -- Statement (location: source ID 16, line 417, chars 15340-15393, hits: 0) -- Function "_exists" (location: source ID 16, line 421, chars 15454-15777, hits: 0) -- Line (location: source ID 16, line 422, chars 15575-15615, hits: 0) -- Statement (location: source ID 16, line 422, chars 15575-15615, hits: 0) -- Branch (branch: 16, path: 0) (location: source ID 16, line 422, chars 15571-15720, hits: 0) -- Branch (branch: 16, path: 1) (location: source ID 16, line 422, chars 15571-15720, hits: 0) -- Line (location: source ID 16, line 423, chars 15631-15709, hits: 0) -- Statement (location: source ID 16, line 423, chars 15631-15709, hits: 0) -- Line (location: source ID 16, line 425, chars 15729-15770, hits: 0) -- Statement (location: source ID 16, line 425, chars 15729-15770, hits: 0) -- Function "_startTokenId" (location: source ID 16, line 429, chars 15876-16015, hits: 0) -- Line (location: source ID 16, line 430, chars 15971-16008, hits: 0) -- Statement (location: source ID 16, line 430, chars 15971-16008, hits: 0) -- Function "_baseURI" (location: source ID 16, line 436, chars 16063-16198, hits: 0) -- Line (location: source ID 16, line 437, chars 16167-16191, hits: 0) -- Statement (location: source ID 16, line 437, chars 16167-16191, hits: 0) - -Uncovered for contracts/token/erc721/abstract/ERC721HybridPermit.sol: -- Function "permit" (location: source ID 17, line 46, chars 1738-1899, hits: 0) -- Line (location: source ID 17, line 47, chars 1852-1892, hits: 0) -- Statement (location: source ID 17, line 47, chars 1852-1892, hits: 0) -- Function "nonces" (location: source ID 17, line 55, chars 2107-2212, hits: 0) -- Line (location: source ID 17, line 56, chars 2182-2205, hits: 0) -- Statement (location: source ID 17, line 56, chars 2182-2205, hits: 0) -- Function "DOMAIN_SEPARATOR" (location: source ID 17, line 63, chars 2395-2508, hits: 0) -- Line (location: source ID 17, line 64, chars 2474-2501, hits: 0) -- Statement (location: source ID 17, line 64, chars 2474-2501, hits: 0) -- Function "supportsInterface" (location: source ID 17, line 72, chars 2819-3076, hits: 0) -- Line (location: source ID 17, line 73, chars 2943-3069, hits: 0) -- Statement (location: source ID 17, line 73, chars 2943-3069, hits: 0) -- Function "_transfer" (location: source ID 17, line 84, chars 3419-3600, hits: 0) -- Line (location: source ID 17, line 85, chars 3531-3549, hits: 0) -- Statement (location: source ID 17, line 85, chars 3531-3549, hits: 0) -- Line (location: source ID 17, line 86, chars 3559-3593, hits: 0) -- Statement (location: source ID 17, line 86, chars 3559-3593, hits: 0) -- Function "_permit" (location: source ID 17, line 89, chars 3606-4760, hits: 0) -- Line (location: source ID 17, line 90, chars 3724-3750, hits: 0) -- Statement (location: source ID 17, line 90, chars 3724-3750, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 17, line 90, chars 3720-3799, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 17, line 90, chars 3720-3799, hits: 0) -- Line (location: source ID 17, line 91, chars 3766-3788, hits: 0) -- Statement (location: source ID 17, line 91, chars 3766-3788, hits: 0) -- Line (location: source ID 17, line 94, chars 3809-3872, hits: 0) -- Statement (location: source ID 17, line 94, chars 3809-3872, hits: 0) -- Statement (location: source ID 17, line 94, chars 3826-3872, hits: 0) -- Line (location: source ID 17, line 97, chars 3941-3996, hits: 0) -- Statement (location: source ID 17, line 97, chars 3941-3996, hits: 0) -- Branch (branch: 1, path: 0) (location: source ID 17, line 97, chars 3937-4069, hits: 0) -- Branch (branch: 1, path: 1) (location: source ID 17, line 97, chars 3937-4069, hits: 0) -- Line (location: source ID 17, line 98, chars 4012-4038, hits: 0) -- Statement (location: source ID 17, line 98, chars 4012-4038, hits: 0) -- Line (location: source ID 17, line 99, chars 4052-4059, hits: 0) -- Statement (location: source ID 17, line 99, chars 4052-4059, hits: 0) -- Line (location: source ID 17, line 102, chars 4079-4102, hits: 0) -- Statement (location: source ID 17, line 102, chars 4079-4102, hits: 0) -- Line (location: source ID 17, line 105, chars 4153-4169, hits: 0) -- Statement (location: source ID 17, line 105, chars 4153-4169, hits: 0) -- Branch (branch: 2, path: 0) (location: source ID 17, line 105, chars 4149-4399, hits: 0) -- Branch (branch: 2, path: 1) (location: source ID 17, line 105, chars 4149-4399, hits: 0) -- Line (location: source ID 17, line 107, chars 4212-4388, hits: 0) -- Statement (location: source ID 17, line 107, chars 4212-4388, hits: 0) -- Line (location: source ID 17, line 112, chars 4409-4425, hits: 0) -- Statement (location: source ID 17, line 112, chars 4409-4425, hits: 0) -- Branch (branch: 3, path: 0) (location: source ID 17, line 112, chars 4405-4529, hits: 0) -- Branch (branch: 3, path: 1) (location: source ID 17, line 112, chars 4405-4529, hits: 0) -- Line (location: source ID 17, line 114, chars 4474-4518, hits: 0) -- Statement (location: source ID 17, line 114, chars 4474-4518, hits: 0) -- Line (location: source ID 17, line 116, chars 4549-4574, hits: 0) -- Statement (location: source ID 17, line 116, chars 4549-4574, hits: 0) -- Line (location: source ID 17, line 119, chars 4599-4645, hits: 0) -- Statement (location: source ID 17, line 119, chars 4599-4645, hits: 0) -- Branch (branch: 4, path: 0) (location: source ID 17, line 119, chars 4595-4698, hits: 0) -- Branch (branch: 4, path: 1) (location: source ID 17, line 119, chars 4595-4698, hits: 0) -- Line (location: source ID 17, line 120, chars 4661-4687, hits: 0) -- Statement (location: source ID 17, line 120, chars 4661-4687, hits: 0) -- Line (location: source ID 17, line 122, chars 4718-4743, hits: 0) -- Statement (location: source ID 17, line 122, chars 4718-4743, hits: 0) -- Function "_buildPermitDigest" (location: source ID 17, line 133, chars 5176-5415, hits: 0) -- Line (location: source ID 17, line 134, chars 5298-5408, hits: 0) -- Statement (location: source ID 17, line 134, chars 5298-5408, hits: 0) -- Function "_isValidEOASignature" (location: source ID 17, line 143, chars 5726-5927, hits: 0) -- Line (location: source ID 17, line 144, chars 5836-5920, hits: 0) -- Statement (location: source ID 17, line 144, chars 5836-5920, hits: 0) -- Function "_isValidERC1271Signature" (location: source ID 17, line 154, chars 6300-6825, hits: 0) -- Line (location: source ID 17, line 155, chars 6423-6571, hits: 0) -- Statement (location: source ID 17, line 155, chars 6423-6571, hits: 0) -- Statement (location: source ID 17, line 155, chars 6458-6571, hits: 0) -- Line (location: source ID 17, line 159, chars 6586-6613, hits: 0) -- Statement (location: source ID 17, line 159, chars 6586-6613, hits: 0) -- Branch (branch: 5, path: 0) (location: source ID 17, line 159, chars 6582-6796, hits: 0) -- Branch (branch: 5, path: 1) (location: source ID 17, line 159, chars 6582-6796, hits: 0) -- Line (location: source ID 17, line 160, chars 6629-6674, hits: 0) -- Statement (location: source ID 17, line 160, chars 6629-6674, hits: 0) -- Statement (location: source ID 17, line 160, chars 6649-6674, hits: 0) -- Line (location: source ID 17, line 161, chars 6692-6740, hits: 0) -- Statement (location: source ID 17, line 161, chars 6692-6740, hits: 0) -- Branch (branch: 6, path: 0) (location: source ID 17, line 161, chars 6688-6786, hits: 0) -- Branch (branch: 6, path: 1) (location: source ID 17, line 161, chars 6688-6786, hits: 0) -- Line (location: source ID 17, line 162, chars 6760-6771, hits: 0) -- Statement (location: source ID 17, line 162, chars 6760-6771, hits: 0) -- Line (location: source ID 17, line 166, chars 6806-6818, hits: 0) -- Statement (location: source ID 17, line 166, chars 6806-6818, hits: 0) - -Uncovered for contracts/token/erc721/abstract/ERC721Permit.sol: -- Function "permit" (location: source ID 18, line 52, chars 1866-2065, hits: 0) -- Line (location: source ID 18, line 58, chars 2018-2058, hits: 0) -- Statement (location: source ID 18, line 58, chars 2018-2058, hits: 0) -- Function "nonces" (location: source ID 18, line 66, chars 2273-2392, hits: 0) -- Line (location: source ID 18, line 69, chars 2362-2385, hits: 0) -- Statement (location: source ID 18, line 69, chars 2362-2385, hits: 0) -- Function "DOMAIN_SEPARATOR" (location: source ID 18, line 76, chars 2575-2688, hits: 0) -- Line (location: source ID 18, line 77, chars 2654-2681, hits: 0) -- Statement (location: source ID 18, line 77, chars 2654-2681, hits: 0) -- Function "supportsInterface" (location: source ID 18, line 85, chars 2999-3269, hits: 0) -- Line (location: source ID 18, line 92, chars 3148-3262, hits: 0) -- Statement (location: source ID 18, line 92, chars 3148-3262, hits: 0) -- Function "_transfer" (location: source ID 18, line 103, chars 3612-3816, hits: 0) -- Line (location: source ID 18, line 108, chars 3747-3765, hits: 0) -- Statement (location: source ID 18, line 108, chars 3747-3765, hits: 0) -- Line (location: source ID 18, line 109, chars 3775-3809, hits: 0) -- Statement (location: source ID 18, line 109, chars 3775-3809, hits: 0) -- Function "_permit" (location: source ID 18, line 112, chars 3822-5007, hits: 0) -- Line (location: source ID 18, line 118, chars 3978-4004, hits: 0) -- Statement (location: source ID 18, line 118, chars 3978-4004, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 18, line 118, chars 3974-4053, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 18, line 118, chars 3974-4053, hits: 0) -- Line (location: source ID 18, line 119, chars 4020-4042, hits: 0) -- Statement (location: source ID 18, line 119, chars 4020-4042, hits: 0) -- Line (location: source ID 18, line 122, chars 4063-4126, hits: 0) -- Statement (location: source ID 18, line 122, chars 4063-4126, hits: 0) -- Statement (location: source ID 18, line 122, chars 4080-4126, hits: 0) -- Line (location: source ID 18, line 125, chars 4188-4243, hits: 0) -- Statement (location: source ID 18, line 125, chars 4188-4243, hits: 0) -- Branch (branch: 1, path: 0) (location: source ID 18, line 125, chars 4184-4316, hits: 0) -- Branch (branch: 1, path: 1) (location: source ID 18, line 125, chars 4184-4316, hits: 0) -- Line (location: source ID 18, line 126, chars 4259-4285, hits: 0) -- Statement (location: source ID 18, line 126, chars 4259-4285, hits: 0) -- Line (location: source ID 18, line 127, chars 4299-4306, hits: 0) -- Statement (location: source ID 18, line 127, chars 4299-4306, hits: 0) -- Line (location: source ID 18, line 130, chars 4326-4349, hits: 0) -- Statement (location: source ID 18, line 130, chars 4326-4349, hits: 0) -- Line (location: source ID 18, line 133, chars 4400-4416, hits: 0) -- Statement (location: source ID 18, line 133, chars 4400-4416, hits: 0) -- Branch (branch: 2, path: 0) (location: source ID 18, line 133, chars 4396-4646, hits: 0) -- Branch (branch: 2, path: 1) (location: source ID 18, line 133, chars 4396-4646, hits: 0) -- Line (location: source ID 18, line 135, chars 4459-4635, hits: 0) -- Statement (location: source ID 18, line 135, chars 4459-4635, hits: 0) -- Line (location: source ID 18, line 140, chars 4656-4672, hits: 0) -- Statement (location: source ID 18, line 140, chars 4656-4672, hits: 0) -- Branch (branch: 3, path: 0) (location: source ID 18, line 140, chars 4652-4776, hits: 0) -- Branch (branch: 3, path: 1) (location: source ID 18, line 140, chars 4652-4776, hits: 0) -- Line (location: source ID 18, line 142, chars 4721-4765, hits: 0) -- Statement (location: source ID 18, line 142, chars 4721-4765, hits: 0) -- Line (location: source ID 18, line 144, chars 4796-4821, hits: 0) -- Statement (location: source ID 18, line 144, chars 4796-4821, hits: 0) -- Line (location: source ID 18, line 147, chars 4846-4892, hits: 0) -- Statement (location: source ID 18, line 147, chars 4846-4892, hits: 0) -- Branch (branch: 4, path: 0) (location: source ID 18, line 147, chars 4842-4945, hits: 0) -- Branch (branch: 4, path: 1) (location: source ID 18, line 147, chars 4842-4945, hits: 0) -- Line (location: source ID 18, line 148, chars 4908-4934, hits: 0) -- Statement (location: source ID 18, line 148, chars 4908-4934, hits: 0) -- Line (location: source ID 18, line 150, chars 4965-4990, hits: 0) -- Statement (location: source ID 18, line 150, chars 4965-4990, hits: 0) -- Function "_buildPermitDigest" (location: source ID 18, line 161, chars 5423-5862, hits: 0) -- Line (location: source ID 18, line 166, chars 5575-5855, hits: 0) -- Statement (location: source ID 18, line 166, chars 5575-5855, hits: 0) -- Function "_isValidEOASignature" (location: source ID 18, line 185, chars 6173-6373, hits: 0) -- Line (location: source ID 18, line 186, chars 6282-6366, hits: 0) -- Statement (location: source ID 18, line 186, chars 6282-6366, hits: 0) -- Function "_isValidERC1271Signature" (location: source ID 18, line 196, chars 6746-7332, hits: 0) -- Line (location: source ID 18, line 197, chars 6868-7078, hits: 0) -- Statement (location: source ID 18, line 197, chars 6868-7078, hits: 0) -- Statement (location: source ID 18, line 197, chars 6903-7078, hits: 0) -- Line (location: source ID 18, line 205, chars 7093-7120, hits: 0) -- Statement (location: source ID 18, line 205, chars 7093-7120, hits: 0) -- Branch (branch: 5, path: 0) (location: source ID 18, line 205, chars 7089-7303, hits: 0) -- Branch (branch: 5, path: 1) (location: source ID 18, line 205, chars 7089-7303, hits: 0) -- Line (location: source ID 18, line 206, chars 7136-7181, hits: 0) -- Statement (location: source ID 18, line 206, chars 7136-7181, hits: 0) -- Statement (location: source ID 18, line 206, chars 7156-7181, hits: 0) -- Line (location: source ID 18, line 207, chars 7199-7247, hits: 0) -- Statement (location: source ID 18, line 207, chars 7199-7247, hits: 0) -- Branch (branch: 6, path: 0) (location: source ID 18, line 207, chars 7195-7293, hits: 0) -- Branch (branch: 6, path: 1) (location: source ID 18, line 207, chars 7195-7293, hits: 0) -- Line (location: source ID 18, line 208, chars 7267-7278, hits: 0) -- Statement (location: source ID 18, line 208, chars 7267-7278, hits: 0) -- Line (location: source ID 18, line 212, chars 7313-7325, hits: 0) -- Statement (location: source ID 18, line 212, chars 7313-7325, hits: 0) - -Uncovered for contracts/token/erc721/abstract/ImmutableERC721Base.sol: -- Function "setDefaultRoyaltyReceiver" (location: source ID 20, line 100, chars 3242-3411, hits: 0) -- Line (location: source ID 20, line 101, chars 3362-3404, hits: 0) -- Statement (location: source ID 20, line 101, chars 3362-3404, hits: 0) -- Function "setNFTRoyaltyReceiver" (location: source ID 20, line 110, chars 3770-3982, hits: 0) -- Line (location: source ID 20, line 115, chars 3926-3975, hits: 0) -- Statement (location: source ID 20, line 115, chars 3926-3975, hits: 0) -- Function "setNFTRoyaltyReceiverBatch" (location: source ID 20, line 124, chars 4350-4650, hits: 0) -- Line (location: source ID 20, line 129, chars 4528-4538, hits: 0) -- Statement (location: source ID 20, line 129, chars 4528-4538, hits: 0) -- Statement (location: source ID 20, line 129, chars 4540-4559, hits: 0) -- Statement (location: source ID 20, line 129, chars 4561-4564, hits: 0) -- Line (location: source ID 20, line 130, chars 4580-4633, hits: 0) -- Statement (location: source ID 20, line 130, chars 4580-4633, hits: 0) -- Function "burn" (location: source ID 20, line 138, chars 4818-4977, hits: 0) -- Line (location: source ID 20, line 139, chars 4891-4910, hits: 0) -- Statement (location: source ID 20, line 139, chars 4891-4910, hits: 0) -- Line (location: source ID 20, line 140, chars 4920-4946, hits: 0) -- Statement (location: source ID 20, line 140, chars 4920-4946, hits: 0) -- Line (location: source ID 20, line 141, chars 4956-4970, hits: 0) -- Statement (location: source ID 20, line 141, chars 4956-4970, hits: 0) -- Function "safeBurn" (location: source ID 20, line 148, chars 5167-5439, hits: 0) -- Line (location: source ID 20, line 149, chars 5242-5281, hits: 0) -- Statement (location: source ID 20, line 149, chars 5242-5281, hits: 0) -- Statement (location: source ID 20, line 149, chars 5265-5281, hits: 0) -- Line (location: source ID 20, line 150, chars 5295-5316, hits: 0) -- Statement (location: source ID 20, line 150, chars 5295-5316, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 20, line 150, chars 5291-5409, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 20, line 150, chars 5291-5409, hits: 0) -- Line (location: source ID 20, line 151, chars 5332-5398, hits: 0) -- Statement (location: source ID 20, line 151, chars 5332-5398, hits: 0) -- Line (location: source ID 20, line 154, chars 5419-5432, hits: 0) -- Statement (location: source ID 20, line 154, chars 5419-5432, hits: 0) -- Function "_safeBurnBatch" (location: source ID 20, line 160, chars 5634-5930, hits: 0) -- Line (location: source ID 20, line 161, chars 5713-5723, hits: 0) -- Statement (location: source ID 20, line 161, chars 5713-5723, hits: 0) -- Statement (location: source ID 20, line 161, chars 5725-5741, hits: 0) -- Statement (location: source ID 20, line 161, chars 5743-5746, hits: 0) -- Line (location: source ID 20, line 162, chars 5762-5790, hits: 0) -- Statement (location: source ID 20, line 162, chars 5762-5790, hits: 0) -- Line (location: source ID 20, line 163, chars 5809-5819, hits: 0) -- Statement (location: source ID 20, line 163, chars 5809-5819, hits: 0) -- Statement (location: source ID 20, line 163, chars 5821-5842, hits: 0) -- Statement (location: source ID 20, line 163, chars 5844-5847, hits: 0) -- Line (location: source ID 20, line 164, chars 5867-5899, hits: 0) -- Statement (location: source ID 20, line 164, chars 5867-5899, hits: 0) -- Function "setBaseURI" (location: source ID 20, line 173, chars 6087-6202, hits: 0) -- Line (location: source ID 20, line 174, chars 6177-6195, hits: 0) -- Statement (location: source ID 20, line 174, chars 6177-6195, hits: 0) -- Function "setContractURI" (location: source ID 20, line 181, chars 6367-6498, hits: 0) -- Line (location: source ID 20, line 182, chars 6465-6491, hits: 0) -- Statement (location: source ID 20, line 182, chars 6465-6491, hits: 0) -- Function "setApprovalForAll" (location: source ID 20, line 189, chars 6610-6781, hits: 0) -- Line (location: source ID 20, line 190, chars 6731-6774, hits: 0) -- Statement (location: source ID 20, line 190, chars 6731-6774, hits: 0) -- Function "supportsInterface" (location: source ID 20, line 196, chars 6907-7191, hits: 0) -- Line (location: source ID 20, line 205, chars 7141-7184, hits: 0) -- Statement (location: source ID 20, line 205, chars 7141-7184, hits: 0) -- Function "totalSupply" (location: source ID 20, line 209, chars 7261-7358, hits: 0) -- Line (location: source ID 20, line 210, chars 7332-7351, hits: 0) -- Statement (location: source ID 20, line 210, chars 7332-7351, hits: 0) -- Function "_approve" (location: source ID 20, line 217, chars 7472-7610, hits: 0) -- Line (location: source ID 20, line 218, chars 7576-7603, hits: 0) -- Statement (location: source ID 20, line 218, chars 7576-7603, hits: 0) -- Function "_transfer" (location: source ID 20, line 225, chars 7739-7941, hits: 0) -- Line (location: source ID 20, line 230, chars 7900-7934, hits: 0) -- Statement (location: source ID 20, line 230, chars 7900-7934, hits: 0) -- Function "_batchMint" (location: source ID 20, line 239, chars 8219-8622, hits: 0) -- Line (location: source ID 20, line 240, chars 8291-8319, hits: 0) -- Statement (location: source ID 20, line 240, chars 8291-8319, hits: 0) -- Branch (branch: 1, path: 0) (location: source ID 20, line 240, chars 8287-8393, hits: 0) -- Branch (branch: 1, path: 1) (location: source ID 20, line 240, chars 8287-8393, hits: 0) -- Line (location: source ID 20, line 241, chars 8335-8382, hits: 0) -- Statement (location: source ID 20, line 241, chars 8335-8382, hits: 0) -- Line (location: source ID 20, line 244, chars 8411-8468, hits: 0) -- Statement (location: source ID 20, line 244, chars 8411-8468, hits: 0) -- Line (location: source ID 20, line 245, chars 8483-8496, hits: 0) -- Statement (location: source ID 20, line 245, chars 8483-8496, hits: 0) -- Statement (location: source ID 20, line 245, chars 8498-8529, hits: 0) -- Statement (location: source ID 20, line 245, chars 8531-8534, hits: 0) -- Line (location: source ID 20, line 246, chars 8550-8596, hits: 0) -- Statement (location: source ID 20, line 246, chars 8550-8596, hits: 0) -- Function "_safeBatchMint" (location: source ID 20, line 255, chars 8863-9252, hits: 0) -- Line (location: source ID 20, line 256, chars 8939-8967, hits: 0) -- Statement (location: source ID 20, line 256, chars 8939-8967, hits: 0) -- Branch (branch: 2, path: 0) (location: source ID 20, line 256, chars 8935-9041, hits: 0) -- Branch (branch: 2, path: 1) (location: source ID 20, line 256, chars 8935-9041, hits: 0) -- Line (location: source ID 20, line 257, chars 8983-9030, hits: 0) -- Statement (location: source ID 20, line 257, chars 8983-9030, hits: 0) -- Line (location: source ID 20, line 259, chars 9055-9064, hits: 0) -- Statement (location: source ID 20, line 259, chars 9055-9064, hits: 0) -- Statement (location: source ID 20, line 259, chars 9066-9097, hits: 0) -- Statement (location: source ID 20, line 259, chars 9099-9102, hits: 0) -- Line (location: source ID 20, line 260, chars 9118-9168, hits: 0) -- Statement (location: source ID 20, line 260, chars 9118-9168, hits: 0) -- Line (location: source ID 20, line 262, chars 9188-9245, hits: 0) -- Statement (location: source ID 20, line 262, chars 9188-9245, hits: 0) -- Function "_mint" (location: source ID 20, line 270, chars 9460-9687, hits: 0) -- Line (location: source ID 20, line 271, chars 9544-9570, hits: 0) -- Statement (location: source ID 20, line 271, chars 9544-9570, hits: 0) -- Branch (branch: 3, path: 0) (location: source ID 20, line 271, chars 9540-9647, hits: 0) -- Branch (branch: 3, path: 1) (location: source ID 20, line 271, chars 9540-9647, hits: 0) -- Line (location: source ID 20, line 272, chars 9586-9636, hits: 0) -- Statement (location: source ID 20, line 272, chars 9586-9636, hits: 0) -- Line (location: source ID 20, line 274, chars 9656-9680, hits: 0) -- Statement (location: source ID 20, line 274, chars 9656-9680, hits: 0) -- Function "_safeMint" (location: source ID 20, line 282, chars 9904-10139, hits: 0) -- Line (location: source ID 20, line 283, chars 9992-10018, hits: 0) -- Statement (location: source ID 20, line 283, chars 9992-10018, hits: 0) -- Branch (branch: 4, path: 0) (location: source ID 20, line 283, chars 9988-10095, hits: 0) -- Branch (branch: 4, path: 1) (location: source ID 20, line 283, chars 9988-10095, hits: 0) -- Line (location: source ID 20, line 284, chars 10034-10084, hits: 0) -- Statement (location: source ID 20, line 284, chars 10034-10084, hits: 0) -- Line (location: source ID 20, line 286, chars 10104-10132, hits: 0) -- Statement (location: source ID 20, line 286, chars 10104-10132, hits: 0) -- Function "_baseURI" (location: source ID 20, line 290, chars 10181-10295, hits: 0) -- Line (location: source ID 20, line 291, chars 10274-10288, hits: 0) -- Statement (location: source ID 20, line 291, chars 10274-10288, hits: 0) - -Uncovered for contracts/token/erc721/abstract/ImmutableERC721HybridBase.sol: -- Function "supportsInterface" (location: source ID 21, line 51, chars 2034-2324, hits: 0) -- Line (location: source ID 21, line 60, chars 2274-2317, hits: 0) -- Statement (location: source ID 21, line 60, chars 2274-2317, hits: 0) -- Function "_baseURI" (location: source ID 21, line 64, chars 2384-2490, hits: 0) -- Line (location: source ID 21, line 65, chars 2469-2483, hits: 0) -- Statement (location: source ID 21, line 65, chars 2469-2483, hits: 0) -- Function "setBaseURI" (location: source ID 21, line 71, chars 2597-2712, hits: 0) -- Line (location: source ID 21, line 72, chars 2687-2705, hits: 0) -- Statement (location: source ID 21, line 72, chars 2687-2705, hits: 0) -- Function "setContractURI" (location: source ID 21, line 79, chars 2877-3008, hits: 0) -- Line (location: source ID 21, line 80, chars 2975-3001, hits: 0) -- Statement (location: source ID 21, line 80, chars 2975-3001, hits: 0) -- Function "setApprovalForAll" (location: source ID 21, line 87, chars 3126-3333, hits: 0) -- Line (location: source ID 21, line 91, chars 3283-3326, hits: 0) -- Statement (location: source ID 21, line 91, chars 3283-3326, hits: 0) -- Function "_approve" (location: source ID 21, line 98, chars 3453-3605, hits: 0) -- Line (location: source ID 21, line 99, chars 3571-3598, hits: 0) -- Statement (location: source ID 21, line 99, chars 3571-3598, hits: 0) -- Function "_transfer" (location: source ID 21, line 106, chars 3740-3956, hits: 0) -- Line (location: source ID 21, line 111, chars 3915-3949, hits: 0) -- Statement (location: source ID 21, line 111, chars 3915-3949, hits: 0) -- Function "setDefaultRoyaltyReceiver" (location: source ID 21, line 119, chars 4245-4414, hits: 0) -- Line (location: source ID 21, line 120, chars 4365-4407, hits: 0) -- Statement (location: source ID 21, line 120, chars 4365-4407, hits: 0) -- Function "setNFTRoyaltyReceiver" (location: source ID 21, line 129, chars 4776-4988, hits: 0) -- Line (location: source ID 21, line 134, chars 4932-4981, hits: 0) -- Statement (location: source ID 21, line 134, chars 4932-4981, hits: 0) -- Function "setNFTRoyaltyReceiverBatch" (location: source ID 21, line 143, chars 5356-5656, hits: 0) -- Line (location: source ID 21, line 148, chars 5534-5544, hits: 0) -- Statement (location: source ID 21, line 148, chars 5534-5544, hits: 0) -- Statement (location: source ID 21, line 148, chars 5546-5565, hits: 0) -- Statement (location: source ID 21, line 148, chars 5567-5570, hits: 0) -- Line (location: source ID 21, line 149, chars 5586-5639, hits: 0) -- Statement (location: source ID 21, line 149, chars 5586-5639, hits: 0) - -Uncovered for contracts/token/erc721/abstract/MintingAccessControl.sol: -- Function "grantMinterRole" (location: source ID 22, line 15, chars 511-631, hits: 0) -- Line (location: source ID 22, line 16, chars 596-624, hits: 0) -- Statement (location: source ID 22, line 16, chars 596-624, hits: 0) -- Function "revokeMinterRole" (location: source ID 22, line 22, chars 780-902, hits: 0) -- Line (location: source ID 22, line 23, chars 866-895, hits: 0) -- Statement (location: source ID 22, line 23, chars 866-895, hits: 0) -- Function "getAdmins" (location: source ID 22, line 27, chars 980-1319, hits: 0) -- Line (location: source ID 22, line 28, chars 1050-1109, hits: 0) -- Statement (location: source ID 22, line 28, chars 1050-1109, hits: 0) -- Statement (location: source ID 22, line 28, chars 1071-1109, hits: 0) -- Line (location: source ID 22, line 29, chars 1119-1170, hits: 0) -- Statement (location: source ID 22, line 29, chars 1119-1170, hits: 0) -- Statement (location: source ID 22, line 29, chars 1145-1170, hits: 0) -- Line (location: source ID 22, line 30, chars 1185-1194, hits: 0) -- Statement (location: source ID 22, line 30, chars 1185-1194, hits: 0) -- Statement (location: source ID 22, line 30, chars 1196-1210, hits: 0) -- Statement (location: source ID 22, line 30, chars 1212-1215, hits: 0) -- Line (location: source ID 22, line 31, chars 1231-1279, hits: 0) -- Statement (location: source ID 22, line 31, chars 1231-1279, hits: 0) -- Line (location: source ID 22, line 33, chars 1299-1312, hits: 0) -- Statement (location: source ID 22, line 33, chars 1299-1312, hits: 0) - -Uncovered for contracts/token/erc721/erc721psi/ERC721Psi.sol: -- Function "_startTokenId" (location: source ID 23, line 64, chars 2275-2425, hits: 0) -- Line (location: source ID 23, line 66, chars 2410-2418, hits: 0) -- Statement (location: source ID 23, line 66, chars 2410-2418, hits: 0) -- Function "_nextTokenId" (location: source ID 23, line 72, chars 2499-2600, hits: 0) -- Line (location: source ID 23, line 73, chars 2573-2593, hits: 0) -- Statement (location: source ID 23, line 73, chars 2573-2593, hits: 0) -- Function "_totalMinted" (location: source ID 23, line 79, chars 2693-2812, hits: 0) -- Line (location: source ID 23, line 80, chars 2767-2805, hits: 0) -- Statement (location: source ID 23, line 80, chars 2767-2805, hits: 0) -- Function "supportsInterface" (location: source ID 23, line 86, chars 2879-3179, hits: 0) -- Line (location: source ID 23, line 87, chars 2997-3172, hits: 0) -- Statement (location: source ID 23, line 87, chars 2997-3172, hits: 0) -- Function "balanceOf" (location: source ID 23, line 96, chars 3238-3663, hits: 0) -- Line (location: source ID 23, line 97, chars 3326-3403, hits: 0) -- Statement (location: source ID 23, line 97, chars 3326-3403, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 23, line 97, chars 3326-3403, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 23, line 97, chars 3326-3403, hits: 0) -- Line (location: source ID 23, line 99, chars 3414-3424, hits: 0) -- Statement (location: source ID 23, line 99, chars 3414-3424, hits: 0) -- Line (location: source ID 23, line 100, chars 3439-3463, hits: 0) -- Statement (location: source ID 23, line 100, chars 3439-3463, hits: 0) -- Statement (location: source ID 23, line 100, chars 3448-3463, hits: 0) -- Statement (location: source ID 23, line 100, chars 3465-3483, hits: 0) -- Statement (location: source ID 23, line 100, chars 3485-3488, hits: 0) -- Line (location: source ID 23, line 101, chars 3508-3518, hits: 0) -- Statement (location: source ID 23, line 101, chars 3508-3518, hits: 0) -- Branch (branch: 1, path: 0) (location: source ID 23, line 101, chars 3504-3625, hits: 0) -- Branch (branch: 1, path: 1) (location: source ID 23, line 101, chars 3504-3625, hits: 0) -- Line (location: source ID 23, line 102, chars 3542-3561, hits: 0) -- Statement (location: source ID 23, line 102, chars 3542-3561, hits: 0) -- Branch (branch: 2, path: 0) (location: source ID 23, line 102, chars 3538-3611, hits: 0) -- Branch (branch: 2, path: 1) (location: source ID 23, line 102, chars 3538-3611, hits: 0) -- Line (location: source ID 23, line 103, chars 3585-3592, hits: 0) -- Statement (location: source ID 23, line 103, chars 3585-3592, hits: 0) -- Line (location: source ID 23, line 107, chars 3644-3656, hits: 0) -- Statement (location: source ID 23, line 107, chars 3644-3656, hits: 0) -- Function "ownerOf" (location: source ID 23, line 113, chars 3720-3889, hits: 0) -- Line (location: source ID 23, line 114, chars 3811-3860, hits: 0) -- Statement (location: source ID 23, line 114, chars 3811-3860, hits: 0) -- Statement (location: source ID 23, line 114, chars 3831-3860, hits: 0) -- Line (location: source ID 23, line 115, chars 3870-3882, hits: 0) -- Statement (location: source ID 23, line 115, chars 3870-3882, hits: 0) -- Function "_ownerAndBatchHeadOf" (location: source ID 23, line 118, chars 3895-4190, hits: 0) -- Line (location: source ID 23, line 119, chars 4016-4089, hits: 0) -- Statement (location: source ID 23, line 119, chars 4016-4089, hits: 0) -- Branch (branch: 3, path: 0) (location: source ID 23, line 119, chars 4016-4089, hits: 0) -- Branch (branch: 3, path: 1) (location: source ID 23, line 119, chars 4016-4089, hits: 0) -- Line (location: source ID 23, line 120, chars 4099-4140, hits: 0) -- Statement (location: source ID 23, line 120, chars 4099-4140, hits: 0) -- Line (location: source ID 23, line 121, chars 4150-4183, hits: 0) -- Statement (location: source ID 23, line 121, chars 4150-4183, hits: 0) -- Function "name" (location: source ID 23, line 127, chars 4252-4350, hits: 0) -- Line (location: source ID 23, line 128, chars 4331-4343, hits: 0) -- Statement (location: source ID 23, line 128, chars 4331-4343, hits: 0) -- Function "symbol" (location: source ID 23, line 134, chars 4414-4516, hits: 0) -- Line (location: source ID 23, line 135, chars 4495-4509, hits: 0) -- Statement (location: source ID 23, line 135, chars 4495-4509, hits: 0) -- Function "tokenURI" (location: source ID 23, line 141, chars 4582-4906, hits: 0) -- Line (location: source ID 23, line 142, chars 4680-4751, hits: 0) -- Statement (location: source ID 23, line 142, chars 4680-4751, hits: 0) -- Branch (branch: 4, path: 0) (location: source ID 23, line 142, chars 4680-4751, hits: 0) -- Branch (branch: 4, path: 1) (location: source ID 23, line 142, chars 4680-4751, hits: 0) -- Line (location: source ID 23, line 144, chars 4762-4796, hits: 0) -- Statement (location: source ID 23, line 144, chars 4762-4796, hits: 0) -- Statement (location: source ID 23, line 144, chars 4786-4796, hits: 0) -- Line (location: source ID 23, line 145, chars 4806-4899, hits: 0) -- Statement (location: source ID 23, line 145, chars 4806-4899, hits: 0) -- Function "_baseURI" (location: source ID 23, line 153, chars 5147-5239, hits: 0) -- Line (location: source ID 23, line 154, chars 5223-5232, hits: 0) -- Statement (location: source ID 23, line 154, chars 5223-5232, hits: 0) -- Function "approve" (location: source ID 23, line 160, chars 5296-5696, hits: 0) -- Line (location: source ID 23, line 161, chars 5376-5408, hits: 0) -- Statement (location: source ID 23, line 161, chars 5376-5408, hits: 0) -- Statement (location: source ID 23, line 161, chars 5392-5408, hits: 0) -- Line (location: source ID 23, line 162, chars 5418-5478, hits: 0) -- Statement (location: source ID 23, line 162, chars 5418-5478, hits: 0) -- Branch (branch: 5, path: 0) (location: source ID 23, line 162, chars 5418-5478, hits: 0) -- Branch (branch: 5, path: 1) (location: source ID 23, line 162, chars 5418-5478, hits: 0) -- Line (location: source ID 23, line 164, chars 5489-5657, hits: 0) -- Statement (location: source ID 23, line 164, chars 5489-5657, hits: 0) -- Branch (branch: 6, path: 0) (location: source ID 23, line 164, chars 5489-5657, hits: 0) -- Branch (branch: 6, path: 1) (location: source ID 23, line 164, chars 5489-5657, hits: 0) -- Line (location: source ID 23, line 169, chars 5668-5689, hits: 0) -- Statement (location: source ID 23, line 169, chars 5668-5689, hits: 0) -- Function "getApproved" (location: source ID 23, line 175, chars 5757-5977, hits: 0) -- Line (location: source ID 23, line 176, chars 5852-5928, hits: 0) -- Statement (location: source ID 23, line 176, chars 5852-5928, hits: 0) -- Branch (branch: 7, path: 0) (location: source ID 23, line 176, chars 5852-5928, hits: 0) -- Branch (branch: 7, path: 1) (location: source ID 23, line 176, chars 5852-5928, hits: 0) -- Line (location: source ID 23, line 178, chars 5939-5970, hits: 0) -- Statement (location: source ID 23, line 178, chars 5939-5970, hits: 0) -- Function "setApprovalForAll" (location: source ID 23, line 184, chars 6044-6337, hits: 0) -- Line (location: source ID 23, line 185, chars 6138-6203, hits: 0) -- Statement (location: source ID 23, line 185, chars 6138-6203, hits: 0) -- Branch (branch: 8, path: 0) (location: source ID 23, line 185, chars 6138-6203, hits: 0) -- Branch (branch: 8, path: 1) (location: source ID 23, line 185, chars 6138-6203, hits: 0) -- Line (location: source ID 23, line 187, chars 6214-6267, hits: 0) -- Statement (location: source ID 23, line 187, chars 6214-6267, hits: 0) -- Line (location: source ID 23, line 188, chars 6277-6330, hits: 0) -- Statement (location: source ID 23, line 188, chars 6277-6330, hits: 0) -- Function "isApprovedForAll" (location: source ID 23, line 194, chars 6403-6565, hits: 0) -- Line (location: source ID 23, line 195, chars 6516-6558, hits: 0) -- Statement (location: source ID 23, line 195, chars 6516-6558, hits: 0) -- Function "transferFrom" (location: source ID 23, line 201, chars 6627-6930, hits: 0) -- Line (location: source ID 23, line 203, chars 6778-6884, hits: 0) -- Statement (location: source ID 23, line 203, chars 6778-6884, hits: 0) -- Branch (branch: 9, path: 0) (location: source ID 23, line 203, chars 6778-6884, hits: 0) -- Branch (branch: 9, path: 1) (location: source ID 23, line 203, chars 6778-6884, hits: 0) -- Line (location: source ID 23, line 205, chars 6895-6923, hits: 0) -- Statement (location: source ID 23, line 205, chars 6895-6923, hits: 0) -- Function "safeTransferFrom" (location: source ID 23, line 211, chars 6996-7145, hits: 0) -- Line (location: source ID 23, line 212, chars 7099-7138, hits: 0) -- Statement (location: source ID 23, line 212, chars 7099-7138, hits: 0) -- Function "safeTransferFrom" (location: source ID 23, line 218, chars 7211-7496, hits: 0) -- Line (location: source ID 23, line 219, chars 7334-7440, hits: 0) -- Statement (location: source ID 23, line 219, chars 7334-7440, hits: 0) -- Branch (branch: 10, path: 0) (location: source ID 23, line 219, chars 7334-7440, hits: 0) -- Branch (branch: 10, path: 1) (location: source ID 23, line 219, chars 7334-7440, hits: 0) -- Line (location: source ID 23, line 220, chars 7450-7489, hits: 0) -- Statement (location: source ID 23, line 220, chars 7450-7489, hits: 0) -- Function "_safeTransfer" (location: source ID 23, line 241, chars 8358-8667, hits: 0) -- Line (location: source ID 23, line 242, chars 8471-8499, hits: 0) -- Statement (location: source ID 23, line 242, chars 8471-8499, hits: 0) -- Line (location: source ID 23, line 243, chars 8509-8660, hits: 0) -- Statement (location: source ID 23, line 243, chars 8509-8660, hits: 0) -- Branch (branch: 11, path: 0) (location: source ID 23, line 243, chars 8509-8660, hits: 0) -- Branch (branch: 11, path: 1) (location: source ID 23, line 243, chars 8509-8660, hits: 0) -- Function "_exists" (location: source ID 23, line 256, chars 8913-9062, hits: 0) -- Line (location: source ID 23, line 257, chars 8994-9055, hits: 0) -- Statement (location: source ID 23, line 257, chars 8994-9055, hits: 0) -- Function "_isApprovedOrOwner" (location: source ID 23, line 267, chars 9220-9560, hits: 0) -- Line (location: source ID 23, line 268, chars 9329-9405, hits: 0) -- Statement (location: source ID 23, line 268, chars 9329-9405, hits: 0) -- Branch (branch: 12, path: 0) (location: source ID 23, line 268, chars 9329-9405, hits: 0) -- Branch (branch: 12, path: 1) (location: source ID 23, line 268, chars 9329-9405, hits: 0) -- Line (location: source ID 23, line 269, chars 9415-9447, hits: 0) -- Statement (location: source ID 23, line 269, chars 9415-9447, hits: 0) -- Statement (location: source ID 23, line 269, chars 9431-9447, hits: 0) -- Line (location: source ID 23, line 270, chars 9457-9553, hits: 0) -- Statement (location: source ID 23, line 270, chars 9457-9553, hits: 0) -- Function "_safeMint" (location: source ID 23, line 283, chars 9911-10031, hits: 0) -- Line (location: source ID 23, line 284, chars 9987-10024, hits: 0) -- Statement (location: source ID 23, line 284, chars 9987-10024, hits: 0) -- Function "_safeMint" (location: source ID 23, line 287, chars 10037-10534, hits: 0) -- Line (location: source ID 23, line 288, chars 10133-10169, hits: 0) -- Statement (location: source ID 23, line 288, chars 10133-10169, hits: 0) -- Statement (location: source ID 23, line 288, chars 10155-10169, hits: 0) -- Line (location: source ID 23, line 291, chars 10320-10349, hits: 0) -- Statement (location: source ID 23, line 291, chars 10320-10349, hits: 0) -- Line (location: source ID 23, line 292, chars 10359-10527, hits: 0) -- Statement (location: source ID 23, line 292, chars 10359-10527, hits: 0) -- Branch (branch: 13, path: 0) (location: source ID 23, line 292, chars 10359-10527, hits: 0) -- Branch (branch: 13, path: 1) (location: source ID 23, line 292, chars 10359-10527, hits: 0) -- Function "_mint" (location: source ID 23, line 298, chars 10540-12535, hits: 0) -- Line (location: source ID 23, line 299, chars 10612-10648, hits: 0) -- Statement (location: source ID 23, line 299, chars 10612-10648, hits: 0) -- Statement (location: source ID 23, line 299, chars 10634-10648, hits: 0) -- Line (location: source ID 23, line 301, chars 10659-10721, hits: 0) -- Statement (location: source ID 23, line 301, chars 10659-10721, hits: 0) -- Branch (branch: 14, path: 0) (location: source ID 23, line 301, chars 10659-10721, hits: 0) -- Branch (branch: 14, path: 1) (location: source ID 23, line 301, chars 10659-10721, hits: 0) -- Line (location: source ID 23, line 302, chars 10731-10795, hits: 0) -- Statement (location: source ID 23, line 302, chars 10731-10795, hits: 0) -- Branch (branch: 15, path: 0) (location: source ID 23, line 302, chars 10731-10795, hits: 0) -- Branch (branch: 15, path: 1) (location: source ID 23, line 302, chars 10731-10795, hits: 0) -- Line (location: source ID 23, line 304, chars 10806-10866, hits: 0) -- Statement (location: source ID 23, line 304, chars 10806-10866, hits: 0) -- Line (location: source ID 23, line 305, chars 10876-10901, hits: 0) -- Statement (location: source ID 23, line 305, chars 10876-10901, hits: 0) -- Line (location: source ID 23, line 306, chars 10911-10936, hits: 0) -- Statement (location: source ID 23, line 306, chars 10911-10936, hits: 0) -- Line (location: source ID 23, line 307, chars 10946-10973, hits: 0) -- Statement (location: source ID 23, line 307, chars 10946-10973, hits: 0) -- Line (location: source ID 23, line 309, chars 10984-11000, hits: 0) -- Statement (location: source ID 23, line 309, chars 10984-11000, hits: 0) -- Line (location: source ID 23, line 310, chars 11010-11046, hits: 0) -- Statement (location: source ID 23, line 310, chars 11010-11046, hits: 0) -- Statement (location: source ID 23, line 310, chars 11024-11046, hits: 0) -- Line (location: source ID 23, line 318, chars 11503-11540, hits: 0) -- Statement (location: source ID 23, line 318, chars 11503-11540, hits: 0) -- Line (location: source ID 23, line 342, chars 12469-12528, hits: 0) -- Statement (location: source ID 23, line 342, chars 12469-12528, hits: 0) -- Function "_transfer" (location: source ID 23, line 356, chars 12859-13793, hits: 0) -- Line (location: source ID 23, line 357, chars 12948-13021, hits: 0) -- Statement (location: source ID 23, line 357, chars 12948-13021, hits: 0) -- Statement (location: source ID 23, line 357, chars 12992-13021, hits: 0) -- Line (location: source ID 23, line 359, chars 13032-13102, hits: 0) -- Statement (location: source ID 23, line 359, chars 13032-13102, hits: 0) -- Branch (branch: 16, path: 0) (location: source ID 23, line 359, chars 13032-13102, hits: 0) -- Branch (branch: 16, path: 1) (location: source ID 23, line 359, chars 13032-13102, hits: 0) -- Line (location: source ID 23, line 360, chars 13112-13180, hits: 0) -- Statement (location: source ID 23, line 360, chars 13112-13180, hits: 0) -- Branch (branch: 17, path: 0) (location: source ID 23, line 360, chars 13112-13180, hits: 0) -- Branch (branch: 17, path: 1) (location: source ID 23, line 360, chars 13112-13180, hits: 0) -- Line (location: source ID 23, line 362, chars 13191-13234, hits: 0) -- Statement (location: source ID 23, line 362, chars 13191-13234, hits: 0) -- Line (location: source ID 23, line 365, chars 13296-13325, hits: 0) -- Statement (location: source ID 23, line 365, chars 13296-13325, hits: 0) -- Line (location: source ID 23, line 367, chars 13336-13375, hits: 0) -- Statement (location: source ID 23, line 367, chars 13336-13375, hits: 0) -- Statement (location: source ID 23, line 367, chars 13364-13375, hits: 0) -- Line (location: source ID 23, line 369, chars 13390-13462, hits: 0) -- Statement (location: source ID 23, line 369, chars 13390-13462, hits: 0) -- Branch (branch: 18, path: 0) (location: source ID 23, line 369, chars 13386-13569, hits: 0) -- Branch (branch: 18, path: 1) (location: source ID 23, line 369, chars 13386-13569, hits: 0) -- Line (location: source ID 23, line 370, chars 13478-13511, hits: 0) -- Statement (location: source ID 23, line 370, chars 13478-13511, hits: 0) -- Line (location: source ID 23, line 371, chars 13525-13558, hits: 0) -- Statement (location: source ID 23, line 371, chars 13525-13558, hits: 0) -- Line (location: source ID 23, line 374, chars 13579-13600, hits: 0) -- Statement (location: source ID 23, line 374, chars 13579-13600, hits: 0) -- Line (location: source ID 23, line 375, chars 13614-13641, hits: 0) -- Statement (location: source ID 23, line 375, chars 13614-13641, hits: 0) -- Branch (branch: 19, path: 0) (location: source ID 23, line 375, chars 13610-13691, hits: 0) -- Branch (branch: 19, path: 1) (location: source ID 23, line 375, chars 13610-13691, hits: 0) -- Line (location: source ID 23, line 376, chars 13657-13680, hits: 0) -- Statement (location: source ID 23, line 376, chars 13657-13680, hits: 0) -- Line (location: source ID 23, line 379, chars 13701-13733, hits: 0) -- Statement (location: source ID 23, line 379, chars 13701-13733, hits: 0) -- Line (location: source ID 23, line 381, chars 13744-13786, hits: 0) -- Statement (location: source ID 23, line 381, chars 13744-13786, hits: 0) -- Function "_approve" (location: source ID 23, line 389, chars 13904-14068, hits: 0) -- Line (location: source ID 23, line 390, chars 13978-14007, hits: 0) -- Statement (location: source ID 23, line 390, chars 13978-14007, hits: 0) -- Line (location: source ID 23, line 391, chars 14017-14061, hits: 0) -- Statement (location: source ID 23, line 391, chars 14017-14061, hits: 0) -- Function "_checkOnERC721Received" (location: source ID 23, line 405, chars 14709-15724, hits: 0) -- Line (location: source ID 23, line 412, chars 14912-14927, hits: 0) -- Statement (location: source ID 23, line 412, chars 14912-14927, hits: 0) -- Branch (branch: 20, path: 0) (location: source ID 23, line 412, chars 14908-15676, hits: 0) -- Branch (branch: 20, path: 1) (location: source ID 23, line 412, chars 14908-15676, hits: 0) -- Line (location: source ID 23, line 413, chars 14943-14951, hits: 0) -- Statement (location: source ID 23, line 413, chars 14943-14951, hits: 0) -- Line (location: source ID 23, line 414, chars 14970-15000, hits: 0) -- Statement (location: source ID 23, line 414, chars 14970-15000, hits: 0) -- Statement (location: source ID 23, line 414, chars 15002-15035, hits: 0) -- Statement (location: source ID 23, line 414, chars 15037-15046, hits: 0) -- Line (location: source ID 23, line 415, chars 15070-15142, hits: 0) -- Statement (location: source ID 23, line 415, chars 15070-15142, hits: 0) -- Line (location: source ID 23, line 427, chars 15657-15665, hits: 0) -- Statement (location: source ID 23, line 427, chars 15657-15665, hits: 0) -- Line (location: source ID 23, line 429, chars 15696-15707, hits: 0) -- Statement (location: source ID 23, line 429, chars 15696-15707, hits: 0) -- Function "_getBatchHead" (location: source ID 23, line 433, chars 15730-15886, hits: 0) -- Line (location: source ID 23, line 434, chars 15829-15879, hits: 0) -- Statement (location: source ID 23, line 434, chars 15829-15879, hits: 0) -- Function "totalSupply" (location: source ID 23, line 437, chars 15892-15991, hits: 0) -- Line (location: source ID 23, line 438, chars 15963-15984, hits: 0) -- Statement (location: source ID 23, line 438, chars 15963-15984, hits: 0) -- Function "_beforeTokenTransfers" (location: source ID 23, line 453, chars 16465-16581, hits: 0) -- Function "_afterTokenTransfers" (location: source ID 23, line 467, chars 16979-17094, hits: 0) - -Uncovered for contracts/token/erc721/erc721psi/ERC721PsiBurnable.sol: -- Function "_burn" (location: source ID 24, line 31, chars 760-1065, hits: 0) -- Line (location: source ID 24, line 32, chars 819-850, hits: 0) -- Statement (location: source ID 24, line 32, chars 819-850, hits: 0) -- Statement (location: source ID 24, line 32, chars 834-850, hits: 0) -- Line (location: source ID 24, line 33, chars 860-911, hits: 0) -- Statement (location: source ID 24, line 33, chars 860-911, hits: 0) -- Line (location: source ID 24, line 34, chars 921-946, hits: 0) -- Statement (location: source ID 24, line 34, chars 921-946, hits: 0) -- Line (location: source ID 24, line 36, chars 957-997, hits: 0) -- Statement (location: source ID 24, line 36, chars 957-997, hits: 0) -- Line (location: source ID 24, line 38, chars 1008-1058, hits: 0) -- Statement (location: source ID 24, line 38, chars 1008-1058, hits: 0) -- Function "_exists" (location: source ID 24, line 49, chars 1368-1571, hits: 0) -- Line (location: source ID 24, line 50, chars 1462-1487, hits: 0) -- Statement (location: source ID 24, line 50, chars 1462-1487, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 24, line 50, chars 1458-1526, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 24, line 50, chars 1458-1526, hits: 0) -- Line (location: source ID 24, line 51, chars 1503-1515, hits: 0) -- Statement (location: source ID 24, line 51, chars 1503-1515, hits: 0) -- Line (location: source ID 24, line 53, chars 1535-1564, hits: 0) -- Statement (location: source ID 24, line 53, chars 1535-1564, hits: 0) -- Function "totalSupply" (location: source ID 24, line 59, chars 1642-1762, hits: 0) -- Line (location: source ID 24, line 60, chars 1722-1755, hits: 0) -- Statement (location: source ID 24, line 60, chars 1722-1755, hits: 0) -- Function "_burned" (location: source ID 24, line 66, chars 1828-2170, hits: 0) -- Line (location: source ID 24, line 67, chars 1896-1938, hits: 0) -- Statement (location: source ID 24, line 67, chars 1896-1938, hits: 0) -- Statement (location: source ID 24, line 67, chars 1918-1938, hits: 0) -- Line (location: source ID 24, line 68, chars 1948-1994, hits: 0) -- Statement (location: source ID 24, line 68, chars 1948-1994, hits: 0) -- Statement (location: source ID 24, line 68, chars 1969-1994, hits: 0) -- Line (location: source ID 24, line 70, chars 2010-2033, hits: 0) -- Statement (location: source ID 24, line 70, chars 2010-2033, hits: 0) -- Statement (location: source ID 24, line 70, chars 2035-2049, hits: 0) -- Statement (location: source ID 24, line 70, chars 2051-2054, hits: 0) -- Line (location: source ID 24, line 71, chars 2070-2112, hits: 0) -- Statement (location: source ID 24, line 71, chars 2070-2112, hits: 0) -- Statement (location: source ID 24, line 71, chars 2087-2112, hits: 0) -- Line (location: source ID 24, line 72, chars 2126-2153, hits: 0) -- Statement (location: source ID 24, line 72, chars 2126-2153, hits: 0) -- Function "_popcount" (location: source ID 24, line 79, chars 2232-2393, hits: 0) -- Line (location: source ID 24, line 81, chars 2338-2347, hits: 0) -- Statement (location: source ID 24, line 81, chars 2338-2347, hits: 0) -- Statement (location: source ID 24, line 81, chars 2349-2355, hits: 0) -- Statement (location: source ID 24, line 81, chars 2357-2364, hits: 0) -- Statement (location: source ID 24, line 81, chars 2366-2376, hits: 0) - -Uncovered for contracts/token/erc721/preset/ImmutableERC721.sol: -- Function "mint" (location: source ID 25, line 49, chars 1728-1841, hits: 0) -- Line (location: source ID 25, line 50, chars 1812-1834, hits: 0) -- Statement (location: source ID 25, line 50, chars 1812-1834, hits: 0) -- Function "safeMint" (location: source ID 25, line 57, chars 2054-2175, hits: 0) -- Line (location: source ID 25, line 58, chars 2142-2168, hits: 0) -- Statement (location: source ID 25, line 58, chars 2142-2168, hits: 0) -- Function "mintByQuantity" (location: source ID 25, line 65, chars 2386-2517, hits: 0) -- Line (location: source ID 25, line 66, chars 2481-2510, hits: 0) -- Statement (location: source ID 25, line 66, chars 2481-2510, hits: 0) -- Function "safeMintByQuantity" (location: source ID 25, line 74, chars 2758-2897, hits: 0) -- Line (location: source ID 25, line 75, chars 2857-2890, hits: 0) -- Statement (location: source ID 25, line 75, chars 2857-2890, hits: 0) -- Function "mintBatchByQuantity" (location: source ID 25, line 81, chars 3113-3240, hits: 0) -- Line (location: source ID 25, line 82, chars 3206-3233, hits: 0) -- Statement (location: source ID 25, line 82, chars 3206-3233, hits: 0) -- Function "safeMintBatchByQuantity" (location: source ID 25, line 88, chars 3461-3596, hits: 0) -- Line (location: source ID 25, line 89, chars 3558-3589, hits: 0) -- Statement (location: source ID 25, line 89, chars 3558-3589, hits: 0) -- Function "mintBatch" (location: source ID 25, line 96, chars 3886-4009, hits: 0) -- Line (location: source ID 25, line 97, chars 3971-4002, hits: 0) -- Statement (location: source ID 25, line 97, chars 3971-4002, hits: 0) -- Function "safeMintBatch" (location: source ID 25, line 104, chars 4299-4430, hits: 0) -- Line (location: source ID 25, line 105, chars 4388-4423, hits: 0) -- Statement (location: source ID 25, line 105, chars 4388-4423, hits: 0) -- Function "safeBurnBatch" (location: source ID 25, line 111, chars 4605-4700, hits: 0) -- Line (location: source ID 25, line 112, chars 4672-4693, hits: 0) -- Statement (location: source ID 25, line 112, chars 4672-4693, hits: 0) -- Function "safeTransferFromBatch" (location: source ID 25, line 119, chars 4935-5269, hits: 0) -- Line (location: source ID 25, line 120, chars 5018-5053, hits: 0) -- Statement (location: source ID 25, line 120, chars 5018-5053, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 25, line 120, chars 5014-5130, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 25, line 120, chars 5014-5130, hits: 0) -- Line (location: source ID 25, line 121, chars 5069-5119, hits: 0) -- Statement (location: source ID 25, line 121, chars 5069-5119, hits: 0) -- Line (location: source ID 25, line 124, chars 5145-5155, hits: 0) -- Statement (location: source ID 25, line 124, chars 5145-5155, hits: 0) -- Statement (location: source ID 25, line 124, chars 5157-5179, hits: 0) -- Statement (location: source ID 25, line 124, chars 5181-5184, hits: 0) -- Line (location: source ID 25, line 125, chars 5200-5252, hits: 0) -- Statement (location: source ID 25, line 125, chars 5200-5252, hits: 0) - -Uncovered for contracts/token/erc721/preset/ImmutableERC721MintByID.sol: -- Function "safeMint" (location: source ID 26, line 40, chars 1482-1627, hits: 0) -- Line (location: source ID 26, line 41, chars 1570-1584, hits: 0) -- Statement (location: source ID 26, line 41, chars 1570-1584, hits: 0) -- Line (location: source ID 26, line 42, chars 1594-1620, hits: 0) -- Statement (location: source ID 26, line 42, chars 1594-1620, hits: 0) -- Function "mint" (location: source ID 26, line 49, chars 1804-1937, hits: 0) -- Line (location: source ID 26, line 50, chars 1888-1902, hits: 0) -- Statement (location: source ID 26, line 50, chars 1888-1902, hits: 0) -- Line (location: source ID 26, line 51, chars 1912-1930, hits: 0) -- Statement (location: source ID 26, line 51, chars 1912-1930, hits: 0) -- Function "safeMintBatch" (location: source ID 26, line 58, chars 2149-2357, hits: 0) -- Line (location: source ID 26, line 59, chars 2250-2263, hits: 0) -- Statement (location: source ID 26, line 59, chars 2250-2263, hits: 0) -- Statement (location: source ID 26, line 59, chars 2265-2288, hits: 0) -- Statement (location: source ID 26, line 59, chars 2290-2293, hits: 0) -- Line (location: source ID 26, line 60, chars 2309-2340, hits: 0) -- Statement (location: source ID 26, line 60, chars 2309-2340, hits: 0) -- Function "mintBatch" (location: source ID 26, line 68, chars 2564-2764, hits: 0) -- Line (location: source ID 26, line 69, chars 2661-2674, hits: 0) -- Statement (location: source ID 26, line 69, chars 2661-2674, hits: 0) -- Statement (location: source ID 26, line 69, chars 2676-2699, hits: 0) -- Statement (location: source ID 26, line 69, chars 2701-2704, hits: 0) -- Line (location: source ID 26, line 70, chars 2720-2747, hits: 0) -- Statement (location: source ID 26, line 70, chars 2720-2747, hits: 0) -- Function "burnBatch" (location: source ID 26, line 78, chars 2905-3063, hits: 0) -- Line (location: source ID 26, line 79, chars 2977-2987, hits: 0) -- Statement (location: source ID 26, line 79, chars 2977-2987, hits: 0) -- Statement (location: source ID 26, line 79, chars 2989-3008, hits: 0) -- Statement (location: source ID 26, line 79, chars 3010-3013, hits: 0) -- Line (location: source ID 26, line 80, chars 3029-3046, hits: 0) -- Statement (location: source ID 26, line 80, chars 3029-3046, hits: 0) -- Function "safeBurnBatch" (location: source ID 26, line 88, chars 3256-3351, hits: 0) -- Line (location: source ID 26, line 89, chars 3323-3344, hits: 0) -- Statement (location: source ID 26, line 89, chars 3323-3344, hits: 0) -- Function "safeTransferFromBatch" (location: source ID 26, line 96, chars 3586-3920, hits: 0) -- Line (location: source ID 26, line 97, chars 3669-3704, hits: 0) -- Statement (location: source ID 26, line 97, chars 3669-3704, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 26, line 97, chars 3665-3781, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 26, line 97, chars 3665-3781, hits: 0) -- Line (location: source ID 26, line 98, chars 3720-3770, hits: 0) -- Statement (location: source ID 26, line 98, chars 3720-3770, hits: 0) -- Line (location: source ID 26, line 101, chars 3796-3806, hits: 0) -- Statement (location: source ID 26, line 101, chars 3796-3806, hits: 0) -- Statement (location: source ID 26, line 101, chars 3808-3830, hits: 0) -- Statement (location: source ID 26, line 101, chars 3832-3835, hits: 0) -- Line (location: source ID 26, line 102, chars 3851-3903, hits: 0) -- Statement (location: source ID 26, line 102, chars 3851-3903, hits: 0) - -Uncovered for contracts/token/erc721/x/Asset.sol: -- Function "_mintFor" (location: source ID 11, line 15, chars 394-536, hits: 0) -- Line (location: source ID 11, line 20, chars 510-529, hits: 0) -- Statement (location: source ID 11, line 20, chars 510-529, hits: 0) - -Uncovered for contracts/token/erc721/x/Mintable.sol: -- Function "mintFor" (location: source ID 13, line 25, chars 748-1154, hits: 0) -- Line (location: source ID 13, line 30, chars 898-950, hits: 0) -- Statement (location: source ID 13, line 30, chars 898-950, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 13, line 30, chars 898-950, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 13, line 30, chars 898-950, hits: 0) -- Line (location: source ID 13, line 31, chars 960-1025, hits: 0) -- Statement (location: source ID 13, line 31, chars 960-1025, hits: 0) -- Statement (location: source ID 13, line 31, chars 999-1025, hits: 0) -- Line (location: source ID 13, line 32, chars 1035-1064, hits: 0) -- Statement (location: source ID 13, line 32, chars 1035-1064, hits: 0) -- Line (location: source ID 13, line 33, chars 1074-1100, hits: 0) -- Statement (location: source ID 13, line 33, chars 1074-1100, hits: 0) -- Line (location: source ID 13, line 34, chars 1110-1147, hits: 0) -- Statement (location: source ID 13, line 34, chars 1110-1147, hits: 0) - -Uncovered for contracts/token/erc721/x/utils/Bytes.sol: -- Function "fromUint" (location: source ID 14, line 10, chars 295-834, hits: 0) -- Line (location: source ID 14, line 11, chars 380-390, hits: 0) -- Statement (location: source ID 14, line 11, chars 380-390, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 14, line 11, chars 376-427, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 14, line 11, chars 376-427, hits: 0) -- Line (location: source ID 14, line 12, chars 406-416, hits: 0) -- Statement (location: source ID 14, line 12, chars 406-416, hits: 0) -- Line (location: source ID 14, line 14, chars 436-456, hits: 0) -- Statement (location: source ID 14, line 14, chars 436-456, hits: 0) -- Line (location: source ID 14, line 15, chars 466-480, hits: 0) -- Statement (location: source ID 14, line 15, chars 466-480, hits: 0) -- Line (location: source ID 14, line 16, chars 497-506, hits: 0) -- Statement (location: source ID 14, line 16, chars 497-506, hits: 0) -- Line (location: source ID 14, line 17, chars 522-530, hits: 0) -- Statement (location: source ID 14, line 17, chars 522-530, hits: 0) -- Line (location: source ID 14, line 18, chars 544-554, hits: 0) -- Statement (location: source ID 14, line 18, chars 544-554, hits: 0) -- Line (location: source ID 14, line 20, chars 574-613, hits: 0) -- Statement (location: source ID 14, line 20, chars 574-613, hits: 0) -- Statement (location: source ID 14, line 20, chars 596-613, hits: 0) -- Line (location: source ID 14, line 21, chars 623-649, hits: 0) -- Statement (location: source ID 14, line 21, chars 623-649, hits: 0) -- Statement (location: source ID 14, line 21, chars 639-649, hits: 0) -- Line (location: source ID 14, line 22, chars 659-671, hits: 0) -- Statement (location: source ID 14, line 22, chars 659-671, hits: 0) -- Line (location: source ID 14, line 23, chars 688-697, hits: 0) -- Statement (location: source ID 14, line 23, chars 688-697, hits: 0) -- Line (location: source ID 14, line 24, chars 713-762, hits: 0) -- Statement (location: source ID 14, line 24, chars 713-762, hits: 0) -- Line (location: source ID 14, line 25, chars 776-786, hits: 0) -- Statement (location: source ID 14, line 25, chars 776-786, hits: 0) -- Line (location: source ID 14, line 27, chars 806-827, hits: 0) -- Statement (location: source ID 14, line 27, chars 806-827, hits: 0) -- Function "indexOf" (location: source ID 14, line 48, chars 1641-2061, hits: 0) -- Line (location: source ID 14, line 53, chars 1788-1828, hits: 0) -- Statement (location: source ID 14, line 53, chars 1788-1828, hits: 0) -- Statement (location: source ID 14, line 53, chars 1815-1828, hits: 0) -- Line (location: source ID 14, line 55, chars 1839-1870, hits: 0) -- Statement (location: source ID 14, line 55, chars 1839-1870, hits: 0) -- Branch (branch: 1, path: 0) (location: source ID 14, line 55, chars 1839-1870, hits: 0) -- Branch (branch: 1, path: 1) (location: source ID 14, line 55, chars 1839-1870, hits: 0) -- Line (location: source ID 14, line 57, chars 1886-1905, hits: 0) -- Statement (location: source ID 14, line 57, chars 1886-1905, hits: 0) -- Statement (location: source ID 14, line 57, chars 1907-1923, hits: 0) -- Statement (location: source ID 14, line 57, chars 1925-1928, hits: 0) -- Line (location: source ID 14, line 58, chars 1948-1974, hits: 0) -- Statement (location: source ID 14, line 58, chars 1948-1974, hits: 0) -- Branch (branch: 2, path: 0) (location: source ID 14, line 58, chars 1944-2025, hits: 0) -- Branch (branch: 2, path: 1) (location: source ID 14, line 58, chars 1944-2025, hits: 0) -- Line (location: source ID 14, line 59, chars 1994-2010, hits: 0) -- Statement (location: source ID 14, line 59, chars 1994-2010, hits: 0) -- Line (location: source ID 14, line 63, chars 2045-2054, hits: 0) -- Statement (location: source ID 14, line 63, chars 2045-2054, hits: 0) -- Function "substring" (location: source ID 14, line 66, chars 2067-2435, hits: 0) -- Line (location: source ID 14, line 71, chars 2225-2279, hits: 0) -- Statement (location: source ID 14, line 71, chars 2225-2279, hits: 0) -- Statement (location: source ID 14, line 71, chars 2247-2279, hits: 0) -- Line (location: source ID 14, line 72, chars 2294-2316, hits: 0) -- Statement (location: source ID 14, line 72, chars 2294-2316, hits: 0) -- Statement (location: source ID 14, line 72, chars 2318-2330, hits: 0) -- Statement (location: source ID 14, line 72, chars 2332-2335, hits: 0) -- Line (location: source ID 14, line 73, chars 2351-2387, hits: 0) -- Statement (location: source ID 14, line 73, chars 2351-2387, hits: 0) -- Line (location: source ID 14, line 75, chars 2407-2428, hits: 0) -- Statement (location: source ID 14, line 75, chars 2407-2428, hits: 0) -- Function "toUint" (location: source ID 14, line 78, chars 2441-2955, hits: 0) -- Line (location: source ID 14, line 79, chars 2515-2533, hits: 0) -- Statement (location: source ID 14, line 79, chars 2515-2533, hits: 0) -- Line (location: source ID 14, line 80, chars 2548-2561, hits: 0) -- Statement (location: source ID 14, line 80, chars 2548-2561, hits: 0) -- Statement (location: source ID 14, line 80, chars 2563-2575, hits: 0) -- Statement (location: source ID 14, line 80, chars 2577-2580, hits: 0) -- Line (location: source ID 14, line 81, chars 2596-2630, hits: 0) -- Statement (location: source ID 14, line 81, chars 2596-2630, hits: 0) -- Statement (location: source ID 14, line 81, chars 2610-2630, hits: 0) -- Line (location: source ID 14, line 82, chars 2648-2670, hits: 0) -- Statement (location: source ID 14, line 82, chars 2648-2670, hits: 0) -- Branch (branch: 3, path: 0) (location: source ID 14, line 82, chars 2644-2770, hits: 0) -- Branch (branch: 3, path: 1) (location: source ID 14, line 82, chars 2644-2770, hits: 0) -- Line (location: source ID 14, line 84, chars 2722-2755, hits: 0) -- Statement (location: source ID 14, line 84, chars 2722-2755, hits: 0) -- Line (location: source ID 14, line 87, chars 2856-2901, hits: 0) -- Statement (location: source ID 14, line 87, chars 2856-2901, hits: 0) -- Line (location: source ID 14, line 90, chars 2935-2948, hits: 0) -- Statement (location: source ID 14, line 90, chars 2935-2948, hits: 0) - -Uncovered for contracts/token/erc721/x/utils/Minting.sol: -- Function "split" (location: source ID 15, line 10, chars 215-822, hits: 0) -- Line (location: source ID 15, line 15, chars 335-377, hits: 0) -- Statement (location: source ID 15, line 15, chars 335-377, hits: 0) -- Statement (location: source ID 15, line 15, chars 350-377, hits: 0) -- Line (location: source ID 15, line 16, chars 387-430, hits: 0) -- Statement (location: source ID 15, line 16, chars 387-430, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 15, line 16, chars 387-430, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 15, line 16, chars 387-430, hits: 0) -- Line (location: source ID 15, line 18, chars 488-546, hits: 0) -- Statement (location: source ID 15, line 18, chars 488-546, hits: 0) -- Statement (location: source ID 15, line 18, chars 506-546, hits: 0) -- Line (location: source ID 15, line 19, chars 556-614, hits: 0) -- Statement (location: source ID 15, line 19, chars 556-614, hits: 0) -- Statement (location: source ID 15, line 19, chars 582-614, hits: 0) -- Line (location: source ID 15, line 20, chars 628-648, hits: 0) -- Statement (location: source ID 15, line 20, chars 628-648, hits: 0) -- Branch (branch: 1, path: 0) (location: source ID 15, line 20, chars 624-702, hits: 0) -- Branch (branch: 1, path: 1) (location: source ID 15, line 20, chars 624-702, hits: 0) -- Line (location: source ID 15, line 21, chars 664-691, hits: 0) -- Statement (location: source ID 15, line 21, chars 664-691, hits: 0) -- Line (location: source ID 15, line 23, chars 711-778, hits: 0) -- Statement (location: source ID 15, line 23, chars 711-778, hits: 0) -- Line (location: source ID 15, line 24, chars 788-815, hits: 0) -- Statement (location: source ID 15, line 24, chars 788-815, hits: 0) - -Uncovered for contracts/trading/seaport/ImmutableSeaport.sol: -- Function "setAllowedZone" (location: source ID 0, line 59, chars 2091-2251, hits: 0) -- Line (location: source ID 0, line 60, chars 2172-2200, hits: 0) -- Statement (location: source ID 0, line 60, chars 2172-2200, hits: 0) -- Line (location: source ID 0, line 61, chars 2210-2244, hits: 0) -- Statement (location: source ID 0, line 61, chars 2210-2244, hits: 0) -- Function "_name" (location: source ID 0, line 70, chars 2419-2569, hits: 0) -- Line (location: source ID 0, line 72, chars 2537-2562, hits: 0) -- Statement (location: source ID 0, line 72, chars 2537-2562, hits: 0) -- Function "_nameString" (location: source ID 0, line 81, chars 2811-2967, hits: 0) -- Line (location: source ID 0, line 83, chars 2935-2960, hits: 0) -- Statement (location: source ID 0, line 83, chars 2935-2960, hits: 0) -- Function "_rejectIfZoneInvalid" (location: source ID 0, line 89, chars 3068-3216, hits: 0) -- Line (location: source ID 0, line 90, chars 3140-3159, hits: 0) -- Statement (location: source ID 0, line 90, chars 3140-3159, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 0, line 90, chars 3136-3210, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 0, line 90, chars 3136-3210, hits: 0) -- Line (location: source ID 0, line 91, chars 3175-3199, hits: 0) -- Statement (location: source ID 0, line 91, chars 3175-3199, hits: 0) -- Function "fulfillBasicOrder" (location: source ID 0, line 120, chars 4871-5368, hits: 0) -- Line (location: source ID 0, line 125, chars 5102-5198, hits: 0) -- Statement (location: source ID 0, line 125, chars 5102-5198, hits: 0) -- Branch (branch: 1, path: 0) (location: source ID 0, line 124, chars 5085-5261, hits: 0) -- Branch (branch: 1, path: 1) (location: source ID 0, line 124, chars 5085-5261, hits: 0) -- Line (location: source ID 0, line 128, chars 5223-5250, hits: 0) -- Statement (location: source ID 0, line 128, chars 5223-5250, hits: 0) -- Line (location: source ID 0, line 131, chars 5271-5308, hits: 0) -- Statement (location: source ID 0, line 131, chars 5271-5308, hits: 0) -- Line (location: source ID 0, line 133, chars 5319-5361, hits: 0) -- Statement (location: source ID 0, line 133, chars 5319-5361, hits: 0) -- Function "fulfillBasicOrder_efficient_6GL6yc" (location: source ID 0, line 164, chars 7241-7772, hits: 0) -- Line (location: source ID 0, line 169, chars 7489-7585, hits: 0) -- Statement (location: source ID 0, line 169, chars 7489-7585, hits: 0) -- Branch (branch: 2, path: 0) (location: source ID 0, line 168, chars 7472-7648, hits: 0) -- Branch (branch: 2, path: 1) (location: source ID 0, line 168, chars 7472-7648, hits: 0) -- Line (location: source ID 0, line 172, chars 7610-7637, hits: 0) -- Statement (location: source ID 0, line 172, chars 7610-7637, hits: 0) -- Line (location: source ID 0, line 175, chars 7658-7695, hits: 0) -- Statement (location: source ID 0, line 175, chars 7658-7695, hits: 0) -- Line (location: source ID 0, line 177, chars 7706-7765, hits: 0) -- Statement (location: source ID 0, line 177, chars 7706-7765, hits: 0) -- Function "fulfillOrder" (location: source ID 0, line 202, chars 9130-9679, hits: 0) -- Line (location: source ID 0, line 210, chars 9363-9492, hits: 0) -- Statement (location: source ID 0, line 210, chars 9363-9492, hits: 0) -- Branch (branch: 3, path: 0) (location: source ID 0, line 209, chars 9346-9555, hits: 0) -- Branch (branch: 3, path: 1) (location: source ID 0, line 209, chars 9346-9555, hits: 0) -- Line (location: source ID 0, line 213, chars 9517-9544, hits: 0) -- Statement (location: source ID 0, line 213, chars 9517-9544, hits: 0) -- Line (location: source ID 0, line 216, chars 9565-9608, hits: 0) -- Statement (location: source ID 0, line 216, chars 9565-9608, hits: 0) -- Line (location: source ID 0, line 218, chars 9619-9672, hits: 0) -- Statement (location: source ID 0, line 218, chars 9619-9672, hits: 0) -- Function "fulfillAdvancedOrder" (location: source ID 0, line 264, chars 12651-13540, hits: 0) -- Line (location: source ID 0, line 277, chars 13064-13209, hits: 0) -- Statement (location: source ID 0, line 277, chars 13064-13209, hits: 0) -- Branch (branch: 4, path: 0) (location: source ID 0, line 276, chars 13047-13272, hits: 0) -- Branch (branch: 4, path: 1) (location: source ID 0, line 276, chars 13047-13272, hits: 0) -- Line (location: source ID 0, line 280, chars 13234-13261, hits: 0) -- Statement (location: source ID 0, line 280, chars 13234-13261, hits: 0) -- Line (location: source ID 0, line 283, chars 13282-13333, hits: 0) -- Statement (location: source ID 0, line 283, chars 13282-13333, hits: 0) -- Line (location: source ID 0, line 285, chars 13344-13533, hits: 0) -- Statement (location: source ID 0, line 285, chars 13344-13533, hits: 0) -- Function "fulfillAvailableOrders" (location: source ID 0, line 347, chars 17257-18576, hits: 0) -- Line (location: source ID 0, line 372, chars 17932-17945, hits: 0) -- Statement (location: source ID 0, line 372, chars 17932-17945, hits: 0) -- Statement (location: source ID 0, line 372, chars 17947-17964, hits: 0) -- Statement (location: source ID 0, line 372, chars 17966-17969, hits: 0) -- Line (location: source ID 0, line 373, chars 17985-18015, hits: 0) -- Statement (location: source ID 0, line 373, chars 17985-18015, hits: 0) -- Line (location: source ID 0, line 375, chars 18050-18183, hits: 0) -- Statement (location: source ID 0, line 375, chars 18050-18183, hits: 0) -- Branch (branch: 5, path: 0) (location: source ID 0, line 374, chars 18029-18258, hits: 0) -- Branch (branch: 5, path: 1) (location: source ID 0, line 374, chars 18029-18258, hits: 0) -- Line (location: source ID 0, line 378, chars 18216-18243, hits: 0) -- Statement (location: source ID 0, line 378, chars 18216-18243, hits: 0) -- Line (location: source ID 0, line 380, chars 18271-18314, hits: 0) -- Statement (location: source ID 0, line 380, chars 18271-18314, hits: 0) -- Line (location: source ID 0, line 383, chars 18335-18569, hits: 0) -- Statement (location: source ID 0, line 383, chars 18335-18569, hits: 0) -- Function "fulfillAvailableAdvancedOrders" (location: source ID 0, line 471, chars 24241-25907, hits: 0) -- Line (location: source ID 0, line 501, chars 25096-25109, hits: 0) -- Statement (location: source ID 0, line 501, chars 25096-25109, hits: 0) -- Statement (location: source ID 0, line 501, chars 25111-25136, hits: 0) -- Statement (location: source ID 0, line 501, chars 25138-25141, hits: 0) -- Line (location: source ID 0, line 502, chars 25157-25211, hits: 0) -- Statement (location: source ID 0, line 502, chars 25157-25211, hits: 0) -- Line (location: source ID 0, line 504, chars 25246-25427, hits: 0) -- Statement (location: source ID 0, line 504, chars 25246-25427, hits: 0) -- Branch (branch: 6, path: 0) (location: source ID 0, line 503, chars 25225-25502, hits: 0) -- Branch (branch: 6, path: 1) (location: source ID 0, line 503, chars 25225-25502, hits: 0) -- Line (location: source ID 0, line 509, chars 25460-25487, hits: 0) -- Statement (location: source ID 0, line 509, chars 25460-25487, hits: 0) -- Line (location: source ID 0, line 512, chars 25516-25567, hits: 0) -- Statement (location: source ID 0, line 512, chars 25516-25567, hits: 0) -- Line (location: source ID 0, line 515, chars 25588-25900, hits: 0) -- Statement (location: source ID 0, line 515, chars 25588-25900, hits: 0) -- Function "matchOrders" (location: source ID 0, line 556, chars 27792-28606, hits: 0) -- Line (location: source ID 0, line 572, chars 28150-28163, hits: 0) -- Statement (location: source ID 0, line 572, chars 28150-28163, hits: 0) -- Statement (location: source ID 0, line 572, chars 28165-28182, hits: 0) -- Statement (location: source ID 0, line 572, chars 28184-28187, hits: 0) -- Line (location: source ID 0, line 573, chars 28203-28233, hits: 0) -- Statement (location: source ID 0, line 573, chars 28203-28233, hits: 0) -- Line (location: source ID 0, line 575, chars 28268-28401, hits: 0) -- Statement (location: source ID 0, line 575, chars 28268-28401, hits: 0) -- Branch (branch: 7, path: 0) (location: source ID 0, line 574, chars 28247-28476, hits: 0) -- Branch (branch: 7, path: 1) (location: source ID 0, line 574, chars 28247-28476, hits: 0) -- Line (location: source ID 0, line 578, chars 28434-28461, hits: 0) -- Statement (location: source ID 0, line 578, chars 28434-28461, hits: 0) -- Line (location: source ID 0, line 580, chars 28489-28532, hits: 0) -- Statement (location: source ID 0, line 580, chars 28489-28532, hits: 0) -- Line (location: source ID 0, line 583, chars 28553-28599, hits: 0) -- Statement (location: source ID 0, line 583, chars 28553-28599, hits: 0) -- Function "matchAdvancedOrders" (location: source ID 0, line 638, chars 32247-33466, hits: 0) -- Line (location: source ID 0, line 659, chars 32785-32798, hits: 0) -- Statement (location: source ID 0, line 659, chars 32785-32798, hits: 0) -- Statement (location: source ID 0, line 659, chars 32800-32825, hits: 0) -- Statement (location: source ID 0, line 659, chars 32827-32830, hits: 0) -- Line (location: source ID 0, line 660, chars 32846-32900, hits: 0) -- Statement (location: source ID 0, line 660, chars 32846-32900, hits: 0) -- Line (location: source ID 0, line 662, chars 32935-33116, hits: 0) -- Statement (location: source ID 0, line 662, chars 32935-33116, hits: 0) -- Branch (branch: 8, path: 0) (location: source ID 0, line 661, chars 32914-33191, hits: 0) -- Branch (branch: 8, path: 1) (location: source ID 0, line 661, chars 32914-33191, hits: 0) -- Line (location: source ID 0, line 667, chars 33149-33176, hits: 0) -- Statement (location: source ID 0, line 667, chars 33149-33176, hits: 0) -- Line (location: source ID 0, line 670, chars 33205-33256, hits: 0) -- Statement (location: source ID 0, line 670, chars 33205-33256, hits: 0) -- Line (location: source ID 0, line 673, chars 33277-33459, hits: 0) -- Statement (location: source ID 0, line 673, chars 33277-33459, hits: 0) - -Uncovered for contracts/trading/seaport/zones/ImmutableSignedZone.sol: -- Function "addSigner" (location: source ID 5, line 145, chars 5328-6155, hits: 0) -- Line (location: source ID 5, line 147, chars 5471-5491, hits: 0) -- Statement (location: source ID 5, line 147, chars 5471-5491, hits: 0) -- Branch (branch: 0, path: 0) (location: source ID 5, line 147, chars 5467-5552, hits: 0) -- Branch (branch: 0, path: 1) (location: source ID 5, line 147, chars 5467-5552, hits: 0) -- Line (location: source ID 5, line 148, chars 5507-5541, hits: 0) -- Statement (location: source ID 5, line 148, chars 5507-5541, hits: 0) -- Line (location: source ID 5, line 152, chars 5612-5700, hits: 0) -- Branch (branch: 1, path: 0) (location: source ID 5, line 152, chars 5612-5700, hits: 0) -- Branch (branch: 1, path: 1) (location: source ID 5, line 152, chars 5612-5700, hits: 0) -- Line (location: source ID 5, line 153, chars 5655-5689, hits: 0) -- Statement (location: source ID 5, line 153, chars 5655-5689, hits: 0) -- Line (location: source ID 5, line 159, chars 5873-5978, hits: 0) -- Branch (branch: 2, path: 0) (location: source ID 5, line 159, chars 5873-5978, hits: 0) -- Branch (branch: 2, path: 1) (location: source ID 5, line 159, chars 5873-5978, hits: 0) -- Line (location: source ID 5, line 160, chars 5926-5967, hits: 0) -- Statement (location: source ID 5, line 160, chars 5926-5967, hits: 0) -- Line (location: source ID 5, line 164, chars 6020-6061, hits: 0) -- Statement (location: source ID 5, line 164, chars 6020-6061, hits: 0) -- Line (location: source ID 5, line 167, chars 6124-6148, hits: 0) -- Statement (location: source ID 5, line 167, chars 6124-6148, hits: 0) -- Function "removeSigner" (location: source ID 5, line 175, chars 6289-6688, hits: 0) -- Line (location: source ID 5, line 177, chars 6416-6440, hits: 0) -- Statement (location: source ID 5, line 177, chars 6416-6440, hits: 0) -- Branch (branch: 3, path: 0) (location: source ID 5, line 177, chars 6412-6497, hits: 0) -- Branch (branch: 3, path: 1) (location: source ID 5, line 177, chars 6412-6497, hits: 0) -- Line (location: source ID 5, line 178, chars 6456-6486, hits: 0) -- Statement (location: source ID 5, line 178, chars 6456-6486, hits: 0) -- Line (location: source ID 5, line 182, chars 6559-6590, hits: 0) -- Statement (location: source ID 5, line 182, chars 6559-6590, hits: 0) -- Line (location: source ID 5, line 185, chars 6655-6681, hits: 0) -- Statement (location: source ID 5, line 185, chars 6655-6681, hits: 0) -- Function "validateOrder" (location: source ID 5, line 197, chars 7041-10845, hits: 0) -- Line (location: source ID 5, line 201, chars 7265-7316, hits: 0) -- Statement (location: source ID 5, line 201, chars 7265-7316, hits: 0) -- Line (location: source ID 5, line 202, chars 7326-7370, hits: 0) -- Statement (location: source ID 5, line 202, chars 7326-7370, hits: 0) -- Line (location: source ID 5, line 205, chars 7444-7465, hits: 0) -- Statement (location: source ID 5, line 205, chars 7444-7465, hits: 0) -- Branch (branch: 4, path: 0) (location: source ID 5, line 205, chars 7440-7548, hits: 0) -- Branch (branch: 4, path: 1) (location: source ID 5, line 205, chars 7440-7548, hits: 0) -- Line (location: source ID 5, line 206, chars 7481-7537, hits: 0) -- Statement (location: source ID 5, line 206, chars 7481-7537, hits: 0) -- Line (location: source ID 5, line 214, chars 7844-7865, hits: 0) -- Statement (location: source ID 5, line 214, chars 7844-7865, hits: 0) -- Branch (branch: 5, path: 0) (location: source ID 5, line 214, chars 7840-8018, hits: 0) -- Branch (branch: 5, path: 1) (location: source ID 5, line 214, chars 7840-8018, hits: 0) -- Line (location: source ID 5, line 215, chars 7881-8007, hits: 0) -- Statement (location: source ID 5, line 215, chars 7881-8007, hits: 0) -- Line (location: source ID 5, line 222, chars 8086-8131, hits: 0) -- Statement (location: source ID 5, line 222, chars 8086-8131, hits: 0) -- Branch (branch: 6, path: 0) (location: source ID 5, line 222, chars 8082-8213, hits: 0) -- Branch (branch: 6, path: 1) (location: source ID 5, line 222, chars 8082-8213, hits: 0) -- Line (location: source ID 5, line 223, chars 8147-8202, hits: 0) -- Statement (location: source ID 5, line 223, chars 8147-8202, hits: 0) -- Line (location: source ID 5, line 228, chars 8322-8383, hits: 0) -- Statement (location: source ID 5, line 228, chars 8322-8383, hits: 0) -- Statement (location: source ID 5, line 228, chars 8350-8383, hits: 0) -- Line (location: source ID 5, line 231, chars 8458-8510, hits: 0) -- Statement (location: source ID 5, line 231, chars 8458-8510, hits: 0) -- Statement (location: source ID 5, line 231, chars 8478-8510, hits: 0) -- Line (location: source ID 5, line 235, chars 8625-8668, hits: 0) -- Statement (location: source ID 5, line 235, chars 8625-8668, hits: 0) -- Line (location: source ID 5, line 238, chars 8750-8789, hits: 0) -- Statement (location: source ID 5, line 238, chars 8750-8789, hits: 0) -- Line (location: source ID 5, line 241, chars 8834-8862, hits: 0) -- Statement (location: source ID 5, line 241, chars 8834-8862, hits: 0) -- Branch (branch: 7, path: 0) (location: source ID 5, line 241, chars 8830-8952, hits: 0) -- Branch (branch: 7, path: 1) (location: source ID 5, line 241, chars 8830-8952, hits: 0) -- Line (location: source ID 5, line 242, chars 8878-8941, hits: 0) -- Statement (location: source ID 5, line 242, chars 8878-8941, hits: 0) -- Line (location: source ID 5, line 246, chars 9027-9077, hits: 0) -- Statement (location: source ID 5, line 246, chars 9027-9077, hits: 0) -- Line (location: source ID 5, line 252, chars 9254-9337, hits: 0) -- Statement (location: source ID 5, line 252, chars 9254-9337, hits: 0) -- Branch (branch: 8, path: 0) (location: source ID 5, line 251, chars 9237-9505, hits: 0) -- Branch (branch: 8, path: 1) (location: source ID 5, line 251, chars 9237-9505, hits: 0) -- Line (location: source ID 5, line 255, chars 9362-9494, hits: 0) -- Statement (location: source ID 5, line 255, chars 9362-9494, hits: 0) -- Line (location: source ID 5, line 263, chars 9564-9712, hits: 0) -- Statement (location: source ID 5, line 263, chars 9564-9712, hits: 0) -- Line (location: source ID 5, line 270, chars 9762-9919, hits: 0) -- Statement (location: source ID 5, line 270, chars 9762-9919, hits: 0) -- Statement (location: source ID 5, line 270, chars 9788-9919, hits: 0) -- Line (location: source ID 5, line 279, chars 10053-10162, hits: 0) -- Statement (location: source ID 5, line 279, chars 10053-10162, hits: 0) -- Statement (location: source ID 5, line 279, chars 10070-10162, hits: 0) -- Line (location: source ID 5, line 286, chars 10303-10449, hits: 0) -- Statement (location: source ID 5, line 286, chars 10303-10449, hits: 0) -- Statement (location: source ID 5, line 286, chars 10329-10449, hits: 0) -- Line (location: source ID 5, line 294, chars 10593-10626, hits: 0) -- Statement (location: source ID 5, line 294, chars 10593-10626, hits: 0) -- Branch (branch: 9, path: 0) (location: source ID 5, line 294, chars 10589-10692, hits: 0) -- Branch (branch: 9, path: 1) (location: source ID 5, line 294, chars 10589-10692, hits: 0) -- Line (location: source ID 5, line 295, chars 10642-10681, hits: 0) -- Statement (location: source ID 5, line 295, chars 10642-10681, hits: 0) -- Line (location: source ID 5, line 299, chars 10779-10838, hits: 0) -- Statement (location: source ID 5, line 299, chars 10779-10838, hits: 0) -- Function "_domainSeparator" (location: source ID 5, line 310, chars 11163-11364, hits: 0) -- Line (location: source ID 5, line 311, chars 11233-11357, hits: 0) -- Statement (location: source ID 5, line 311, chars 11233-11357, hits: 0) -- Function "getSeaportMetadata" (location: source ID 5, line 324, chars 11595-12196, hits: 0) -- Line (location: source ID 5, line 330, chars 11778-11795, hits: 0) -- Statement (location: source ID 5, line 330, chars 11778-11795, hits: 0) -- Line (location: source ID 5, line 333, chars 11835-11860, hits: 0) -- Statement (location: source ID 5, line 333, chars 11835-11860, hits: 0) -- Line (location: source ID 5, line 334, chars 11870-11887, hits: 0) -- Statement (location: source ID 5, line 334, chars 11870-11887, hits: 0) -- Line (location: source ID 5, line 336, chars 11898-12189, hits: 0) -- Statement (location: source ID 5, line 336, chars 11898-12189, hits: 0) -- Function "_deriveDomainSeparator" (location: source ID 5, line 353, chars 12361-12759, hits: 0) -- Line (location: source ID 5, line 358, chars 12481-12752, hits: 0) -- Statement (location: source ID 5, line 358, chars 12481-12752, hits: 0) -- Function "updateAPIEndpoint" (location: source ID 5, line 375, chars 12901-13095, hits: 0) -- Line (location: source ID 5, line 379, chars 13055-13088, hits: 0) -- Statement (location: source ID 5, line 379, chars 13055-13088, hits: 0) -- Function "sip7Information" (location: source ID 5, line 387, chars 13253-13714, hits: 0) -- Line (location: source ID 5, line 398, chars 13531-13567, hits: 0) -- Statement (location: source ID 5, line 398, chars 13531-13567, hits: 0) -- Line (location: source ID 5, line 399, chars 13577-13607, hits: 0) -- Statement (location: source ID 5, line 399, chars 13577-13607, hits: 0) -- Line (location: source ID 5, line 401, chars 13618-13660, hits: 0) -- Statement (location: source ID 5, line 401, chars 13618-13660, hits: 0) -- Line (location: source ID 5, line 403, chars 13671-13707, hits: 0) -- Statement (location: source ID 5, line 403, chars 13671-13707, hits: 0) -- Function "_validateSubstandards" (location: source ID 5, line 411, chars 13849-16137, hits: 0) -- Line (location: source ID 5, line 419, chars 14210-14229, hits: 0) -- Statement (location: source ID 5, line 419, chars 14210-14229, hits: 0) -- Branch (branch: 10, path: 0) (location: source ID 5, line 419, chars 14206-14425, hits: 0) -- Branch (branch: 10, path: 1) (location: source ID 5, line 419, chars 14206-14425, hits: 0) -- Line (location: source ID 5, line 420, chars 14245-14414, hits: 0) -- Statement (location: source ID 5, line 420, chars 14245-14414, hits: 0) -- Line (location: source ID 5, line 427, chars 14503-14561, hits: 0) -- Statement (location: source ID 5, line 427, chars 14503-14561, hits: 0) -- Statement (location: source ID 5, line 427, chars 14539-14561, hits: 0) -- Line (location: source ID 5, line 428, chars 14575-14627, hits: 0) -- Statement (location: source ID 5, line 428, chars 14575-14627, hits: 0) -- Branch (branch: 11, path: 0) (location: source ID 5, line 428, chars 14571-14802, hits: 0) -- Branch (branch: 11, path: 1) (location: source ID 5, line 428, chars 14571-14802, hits: 0) -- Line (location: source ID 5, line 429, chars 14643-14791, hits: 0) -- Statement (location: source ID 5, line 429, chars 14643-14791, hits: 0) -- Line (location: source ID 5, line 439, chars 14950-14996, hits: 0) -- Statement (location: source ID 5, line 439, chars 14950-14996, hits: 0) -- Line (location: source ID 5, line 441, chars 15060-15093, hits: 0) -- Statement (location: source ID 5, line 441, chars 15060-15093, hits: 0) -- Branch (branch: 12, path: 0) (location: source ID 5, line 441, chars 15056-15285, hits: 0) -- Branch (branch: 12, path: 1) (location: source ID 5, line 441, chars 15056-15285, hits: 0) -- Line (location: source ID 5, line 442, chars 15109-15274, hits: 0) -- Statement (location: source ID 5, line 442, chars 15109-15274, hits: 0) -- Line (location: source ID 5, line 449, chars 15365-15469, hits: 0) -- Statement (location: source ID 5, line 449, chars 15365-15469, hits: 0) -- Statement (location: source ID 5, line 449, chars 15404-15469, hits: 0) -- Line (location: source ID 5, line 452, chars 15484-15497, hits: 0) -- Statement (location: source ID 5, line 452, chars 15484-15497, hits: 0) -- Statement (location: source ID 5, line 452, chars 15499-15531, hits: 0) -- Statement (location: source ID 5, line 452, chars 15533-15536, hits: 0) -- Line (location: source ID 5, line 453, chars 15552-15652, hits: 0) -- Statement (location: source ID 5, line 453, chars 15552-15652, hits: 0) -- Line (location: source ID 5, line 461, chars 15838-15953, hits: 0) -- Statement (location: source ID 5, line 461, chars 15838-15953, hits: 0) -- Branch (branch: 13, path: 0) (location: source ID 5, line 460, chars 15821-16131, hits: 0) -- Branch (branch: 13, path: 1) (location: source ID 5, line 460, chars 15821-16131, hits: 0) -- Line (location: source ID 5, line 466, chars 15978-16120, hits: 0) -- Statement (location: source ID 5, line 466, chars 15978-16120, hits: 0) -- Function "_getSupportedSubstandards" (location: source ID 5, line 480, chars 16292-16557, hits: 0) -- Line (location: source ID 5, line 486, chars 16461-16492, hits: 0) -- Statement (location: source ID 5, line 486, chars 16461-16492, hits: 0) -- Line (location: source ID 5, line 487, chars 16502-16521, hits: 0) -- Statement (location: source ID 5, line 487, chars 16502-16521, hits: 0) -- Line (location: source ID 5, line 488, chars 16531-16550, hits: 0) -- Statement (location: source ID 5, line 488, chars 16531-16550, hits: 0) -- Function "_deriveSignedOrderHash" (location: source ID 5, line 502, chars 16950-17440, hits: 0) -- Line (location: source ID 5, line 509, chars 17200-17433, hits: 0) -- Statement (location: source ID 5, line 509, chars 17200-17433, hits: 0) -- Function "_deriveConsiderationHash" (location: source ID 5, line 524, chars 17597-18511, hits: 0) -- Line (location: source ID 5, line 527, chars 17726-17770, hits: 0) -- Statement (location: source ID 5, line 527, chars 17726-17770, hits: 0) -- Line (location: source ID 5, line 528, chars 17780-17847, hits: 0) -- Statement (location: source ID 5, line 528, chars 17780-17847, hits: 0) -- Statement (location: source ID 5, line 528, chars 17819-17847, hits: 0) -- Line (location: source ID 5, line 529, chars 17862-17871, hits: 0) -- Statement (location: source ID 5, line 529, chars 17862-17871, hits: 0) -- Statement (location: source ID 5, line 529, chars 17873-17890, hits: 0) -- Statement (location: source ID 5, line 529, chars 17892-17895, hits: 0) -- Line (location: source ID 5, line 530, chars 17911-18282, hits: 0) -- Statement (location: source ID 5, line 530, chars 17911-18282, hits: 0) -- Line (location: source ID 5, line 541, chars 18302-18504, hits: 0) -- Statement (location: source ID 5, line 541, chars 18302-18504, hits: 0) -- Function "_everyElementExists" (location: source ID 5, line 557, chars 18752-20028, hits: 0) -- Line (location: source ID 5, line 562, chars 18954-18988, hits: 0) -- Statement (location: source ID 5, line 562, chars 18954-18988, hits: 0) -- Line (location: source ID 5, line 563, chars 18998-19032, hits: 0) -- Statement (location: source ID 5, line 563, chars 18998-19032, hits: 0) -- Line (location: source ID 5, line 567, chars 19171-19194, hits: 0) -- Statement (location: source ID 5, line 567, chars 19171-19194, hits: 0) -- Branch (branch: 14, path: 0) (location: source ID 5, line 567, chars 19167-19233, hits: 0) -- Branch (branch: 14, path: 1) (location: source ID 5, line 567, chars 19167-19233, hits: 0) -- Line (location: source ID 5, line 568, chars 19210-19222, hits: 0) -- Statement (location: source ID 5, line 568, chars 19210-19222, hits: 0) -- Line (location: source ID 5, line 572, chars 19305-19318, hits: 0) -- Statement (location: source ID 5, line 572, chars 19305-19318, hits: 0) -- Statement (location: source ID 5, line 572, chars 19320-19334, hits: 0) -- Line (location: source ID 5, line 573, chars 19352-19370, hits: 0) -- Statement (location: source ID 5, line 573, chars 19352-19370, hits: 0) -- Line (location: source ID 5, line 574, chars 19384-19408, hits: 0) -- Statement (location: source ID 5, line 574, chars 19384-19408, hits: 0) -- Line (location: source ID 5, line 575, chars 19427-19440, hits: 0) -- Statement (location: source ID 5, line 575, chars 19427-19440, hits: 0) -- Statement (location: source ID 5, line 575, chars 19442-19456, hits: 0) -- Line (location: source ID 5, line 576, chars 19482-19499, hits: 0) -- Statement (location: source ID 5, line 576, chars 19482-19499, hits: 0) -- Branch (branch: 15, path: 0) (location: source ID 5, line 576, chars 19478-19644, hits: 0) -- Branch (branch: 15, path: 1) (location: source ID 5, line 576, chars 19478-19644, hits: 0) -- Line (location: source ID 5, line 578, chars 19586-19598, hits: 0) -- Statement (location: source ID 5, line 578, chars 19586-19598, hits: 0) -- Line (location: source ID 5, line 579, chars 19620-19625, hits: 0) -- Statement (location: source ID 5, line 579, chars 19620-19625, hits: 0) -- Line (location: source ID 5, line 582, chars 19693-19696, hits: 0) -- Statement (location: source ID 5, line 582, chars 19693-19696, hits: 0) -- Line (location: source ID 5, line 585, chars 19746-19752, hits: 0) -- Statement (location: source ID 5, line 585, chars 19746-19752, hits: 0) -- Branch (branch: 16, path: 0) (location: source ID 5, line 585, chars 19742-19879, hits: 0) -- Branch (branch: 16, path: 1) (location: source ID 5, line 585, chars 19742-19879, hits: 0) -- Line (location: source ID 5, line 587, chars 19852-19864, hits: 0) -- Statement (location: source ID 5, line 587, chars 19852-19864, hits: 0) -- Line (location: source ID 5, line 590, chars 19920-19923, hits: 0) -- Statement (location: source ID 5, line 590, chars 19920-19923, hits: 0) -- Line (location: source ID 5, line 595, chars 20010-20021, hits: 0) -- Statement (location: source ID 5, line 595, chars 20010-20021, hits: 0) -- Function "supportsInterface" (location: source ID 5, line 598, chars 20034-20288, hits: 0) -- Line (location: source ID 5, line 601, chars 20164-20281, hits: 0) -- Statement (location: source ID 5, line 601, chars 20164-20281, hits: 0) - -Uncovered for test/random/MockGame.sol: - -Uncovered for test/random/MockOffchainSource.sol: -- Branch (branch: 0, path: 0) (location: source ID 149, line 20, chars 634-695, hits: 0) -- Line (location: source ID 149, line 21, chars 662-684, hits: 0) -- Statement (location: source ID 149, line 21, chars 662-684, hits: 0) - -Uncovered for test/utils/Sign.sol: - -Anchors for Contract "Bytes" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 14): - -Anchors for Contract "MockGame" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 148): -- IC 218 -> Item 79 - - Refers to item: Function "requestRandomValueCreation" (location: source ID 148, line 10, chars 250-385, hits: 15) -- IC 373 -> Item 80 - - Refers to item: Line (location: source ID 148, line 11, chars 342-378, hits: 15) -- IC 373 -> Item 81 - - Refers to item: Statement (location: source ID 148, line 11, chars 342-378, hits: 15) -- IC 248 -> Item 82 - - Refers to item: Function "fetchRandom" (location: source ID 148, line 14, chars 391-531, hits: 15) -- IC 388 -> Item 83 - - Refers to item: Line (location: source ID 148, line 15, chars 487-524, hits: 15) -- IC 388 -> Item 84 - - Refers to item: Statement (location: source ID 148, line 15, chars 487-524, hits: 15) -- IC 140 -> Item 85 - - Refers to item: Function "fetchRandomValues" (location: source ID 148, line 18, chars 537-721, hits: 6) -- IC 317 -> Item 86 - - Refers to item: Line (location: source ID 148, line 19, chars 664-714, hits: 6) -- IC 317 -> Item 87 - - Refers to item: Statement (location: source ID 148, line 19, chars 664-714, hits: 6) -- IC 92 -> Item 88 - - Refers to item: Function "isRandomValueReady" (location: source ID 148, line 22, chars 727-870, hits: 13) -- IC 299 -> Item 89 - - Refers to item: Line (location: source ID 148, line 23, chars 819-863, hits: 13) -- IC 299 -> Item 90 - - Refers to item: Statement (location: source ID 148, line 23, chars 819-863, hits: 13) -- IC 849 -> Item 18 - - Refers to item: Function "_requestRandomValueCreation" (location: source ID 8, line 43, chars 1797-2228, hits: 15) -- IC 852 -> Item 19 - - Refers to item: Line (location: source ID 8, line 44, chars 1890-1920, hits: 15) -- IC 852 -> Item 20 - - Refers to item: Statement (location: source ID 8, line 44, chars 1890-1920, hits: 15) -- IC 853 -> Item 21 - - Refers to item: Line (location: source ID 8, line 45, chars 1930-1950, hits: 15) -- IC 853 -> Item 22 - - Refers to item: Statement (location: source ID 8, line 45, chars 1930-1950, hits: 15) -- IC 855 -> Item 23 - - Refers to item: Line (location: source ID 8, line 46, chars 1960-2039, hits: 15) -- IC 855 -> Item 24 - - Refers to item: Statement (location: source ID 8, line 46, chars 1960-2039, hits: 15) -- IC 1007 -> Item 25 - - Refers to item: Line (location: source ID 8, line 47, chars 2049-2079, hits: 15) -- IC 1007 -> Item 26 - - Refers to item: Statement (location: source ID 8, line 47, chars 2049-2079, hits: 15) -- IC 1032 -> Item 27 - - Refers to item: Line (location: source ID 8, line 48, chars 2089-2152, hits: 15) -- IC 1032 -> Item 28 - - Refers to item: Statement (location: source ID 8, line 48, chars 2089-2152, hits: 15) -- IC 1055 -> Item 29 - - Refers to item: Line (location: source ID 8, line 49, chars 2162-2221, hits: 15) -- IC 1055 -> Item 30 - - Refers to item: Statement (location: source ID 8, line 49, chars 2162-2221, hits: 15) -- IC 1141 -> Item 31 - - Refers to item: Function "_fetchRandom" (location: source ID 8, line 61, chars 2772-3209, hits: 15) -- IC 1144 -> Item 32 - - Refers to item: Line (location: source ID 8, line 65, chars 3077-3132, hits: 15) -- IC 1144 -> Item 33 - - Refers to item: Statement (location: source ID 8, line 65, chars 3077-3132, hits: 15) -- IC 1145 -> Item 34 - - Refers to item: Statement (location: source ID 8, line 65, chars 3092-3132, hits: 15) -- IC 1156 -> Item 35 - - Refers to item: Line (location: source ID 8, line 66, chars 3142-3202, hits: 15) -- IC 1156 -> Item 36 - - Refers to item: Statement (location: source ID 8, line 66, chars 3142-3202, hits: 15) -- IC 637 -> Item 37 - - Refers to item: Function "_fetchRandomValues" (location: source ID 8, line 78, chars 3838-4204, hits: 6) -- IC 640 -> Item 38 - - Refers to item: Line (location: source ID 8, line 79, chars 3966-4021, hits: 6) -- IC 640 -> Item 39 - - Refers to item: Statement (location: source ID 8, line 79, chars 3966-4021, hits: 6) -- IC 642 -> Item 40 - - Refers to item: Statement (location: source ID 8, line 79, chars 3981-4021, hits: 6) -- IC 653 -> Item 41 - - Refers to item: Line (location: source ID 8, line 81, chars 4032-4068, hits: 6) -- IC 653 -> Item 42 - - Refers to item: Statement (location: source ID 8, line 81, chars 4032-4068, hits: 6) -- IC 728 -> Item 43 - - Refers to item: Line (location: source ID 8, line 82, chars 4083-4096, hits: 6) -- IC 728 -> Item 44 - - Refers to item: Statement (location: source ID 8, line 82, chars 4083-4096, hits: 6) -- IC 731 -> Item 45 - - Refers to item: Statement (location: source ID 8, line 82, chars 4098-4107, hits: 24) -- IC 823 -> Item 46 - - Refers to item: Statement (location: source ID 8, line 82, chars 4109-4112, hits: 18) -- IC 739 -> Item 47 - - Refers to item: Line (location: source ID 8, line 83, chars 4128-4187, hits: 18) -- IC 739 -> Item 48 - - Refers to item: Statement (location: source ID 8, line 83, chars 4128-4187, hits: 18) -- IC 403 -> Item 49 - - Refers to item: Function "_isRandomValueReady" (location: source ID 8, line 93, chars 4532-4774, hits: 13) -- IC 406 -> Item 50 - - Refers to item: Line (location: source ID 8, line 94, chars 4625-4767, hits: 13) -- IC 406 -> Item 51 - - Refers to item: Statement (location: source ID 8, line 94, chars 4625-4767, hits: 13) -- IC 1205 -> Item 52 - - Refers to item: Function "_fetchPersonalisedSeed" (location: source ID 8, line 106, chars 5330-6214, hits: 21) -- IC 1208 -> Item 53 - - Refers to item: Line (location: source ID 8, line 108, chars 5524-5676, hits: 21) -- IC 1208 -> Item 54 - - Refers to item: Statement (location: source ID 8, line 108, chars 5524-5676, hits: 21) -- IC 1209 -> Item 55 - - Refers to item: Statement (location: source ID 8, line 108, chars 5545-5676, hits: 21) -- IC 1438 -> Item 56 - - Refers to item: Line (location: source ID 8, line 116, chars 6115-6207, hits: 21) -- IC 1438 -> Item 57 - - Refers to item: Statement (location: source ID 8, line 116, chars 6115-6207, hits: 21) - -Anchors for Contract "ImmutableERC1155" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 14): -- IC 1183 -> Item 350 - - Refers to item: Function "safeMint" (location: source ID 14, line 39, chars 1220-1376, hits: 13) -- IC 3985 -> Item 351 - - Refers to item: Line (location: source ID 14, line 40, chars 1337-1369, hits: 13) -- IC 3985 -> Item 352 - - Refers to item: Statement (location: source ID 14, line 40, chars 1337-1369, hits: 13) -- IC 1667 -> Item 353 - - Refers to item: Function "safeMintBatch" (location: source ID 14, line 43, chars 1382-1574, hits: 1) -- IC 5642 -> Item 354 - - Refers to item: Line (location: source ID 14, line 44, chars 1528-1567, hits: 1) -- IC 5642 -> Item 355 - - Refers to item: Statement (location: source ID 14, line 44, chars 1528-1567, hits: 1) -- IC 1801 -> Item 605 - - Refers to item: Function "permit" (location: source ID 11, line 24, chars 884-2067, hits: 4) -- IC 5898 -> Item 606 - - Refers to item: Line (location: source ID 11, line 25, chars 1006-1032, hits: 4) -- IC 5898 -> Item 607 - - Refers to item: Statement (location: source ID 11, line 25, chars 1006-1032, hits: 4) -- IC 5906 -> Item 608 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 11, line 25, chars 1002-1081, hits: 1) -- IC 5955 -> Item 609 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 11, line 25, chars 1002-1081, hits: 3) -- IC 5906 -> Item 610 - - Refers to item: Line (location: source ID 11, line 26, chars 1048-1070, hits: 1) -- IC 5906 -> Item 611 - - Refers to item: Statement (location: source ID 11, line 26, chars 1048-1070, hits: 1) -- IC 5956 -> Item 612 - - Refers to item: Line (location: source ID 11, line 29, chars 1091-1162, hits: 3) -- IC 5956 -> Item 613 - - Refers to item: Statement (location: source ID 11, line 29, chars 1091-1162, hits: 3) -- IC 5958 -> Item 614 - - Refers to item: Statement (location: source ID 11, line 29, chars 1108-1162, hits: 3) -- IC 5972 -> Item 615 - - Refers to item: Line (location: source ID 11, line 32, chars 1224-1268, hits: 3) -- IC 5972 -> Item 616 - - Refers to item: Statement (location: source ID 11, line 32, chars 1224-1268, hits: 3) -- IC 5988 -> Item 617 - - Refers to item: Branch (branch: 1, path: 0) (location: source ID 11, line 32, chars 1220-1360, hits: 0) -- IC 6004 -> Item 618 - - Refers to item: Branch (branch: 1, path: 1) (location: source ID 11, line 32, chars 1220-1360, hits: 3) -- IC 5988 -> Item 619 - - Refers to item: Line (location: source ID 11, line 33, chars 1285-1329, hits: 0) -- IC 5988 -> Item 620 - - Refers to item: Statement (location: source ID 11, line 33, chars 1285-1329, hits: 0) -- IC 5999 -> Item 621 - - Refers to item: Line (location: source ID 11, line 34, chars 1343-1350, hits: 0) -- IC 5999 -> Item 622 - - Refers to item: Statement (location: source ID 11, line 34, chars 1343-1350, hits: 0) -- IC 6005 -> Item 623 - - Refers to item: Line (location: source ID 11, line 37, chars 1370-1393, hits: 3) -- IC 6005 -> Item 624 - - Refers to item: Statement (location: source ID 11, line 37, chars 1370-1393, hits: 3) -- IC 6007 -> Item 625 - - Refers to item: Line (location: source ID 11, line 40, chars 1444-1460, hits: 3) -- IC 6007 -> Item 626 - - Refers to item: Statement (location: source ID 11, line 40, chars 1444-1460, hits: 3) -- IC 6016 -> Item 627 - - Refers to item: Branch (branch: 2, path: 0) (location: source ID 11, line 40, chars 1440-1690, hits: 0) -- IC 6075 -> Item 628 - - Refers to item: Branch (branch: 2, path: 1) (location: source ID 11, line 40, chars 1440-1690, hits: 3) -- IC 6016 -> Item 629 - - Refers to item: Line (location: source ID 11, line 42, chars 1503-1679, hits: 0) -- IC 6016 -> Item 630 - - Refers to item: Statement (location: source ID 11, line 42, chars 1503-1679, hits: 0) -- IC 6076 -> Item 631 - - Refers to item: Line (location: source ID 11, line 47, chars 1700-1716, hits: 3) -- IC 6076 -> Item 632 - - Refers to item: Statement (location: source ID 11, line 47, chars 1700-1716, hits: 3) -- IC 6085 -> Item 633 - - Refers to item: Branch (branch: 3, path: 0) (location: source ID 11, line 47, chars 1696-1820, hits: 3) -- IC 6101 -> Item 634 - - Refers to item: Branch (branch: 3, path: 1) (location: source ID 11, line 47, chars 1696-1820, hits: 0) -- IC 6085 -> Item 635 - - Refers to item: Line (location: source ID 11, line 49, chars 1765-1809, hits: 3) -- IC 6085 -> Item 636 - - Refers to item: Statement (location: source ID 11, line 49, chars 1765-1809, hits: 3) -- IC 6102 -> Item 637 - - Refers to item: Line (location: source ID 11, line 51, chars 1840-1865, hits: 0) -- IC 6102 -> Item 638 - - Refers to item: Statement (location: source ID 11, line 51, chars 1840-1865, hits: 0) -- IC 6153 -> Item 639 - - Refers to item: Line (location: source ID 11, line 54, chars 1890-1934, hits: 3) -- IC 6153 -> Item 640 - - Refers to item: Statement (location: source ID 11, line 54, chars 1890-1934, hits: 3) -- IC 6168 -> Item 641 - - Refers to item: Branch (branch: 4, path: 0) (location: source ID 11, line 54, chars 1886-2005, hits: 1) -- IC 6183 -> Item 642 - - Refers to item: Branch (branch: 4, path: 1) (location: source ID 11, line 54, chars 1886-2005, hits: 2) -- IC 6168 -> Item 643 - - Refers to item: Line (location: source ID 11, line 55, chars 1950-1994, hits: 1) -- IC 6168 -> Item 644 - - Refers to item: Statement (location: source ID 11, line 55, chars 1950-1994, hits: 1) -- IC 6184 -> Item 645 - - Refers to item: Line (location: source ID 11, line 57, chars 2025-2050, hits: 2) -- IC 6184 -> Item 646 - - Refers to item: Statement (location: source ID 11, line 57, chars 2025-2050, hits: 2) -- IC 1297 -> Item 647 - - Refers to item: Function "nonces" (location: source ID 11, line 66, chars 2265-2380, hits: 1) -- IC 4368 -> Item 648 - - Refers to item: Line (location: source ID 11, line 69, chars 2352-2373, hits: 1) -- IC 4368 -> Item 649 - - Refers to item: Statement (location: source ID 11, line 69, chars 2352-2373, hits: 1) -- IC 945 -> Item 650 - - Refers to item: Function "DOMAIN_SEPARATOR" (location: source ID 11, line 76, chars 2563-2676, hits: 0) -- IC 3338 -> Item 651 - - Refers to item: Line (location: source ID 11, line 77, chars 2642-2669, hits: 0) -- IC 3338 -> Item 652 - - Refers to item: Statement (location: source ID 11, line 77, chars 2642-2669, hits: 0) -- IC 14123 -> Item 653 - - Refers to item: Function "supportsInterface" (location: source ID 11, line 85, chars 2987-3255, hits: 0) -- IC 14126 -> Item 654 - - Refers to item: Line (location: source ID 11, line 92, chars 3128-3248, hits: 0) -- IC 14126 -> Item 655 - - Refers to item: Statement (location: source ID 11, line 92, chars 3128-3248, hits: 0) -- IC 10947 -> Item 656 - - Refers to item: Function "_buildPermitDigest" (location: source ID 11, line 104, chars 3643-4126, hits: 3) -- IC 10950 -> Item 657 - - Refers to item: Line (location: source ID 11, line 110, chars 3811-4119, hits: 3) -- IC 10950 -> Item 658 - - Refers to item: Statement (location: source ID 11, line 110, chars 3811-4119, hits: 3) -- IC 11131 -> Item 659 - - Refers to item: Function "_isValidERC1271Signature" (location: source ID 11, line 131, chars 4499-5085, hits: 3) -- IC 11134 -> Item 660 - - Refers to item: Line (location: source ID 11, line 132, chars 4621-4831, hits: 3) -- IC 11134 -> Item 661 - - Refers to item: Statement (location: source ID 11, line 132, chars 4621-4831, hits: 3) -- IC 11137 -> Item 662 - - Refers to item: Statement (location: source ID 11, line 132, chars 4656-4831, hits: 3) -- IC 11362 -> Item 663 - - Refers to item: Line (location: source ID 11, line 140, chars 4846-4873, hits: 3) -- IC 11362 -> Item 664 - - Refers to item: Statement (location: source ID 11, line 140, chars 4846-4873, hits: 3) -- IC 11481 -> Item 665 - - Refers to item: Branch (branch: 5, path: 0) (location: source ID 11, line 140, chars 4842-5056, hits: 0) -- IC 11492 -> Item 666 - - Refers to item: Branch (branch: 5, path: 1) (location: source ID 11, line 140, chars 4842-5056, hits: 0) -- IC 11381 -> Item 667 - - Refers to item: Line (location: source ID 11, line 141, chars 4889-4934, hits: 0) -- IC 11381 -> Item 668 - - Refers to item: Statement (location: source ID 11, line 141, chars 4889-4934, hits: 0) -- IC 11383 -> Item 669 - - Refers to item: Statement (location: source ID 11, line 141, chars 4909-4934, hits: 0) -- IC 11405 -> Item 670 - - Refers to item: Line (location: source ID 11, line 142, chars 4952-5000, hits: 0) -- IC 11405 -> Item 671 - - Refers to item: Statement (location: source ID 11, line 142, chars 4952-5000, hits: 0) -- IC 11481 -> Item 672 - - Refers to item: Branch (branch: 6, path: 0) (location: source ID 11, line 142, chars 4948-5046, hits: 0) -- IC 11492 -> Item 673 - - Refers to item: Branch (branch: 6, path: 1) (location: source ID 11, line 142, chars 4948-5046, hits: 0) -- IC 11481 -> Item 674 - - Refers to item: Line (location: source ID 11, line 143, chars 5020-5031, hits: 0) -- IC 11481 -> Item 675 - - Refers to item: Statement (location: source ID 11, line 143, chars 5020-5031, hits: 0) -- IC 11495 -> Item 676 - - Refers to item: Line (location: source ID 11, line 147, chars 5066-5078, hits: 3) -- IC 11495 -> Item 677 - - Refers to item: Statement (location: source ID 11, line 147, chars 5066-5078, hits: 3) -- IC 12238 -> Item 678 - - Refers to item: Function "_isValidEOASignature" (location: source ID 11, line 156, chars 5405-5583, hits: 3) -- IC 12241 -> Item 679 - - Refers to item: Line (location: source ID 11, line 157, chars 5512-5576, hits: 3) -- IC 12241 -> Item 680 - - Refers to item: Statement (location: source ID 11, line 157, chars 5512-5576, hits: 3) -- IC 1381 -> Item 681 - - Refers to item: Function "setDefaultRoyaltyReceiver" (location: source ID 13, line 61, chars 1879-2048, hits: 0) -- IC 4710 -> Item 682 - - Refers to item: Line (location: source ID 13, line 62, chars 1999-2041, hits: 0) -- IC 4710 -> Item 683 - - Refers to item: Statement (location: source ID 13, line 62, chars 1999-2041, hits: 0) -- IC 1031 -> Item 684 - - Refers to item: Function "setNFTRoyaltyReceiver" (location: source ID 13, line 71, chars 2328-2540, hits: 0) -- IC 3583 -> Item 685 - - Refers to item: Line (location: source ID 13, line 76, chars 2484-2533, hits: 0) -- IC 3583 -> Item 686 - - Refers to item: Statement (location: source ID 13, line 76, chars 2484-2533, hits: 0) -- IC 1591 -> Item 687 - - Refers to item: Function "setNFTRoyaltyReceiverBatch" (location: source ID 13, line 85, chars 2822-3122, hits: 0) -- IC 5494 -> Item 688 - - Refers to item: Line (location: source ID 13, line 90, chars 3000-3010, hits: 0) -- IC 5494 -> Item 689 - - Refers to item: Statement (location: source ID 13, line 90, chars 3000-3010, hits: 0) -- IC 5497 -> Item 690 - - Refers to item: Statement (location: source ID 13, line 90, chars 3012-3031, hits: 0) -- IC 5544 -> Item 691 - - Refers to item: Statement (location: source ID 13, line 90, chars 3033-3036, hits: 0) -- IC 5508 -> Item 692 - - Refers to item: Line (location: source ID 13, line 91, chars 3052-3105, hits: 0) -- IC 5508 -> Item 693 - - Refers to item: Statement (location: source ID 13, line 91, chars 3052-3105, hits: 0) -- IC 1003 -> Item 694 - - Refers to item: Function "grantMinterRole" (location: source ID 13, line 99, chars 3249-3369, hits: 1) -- IC 3495 -> Item 695 - - Refers to item: Line (location: source ID 13, line 100, chars 3334-3362, hits: 1) -- IC 3495 -> Item 696 - - Refers to item: Statement (location: source ID 13, line 100, chars 3334-3362, hits: 1) -- IC 1211 -> Item 697 - - Refers to item: Function "revokeMinterRole" (location: source ID 13, line 107, chars 3522-3644, hits: 0) -- IC 4017 -> Item 698 - - Refers to item: Line (location: source ID 13, line 108, chars 3608-3637, hits: 0) -- IC 4017 -> Item 699 - - Refers to item: Statement (location: source ID 13, line 108, chars 3608-3637, hits: 0) -- IC 1563 -> Item 700 - - Refers to item: Function "setApprovalForAll" (location: source ID 13, line 116, chars 3927-4099, hits: 7) -- IC 5437 -> Item 701 - - Refers to item: Line (location: source ID 13, line 117, chars 4049-4092, hits: 6) -- IC 5437 -> Item 702 - - Refers to item: Statement (location: source ID 13, line 117, chars 4049-4092, hits: 6) -- IC 1155 -> Item 703 - - Refers to item: Function "setBaseURI" (location: source ID 13, line 124, chars 4236-4377, hits: 2) -- IC 3914 -> Item 704 - - Refers to item: Line (location: source ID 13, line 125, chars 4325-4342, hits: 1) -- IC 3914 -> Item 705 - - Refers to item: Statement (location: source ID 13, line 125, chars 4325-4342, hits: 1) -- IC 3923 -> Item 706 - - Refers to item: Line (location: source ID 13, line 126, chars 4351-4370, hits: 1) -- IC 3923 -> Item 707 - - Refers to item: Statement (location: source ID 13, line 126, chars 4351-4370, hits: 1) -- IC 1505 -> Item 708 - - Refers to item: Function "setContractURI" (location: source ID 13, line 130, chars 4433-4564, hits: 2) -- IC 4891 -> Item 709 - - Refers to item: Line (location: source ID 13, line 131, chars 4531-4557, hits: 1) -- IC 4891 -> Item 710 - - Refers to item: Statement (location: source ID 13, line 131, chars 4531-4557, hits: 1) -- IC 1619 -> Item 711 - - Refers to item: Function "totalSupply" (location: source ID 13, line 138, chars 4715-4826, hits: 2) -- IC 5573 -> Item 712 - - Refers to item: Line (location: source ID 13, line 139, chars 4796-4819, hits: 2) -- IC 5573 -> Item 713 - - Refers to item: Statement (location: source ID 13, line 139, chars 4796-4819, hits: 2) -- IC 1107 -> Item 714 - - Refers to item: Function "exists" (location: source ID 13, line 146, chars 4984-5090, hits: 0) -- IC 3883 -> Item 715 - - Refers to item: Line (location: source ID 13, line 147, chars 5057-5083, hits: 0) -- IC 3883 -> Item 716 - - Refers to item: Statement (location: source ID 13, line 147, chars 5057-5083, hits: 0) -- IC 636 -> Item 717 - - Refers to item: Function "supportsInterface" (location: source ID 13, line 155, chars 5395-5655, hits: 0) -- IC 2195 -> Item 718 - - Refers to item: Line (location: source ID 13, line 164, chars 5605-5648, hits: 0) -- IC 2195 -> Item 719 - - Refers to item: Statement (location: source ID 13, line 164, chars 5605-5648, hits: 0) -- IC 1267 -> Item 720 - - Refers to item: Function "baseURI" (location: source ID 13, line 177, chars 6086-6181, hits: 2) -- IC 4222 -> Item 721 - - Refers to item: Line (location: source ID 13, line 178, chars 6159-6174, hits: 2) -- IC 4222 -> Item 722 - - Refers to item: Statement (location: source ID 13, line 178, chars 6159-6174, hits: 2) -- IC 684 -> Item 723 - - Refers to item: Function "uri" (location: source ID 13, line 195, chars 6793-6900, hits: 0) -- IC 2213 -> Item 724 - - Refers to item: Line (location: source ID 13, line 196, chars 6878-6893, hits: 0) -- IC 2213 -> Item 725 - - Refers to item: Statement (location: source ID 13, line 196, chars 6878-6893, hits: 0) -- IC 915 -> Item 726 - - Refers to item: Function "getAdmins" (location: source ID 13, line 203, chars 7055-7394, hits: 0) -- IC 3114 -> Item 727 - - Refers to item: Line (location: source ID 13, line 204, chars 7125-7184, hits: 0) -- IC 3114 -> Item 728 - - Refers to item: Statement (location: source ID 13, line 204, chars 7125-7184, hits: 0) -- IC 3116 -> Item 729 - - Refers to item: Statement (location: source ID 13, line 204, chars 7146-7184, hits: 0) -- IC 3130 -> Item 730 - - Refers to item: Line (location: source ID 13, line 205, chars 7194-7245, hits: 0) -- IC 3130 -> Item 731 - - Refers to item: Statement (location: source ID 13, line 205, chars 7194-7245, hits: 0) -- IC 3132 -> Item 732 - - Refers to item: Statement (location: source ID 13, line 205, chars 7220-7245, hits: 0) -- IC 3207 -> Item 733 - - Refers to item: Line (location: source ID 13, line 206, chars 7260-7269, hits: 0) -- IC 3207 -> Item 734 - - Refers to item: Statement (location: source ID 13, line 206, chars 7260-7269, hits: 0) -- IC 3210 -> Item 735 - - Refers to item: Statement (location: source ID 13, line 206, chars 7271-7285, hits: 0) -- IC 3308 -> Item 736 - - Refers to item: Statement (location: source ID 13, line 206, chars 7287-7290, hits: 0) -- IC 3218 -> Item 737 - - Refers to item: Line (location: source ID 13, line 207, chars 7306-7354, hits: 0) -- IC 3218 -> Item 738 - - Refers to item: Statement (location: source ID 13, line 207, chars 7306-7354, hits: 0) -- IC 3328 -> Item 739 - - Refers to item: Line (location: source ID 13, line 209, chars 7374-7387, hits: 0) -- IC 3328 -> Item 740 - - Refers to item: Statement (location: source ID 13, line 209, chars 7374-7387, hits: 0) -- IC 15999 -> Item 741 - - Refers to item: Function "_beforeTokenTransfer" (location: source ID 13, line 221, chars 7877-8781, hits: 21) -- IC 16000 -> Item 742 - - Refers to item: Line (location: source ID 13, line 229, chars 8108-8174, hits: 21) -- IC 16000 -> Item 743 - - Refers to item: Statement (location: source ID 13, line 229, chars 8108-8174, hits: 21) -- IC 16014 -> Item 744 - - Refers to item: Line (location: source ID 13, line 231, chars 8189-8207, hits: 21) -- IC 16014 -> Item 745 - - Refers to item: Statement (location: source ID 13, line 231, chars 8189-8207, hits: 21) -- IC 16119 -> Item 746 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 13, line 231, chars 8185-8341, hits: 0) -- IC 16127 -> Item 747 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 13, line 231, chars 8185-8341, hits: 16) -- IC 16066 -> Item 748 - - Refers to item: Line (location: source ID 13, line 232, chars 8228-8241, hits: 14) -- IC 16066 -> Item 749 - - Refers to item: Statement (location: source ID 13, line 232, chars 8228-8241, hits: 14) -- IC 16069 -> Item 750 - - Refers to item: Statement (location: source ID 13, line 232, chars 8243-8257, hits: 30) -- IC 16172 -> Item 751 - - Refers to item: Statement (location: source ID 13, line 232, chars 8259-8262, hits: 16) -- IC 16078 -> Item 752 - - Refers to item: Line (location: source ID 13, line 233, chars 8282-8316, hits: 16) -- IC 16078 -> Item 753 - - Refers to item: Statement (location: source ID 13, line 233, chars 8282-8316, hits: 16) -- IC 16191 -> Item 754 - - Refers to item: Line (location: source ID 13, line 237, chars 8355-8371, hits: 21) -- IC 16191 -> Item 755 - - Refers to item: Statement (location: source ID 13, line 237, chars 8355-8371, hits: 21) -- IC 16349 -> Item 756 - - Refers to item: Branch (branch: 1, path: 0) (location: source ID 13, line 237, chars 8351-8775, hits: 0) -- IC 16407 -> Item 757 - - Refers to item: Branch (branch: 1, path: 1) (location: source ID 13, line 237, chars 8351-8775, hits: 3) -- IC 16243 -> Item 758 - - Refers to item: Line (location: source ID 13, line 238, chars 8392-8405, hits: 2) -- IC 16243 -> Item 759 - - Refers to item: Statement (location: source ID 13, line 238, chars 8392-8405, hits: 2) -- IC 16246 -> Item 760 - - Refers to item: Statement (location: source ID 13, line 238, chars 8407-8421, hits: 5) -- IC 16437 -> Item 761 - - Refers to item: Statement (location: source ID 13, line 238, chars 8423-8426, hits: 3) -- IC 16255 -> Item 762 - - Refers to item: Line (location: source ID 13, line 239, chars 8446-8465, hits: 3) -- IC 16255 -> Item 763 - - Refers to item: Statement (location: source ID 13, line 239, chars 8446-8465, hits: 3) -- IC 16286 -> Item 764 - - Refers to item: Line (location: source ID 13, line 240, chars 8483-8510, hits: 3) -- IC 16286 -> Item 765 - - Refers to item: Statement (location: source ID 13, line 240, chars 8483-8510, hits: 3) -- IC 16317 -> Item 766 - - Refers to item: Line (location: source ID 13, line 241, chars 8528-8561, hits: 3) -- IC 16317 -> Item 767 - - Refers to item: Statement (location: source ID 13, line 241, chars 8528-8561, hits: 3) -- IC 16341 -> Item 768 - - Refers to item: Line (location: source ID 13, line 242, chars 8579-8648, hits: 3) -- IC 16341 -> Item 769 - - Refers to item: Statement (location: source ID 13, line 242, chars 8579-8648, hits: 3) -- IC 16349 -> Item 770 - - Refers to item: Branch (branch: 2, path: 0) (location: source ID 13, line 242, chars 8579-8648, hits: 0) -- IC 16407 -> Item 771 - - Refers to item: Branch (branch: 2, path: 1) (location: source ID 13, line 242, chars 8579-8648, hits: 3) -- IC 16408 -> Item 772 - - Refers to item: Line (location: source ID 13, line 244, chars 8698-8732, hits: 3) -- IC 16408 -> Item 773 - - Refers to item: Statement (location: source ID 13, line 244, chars 8698-8732, hits: 3) -- IC 12718 -> Item 774 - - Refers to item: Function "_safeTransferFrom" (location: source ID 13, line 258, chars 9166-9377, hits: 4) -- IC 13518 -> Item 775 - - Refers to item: Line (location: source ID 13, line 259, chars 9320-9370, hits: 3) -- IC 13518 -> Item 776 - - Refers to item: Statement (location: source ID 13, line 259, chars 9320-9370, hits: 3) -- IC 7017 -> Item 777 - - Refers to item: Function "_safeBatchTransferFrom" (location: source ID 13, line 270, chars 9784-10027, hits: 2) -- IC 7817 -> Item 778 - - Refers to item: Line (location: source ID 13, line 271, chars 9963-10020, hits: 2) -- IC 7817 -> Item 779 - - Refers to item: Statement (location: source ID 13, line 271, chars 9963-10020, hits: 2) -- IC 1829 -> Item 1523 - - Refers to item: Function "setOperatorAllowlistRegistry" (location: source ID 2, line 94, chars 3760-3928, hits: 0) -- IC 6257 -> Item 1524 - - Refers to item: Line (location: source ID 2, line 95, chars 3872-3921, hits: 0) -- IC 6257 -> Item 1525 - - Refers to item: Statement (location: source ID 2, line 95, chars 3872-3921, hits: 0) -- IC 20464 -> Item 1526 - - Refers to item: Function "supportsInterface" (location: source ID 2, line 102, chars 4071-4222, hits: 0) -- IC 20467 -> Item 1527 - - Refers to item: Line (location: source ID 2, line 103, chars 4172-4215, hits: 0) -- IC 20467 -> Item 1528 - - Refers to item: Statement (location: source ID 2, line 103, chars 4172-4215, hits: 0) -- IC 12351 -> Item 1529 - - Refers to item: Function "_setOperatorAllowlistRegistry" (location: source ID 2, line 110, chars 4419-4842, hits: 0) -- IC 12352 -> Item 1530 - - Refers to item: Line (location: source ID 2, line 111, chars 4509-4593, hits: 0) -- IC 12352 -> Item 1531 - - Refers to item: Statement (location: source ID 2, line 111, chars 4509-4593, hits: 0) -- IC 12510 -> Item 1532 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 2, line 111, chars 4505-4672, hits: 0) -- IC 12559 -> Item 1533 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 2, line 111, chars 4505-4672, hits: 0) -- IC 12510 -> Item 1534 - - Refers to item: Line (location: source ID 2, line 112, chars 4609-4661, hits: 0) -- IC 12510 -> Item 1535 - - Refers to item: Statement (location: source ID 2, line 112, chars 4609-4661, hits: 0) -- IC 12560 -> Item 1536 - - Refers to item: Line (location: source ID 2, line 115, chars 4682-4767, hits: 0) -- IC 12560 -> Item 1537 - - Refers to item: Statement (location: source ID 2, line 115, chars 4682-4767, hits: 0) -- IC 12651 -> Item 1538 - - Refers to item: Line (location: source ID 2, line 116, chars 4777-4835, hits: 0) -- IC 12651 -> Item 1539 - - Refers to item: Statement (location: source ID 2, line 116, chars 4777-4835, hits: 0) - -Anchors for Contract "Sign" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 153): -- IC 48 -> Item 492 - - Refers to item: Function "buildPermitDigest" (location: source ID 153, line 15, chars 400-796, hits: 4) -- IC 99 -> Item 493 - - Refers to item: Line (location: source ID 153, line 16, chars 547-702, hits: 4) -- IC 99 -> Item 494 - - Refers to item: Statement (location: source ID 153, line 16, chars 547-702, hits: 4) -- IC 100 -> Item 495 - - Refers to item: Statement (location: source ID 153, line 16, chars 568-702, hits: 4) -- IC 183 -> Item 496 - - Refers to item: Line (location: source ID 153, line 21, chars 712-789, hits: 4) -- IC 183 -> Item 497 - - Refers to item: Statement (location: source ID 153, line 21, chars 712-789, hits: 4) - -Anchors for Contract "MockEIP1271Wallet" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 4): -- IC 59 -> Item 42 - - Refers to item: Function "isValidSignature" (location: source ID 4, line 14, chars 316-633, hits: 0) -- IC 140 -> Item 43 - - Refers to item: Line (location: source ID 4, line 15, chars 428-485, hits: 0) -- IC 140 -> Item 44 - - Refers to item: Statement (location: source ID 4, line 15, chars 428-485, hits: 0) -- IC 141 -> Item 45 - - Refers to item: Statement (location: source ID 4, line 15, chars 455-485, hits: 0) -- IC 153 -> Item 46 - - Refers to item: Line (location: source ID 4, line 16, chars 499-524, hits: 0) -- IC 153 -> Item 47 - - Refers to item: Statement (location: source ID 4, line 16, chars 499-524, hits: 0) -- IC 236 -> Item 48 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 4, line 16, chars 495-588, hits: 0) -- IC 251 -> Item 49 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 4, line 16, chars 495-588, hits: 0) -- IC 236 -> Item 50 - - Refers to item: Line (location: source ID 4, line 17, chars 540-577, hits: 0) -- IC 236 -> Item 51 - - Refers to item: Statement (location: source ID 4, line 17, chars 540-577, hits: 0) -- IC 252 -> Item 52 - - Refers to item: Line (location: source ID 4, line 19, chars 608-616, hits: 0) -- IC 252 -> Item 53 - - Refers to item: Statement (location: source ID 4, line 19, chars 608-616, hits: 0) - -Anchors for Contract "OperatorAllowlist" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 1): -- IC 478 -> Item 275 - - Refers to item: Function "addAddressToAllowlist" (location: source ID 1, line 66, chars 2512-2810, hits: 2) -- IC 1844 -> Item 276 - - Refers to item: Line (location: source ID 1, line 67, chars 2627-2636, hits: 2) -- IC 1844 -> Item 277 - - Refers to item: Statement (location: source ID 1, line 67, chars 2627-2636, hits: 2) -- IC 1847 -> Item 278 - - Refers to item: Statement (location: source ID 1, line 67, chars 2638-2663, hits: 4) -- IC 2102 -> Item 279 - - Refers to item: Statement (location: source ID 1, line 67, chars 2665-2668, hits: 2) -- IC 1858 -> Item 280 - - Refers to item: Line (location: source ID 1, line 68, chars 2684-2726, hits: 2) -- IC 1858 -> Item 281 - - Refers to item: Statement (location: source ID 1, line 68, chars 2684-2726, hits: 2) -- IC 1984 -> Item 282 - - Refers to item: Line (location: source ID 1, line 69, chars 2740-2793, hits: 2) -- IC 1984 -> Item 283 - - Refers to item: Statement (location: source ID 1, line 69, chars 2740-2793, hits: 2) -- IC 668 -> Item 284 - - Refers to item: Function "removeAddressFromAllowlist" (location: source ID 1, line 77, chars 2962-3266, hits: 0) -- IC 2737 -> Item 285 - - Refers to item: Line (location: source ID 1, line 78, chars 3082-3091, hits: 0) -- IC 2737 -> Item 286 - - Refers to item: Statement (location: source ID 1, line 78, chars 3082-3091, hits: 0) -- IC 2740 -> Item 287 - - Refers to item: Statement (location: source ID 1, line 78, chars 3093-3118, hits: 0) -- IC 2987 -> Item 288 - - Refers to item: Statement (location: source ID 1, line 78, chars 3120-3123, hits: 0) -- IC 2751 -> Item 289 - - Refers to item: Line (location: source ID 1, line 79, chars 3139-3181, hits: 0) -- IC 2751 -> Item 290 - - Refers to item: Statement (location: source ID 1, line 79, chars 3139-3181, hits: 0) -- IC 2869 -> Item 291 - - Refers to item: Line (location: source ID 1, line 80, chars 3195-3249, hits: 0) -- IC 2869 -> Item 292 - - Refers to item: Statement (location: source ID 1, line 80, chars 3195-3249, hits: 0) -- IC 298 -> Item 293 - - Refers to item: Function "addWalletToAllowlist" (location: source ID 1, line 92, chars 3689-4189, hits: 4) -- IC 919 -> Item 294 - - Refers to item: Line (location: source ID 1, line 94, chars 3817-3833, hits: 4) -- IC 919 -> Item 295 - - Refers to item: Statement (location: source ID 1, line 94, chars 3817-3833, hits: 4) -- IC 921 -> Item 296 - - Refers to item: Line (location: source ID 1, line 96, chars 3866-3901, hits: 4) -- IC 921 -> Item 297 - - Refers to item: Statement (location: source ID 1, line 96, chars 3866-3901, hits: 4) -- IC 925 -> Item 298 - - Refers to item: Line (location: source ID 1, line 98, chars 3920-3954, hits: 4) -- IC 925 -> Item 299 - - Refers to item: Statement (location: source ID 1, line 98, chars 3920-3954, hits: 4) -- IC 969 -> Item 300 - - Refers to item: Line (location: source ID 1, line 100, chars 4004-4063, hits: 4) -- IC 969 -> Item 301 - - Refers to item: Statement (location: source ID 1, line 100, chars 4004-4063, hits: 4) -- IC 971 -> Item 302 - - Refers to item: Statement (location: source ID 1, line 100, chars 4019-4063, hits: 4) -- IC 1084 -> Item 303 - - Refers to item: Line (location: source ID 1, line 101, chars 4073-4116, hits: 4) -- IC 1084 -> Item 304 - - Refers to item: Statement (location: source ID 1, line 101, chars 4073-4116, hits: 4) -- IC 1172 -> Item 305 - - Refers to item: Line (location: source ID 1, line 103, chars 4127-4182, hits: 4) -- IC 1172 -> Item 306 - - Refers to item: Statement (location: source ID 1, line 103, chars 4127-4182, hits: 4) -- IC 506 -> Item 307 - - Refers to item: Function "removeWalletFromAllowlist" (location: source ID 1, line 111, chars 4462-4968, hits: 0) -- IC 2169 -> Item 308 - - Refers to item: Line (location: source ID 1, line 113, chars 4595-4611, hits: 0) -- IC 2169 -> Item 309 - - Refers to item: Statement (location: source ID 1, line 113, chars 4595-4611, hits: 0) -- IC 2171 -> Item 310 - - Refers to item: Line (location: source ID 1, line 115, chars 4644-4679, hits: 0) -- IC 2171 -> Item 311 - - Refers to item: Statement (location: source ID 1, line 115, chars 4644-4679, hits: 0) -- IC 2175 -> Item 312 - - Refers to item: Line (location: source ID 1, line 117, chars 4698-4732, hits: 0) -- IC 2175 -> Item 313 - - Refers to item: Statement (location: source ID 1, line 117, chars 4698-4732, hits: 0) -- IC 2210 -> Item 314 - - Refers to item: Line (location: source ID 1, line 119, chars 4782-4841, hits: 0) -- IC 2210 -> Item 315 - - Refers to item: Statement (location: source ID 1, line 119, chars 4782-4841, hits: 0) -- IC 2212 -> Item 316 - - Refers to item: Statement (location: source ID 1, line 119, chars 4797-4841, hits: 0) -- IC 2325 -> Item 317 - - Refers to item: Line (location: source ID 1, line 120, chars 4851-4894, hits: 0) -- IC 2325 -> Item 318 - - Refers to item: Statement (location: source ID 1, line 120, chars 4851-4894, hits: 0) -- IC 2404 -> Item 319 - - Refers to item: Line (location: source ID 1, line 122, chars 4905-4961, hits: 0) -- IC 2404 -> Item 320 - - Refers to item: Statement (location: source ID 1, line 122, chars 4905-4961, hits: 0) -- IC 582 -> Item 321 - - Refers to item: Function "grantRegistrarRole" (location: source ID 1, line 129, chars 5128-5256, hits: 0) -- IC 2609 -> Item 322 - - Refers to item: Line (location: source ID 1, line 130, chars 5218-5249, hits: 0) -- IC 2609 -> Item 323 - - Refers to item: Statement (location: source ID 1, line 130, chars 5218-5249, hits: 0) -- IC 696 -> Item 324 - - Refers to item: Function "revokeRegistrarRole" (location: source ID 1, line 137, chars 5424-5554, hits: 0) -- IC 3025 -> Item 325 - - Refers to item: Line (location: source ID 1, line 138, chars 5515-5547, hits: 0) -- IC 3025 -> Item 326 - - Refers to item: Statement (location: source ID 1, line 138, chars 5515-5547, hits: 0) -- IC 326 -> Item 327 - - Refers to item: Function "isAllowlisted" (location: source ID 1, line 147, chars 5777-6396, hits: 14) -- IC 1260 -> Item 328 - - Refers to item: Line (location: source ID 1, line 148, chars 5864-5930, hits: 14) -- IC 1342 -> Item 329 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 1, line 148, chars 5864-5930, hits: 2) -- IC 1350 -> Item 330 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 1, line 148, chars 5864-5930, hits: 12) -- IC 1342 -> Item 331 - - Refers to item: Line (location: source ID 1, line 149, chars 5908-5919, hits: 2) -- IC 1342 -> Item 332 - - Refers to item: Statement (location: source ID 1, line 149, chars 5908-5919, hits: 2) -- IC 1351 -> Item 333 - - Refers to item: Line (location: source ID 1, line 153, chars 6006-6022, hits: 12) -- IC 1351 -> Item 334 - - Refers to item: Statement (location: source ID 1, line 153, chars 6006-6022, hits: 12) -- IC 1353 -> Item 335 - - Refers to item: Line (location: source ID 1, line 155, chars 6055-6086, hits: 12) -- IC 1353 -> Item 336 - - Refers to item: Statement (location: source ID 1, line 155, chars 6055-6086, hits: 12) -- IC 1357 -> Item 337 - - Refers to item: Line (location: source ID 1, line 157, chars 6105-6367, hits: 12) -- IC 1462 -> Item 338 - - Refers to item: Branch (branch: 1, path: 0) (location: source ID 1, line 157, chars 6105-6367, hits: 0) -- IC 1471 -> Item 339 - - Refers to item: Branch (branch: 1, path: 1) (location: source ID 1, line 157, chars 6105-6367, hits: 11) -- IC 1395 -> Item 340 - - Refers to item: Line (location: source ID 1, line 159, chars 6243-6298, hits: 11) -- IC 1395 -> Item 341 - - Refers to item: Statement (location: source ID 1, line 159, chars 6243-6298, hits: 11) -- IC 1397 -> Item 342 - - Refers to item: Statement (location: source ID 1, line 159, chars 6258-6298, hits: 11) -- IC 1510 -> Item 343 - - Refers to item: Line (location: source ID 1, line 161, chars 6313-6356, hits: 11) -- IC 1510 -> Item 344 - - Refers to item: Statement (location: source ID 1, line 161, chars 6313-6356, hits: 11) -- IC 1596 -> Item 345 - - Refers to item: Line (location: source ID 1, line 164, chars 6377-6389, hits: 1) -- IC 1596 -> Item 346 - - Refers to item: Statement (location: source ID 1, line 164, chars 6377-6389, hits: 1) -- IC 250 -> Item 347 - - Refers to item: Function "supportsInterface" (location: source ID 1, line 171, chars 6539-6768, hits: 0) -- IC 757 -> Item 348 - - Refers to item: Line (location: source ID 1, line 172, chars 6663-6761, hits: 0) -- IC 757 -> Item 349 - - Refers to item: Statement (location: source ID 1, line 172, chars 6663-6761, hits: 0) - -Anchors for Contract "ChainlinkSourceAdaptor" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 9): -- IC 353 -> Item 498 - - Refers to item: Function "configureRequests" (location: source ID 9, line 49, chars 1836-2064, hits: 0) -- IC 1186 -> Item 499 - - Refers to item: Line (location: source ID 9, line 50, chars 1969-1987, hits: 0) -- IC 1186 -> Item 500 - - Refers to item: Statement (location: source ID 9, line 50, chars 1969-1987, hits: 0) -- IC 1193 -> Item 501 - - Refers to item: Line (location: source ID 9, line 51, chars 1997-2011, hits: 0) -- IC 1193 -> Item 502 - - Refers to item: Statement (location: source ID 9, line 51, chars 1997-2011, hits: 0) -- IC 1234 -> Item 503 - - Refers to item: Line (location: source ID 9, line 52, chars 2021-2057, hits: 0) -- IC 1234 -> Item 504 - - Refers to item: Statement (location: source ID 9, line 52, chars 2021-2057, hits: 0) -- IC 913 -> Item 505 - - Refers to item: Function "requestOffchainRandom" (location: source ID 9, line 55, chars 2070-2261, hits: 0) -- IC 2000 -> Item 506 - - Refers to item: Line (location: source ID 9, line 56, chars 2150-2254, hits: 0) -- IC 2000 -> Item 507 - - Refers to item: Statement (location: source ID 9, line 56, chars 2150-2254, hits: 0) -- IC 2474 -> Item 508 - - Refers to item: Function "fulfillRandomWords" (location: source ID 9, line 61, chars 2281-2680, hits: 0) -- IC 2475 -> Item 509 - - Refers to item: Line (location: source ID 9, line 64, chars 2508-2532, hits: 0) -- IC 2475 -> Item 510 - - Refers to item: Statement (location: source ID 9, line 64, chars 2508-2532, hits: 0) -- IC 2484 -> Item 511 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 9, line 64, chars 2504-2612, hits: 0) -- IC 2540 -> Item 512 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 9, line 64, chars 2504-2612, hits: 0) -- IC 2484 -> Item 513 - - Refers to item: Line (location: source ID 9, line 65, chars 2548-2601, hits: 0) -- IC 2484 -> Item 514 - - Refers to item: Statement (location: source ID 9, line 65, chars 2548-2601, hits: 0) -- IC 2541 -> Item 515 - - Refers to item: Line (location: source ID 9, line 68, chars 2622-2673, hits: 0) -- IC 2541 -> Item 516 - - Refers to item: Statement (location: source ID 9, line 68, chars 2622-2673, hits: 0) -- IC 973 -> Item 517 - - Refers to item: Function "getOffchainRandom" (location: source ID 9, line 72, chars 2687-2957, hits: 0) -- IC 2241 -> Item 518 - - Refers to item: Line (location: source ID 9, line 73, chars 2795-2841, hits: 0) -- IC 2241 -> Item 519 - - Refers to item: Statement (location: source ID 9, line 73, chars 2795-2841, hits: 0) -- IC 2264 -> Item 520 - - Refers to item: Line (location: source ID 9, line 74, chars 2855-2873, hits: 0) -- IC 2264 -> Item 521 - - Refers to item: Statement (location: source ID 9, line 74, chars 2855-2873, hits: 0) -- IC 2274 -> Item 522 - - Refers to item: Branch (branch: 1, path: 0) (location: source ID 9, line 74, chars 2851-2922, hits: 0) -- IC 2323 -> Item 523 - - Refers to item: Branch (branch: 1, path: 1) (location: source ID 9, line 74, chars 2851-2922, hits: 0) -- IC 2274 -> Item 524 - - Refers to item: Line (location: source ID 9, line 75, chars 2889-2911, hits: 0) -- IC 2274 -> Item 525 - - Refers to item: Statement (location: source ID 9, line 75, chars 2889-2911, hits: 0) -- IC 2324 -> Item 526 - - Refers to item: Line (location: source ID 9, line 77, chars 2931-2950, hits: 0) -- IC 2324 -> Item 527 - - Refers to item: Statement (location: source ID 9, line 77, chars 2931-2950, hits: 0) -- IC 603 -> Item 528 - - Refers to item: Function "isOffchainRandomReady" (location: source ID 9, line 80, chars 2963-3118, hits: 0) -- IC 1695 -> Item 529 - - Refers to item: Line (location: source ID 9, line 81, chars 3059-3111, hits: 0) -- IC 1695 -> Item 530 - - Refers to item: Statement (location: source ID 9, line 81, chars 3059-3111, hits: 0) - -Anchors for Contract "MockDisguisedEOA" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 3): -- IC 89 -> Item 0 - - Refers to item: Function "executeTransfer" (location: source ID 3, line 14, chars 295-449, hits: 0) -- IC 154 -> Item 1 - - Refers to item: Line (location: source ID 3, line 15, chars 390-442, hits: 0) -- IC 154 -> Item 2 - - Refers to item: Statement (location: source ID 3, line 15, chars 390-442, hits: 0) - -Anchors for Contract "Asset" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 11): -- IC 4337 -> Item 217 - - Refers to item: Function "_mintFor" (location: source ID 11, line 15, chars 394-536, hits: 0) -- IC 4338 -> Item 218 - - Refers to item: Line (location: source ID 11, line 20, chars 510-529, hits: 0) -- IC 4338 -> Item 219 - - Refers to item: Statement (location: source ID 11, line 20, chars 510-529, hits: 0) -- IC 478 -> Item 203 - - Refers to item: Function "mintFor" (location: source ID 13, line 25, chars 748-1154, hits: 0) -- IC 1921 -> Item 204 - - Refers to item: Line (location: source ID 13, line 30, chars 898-950, hits: 0) -- IC 1921 -> Item 205 - - Refers to item: Statement (location: source ID 13, line 30, chars 898-950, hits: 0) -- IC 1929 -> Item 206 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 13, line 30, chars 898-950, hits: 0) -- IC 1987 -> Item 207 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 13, line 30, chars 898-950, hits: 0) -- IC 1988 -> Item 208 - - Refers to item: Line (location: source ID 13, line 31, chars 960-1025, hits: 0) -- IC 1988 -> Item 209 - - Refers to item: Statement (location: source ID 13, line 31, chars 960-1025, hits: 0) -- IC 1991 -> Item 210 - - Refers to item: Statement (location: source ID 13, line 31, chars 999-1025, hits: 0) -- IC 2005 -> Item 211 - - Refers to item: Line (location: source ID 13, line 32, chars 1035-1064, hits: 0) -- IC 2005 -> Item 212 - - Refers to item: Statement (location: source ID 13, line 32, chars 1035-1064, hits: 0) -- IC 2016 -> Item 213 - - Refers to item: Line (location: source ID 13, line 33, chars 1074-1100, hits: 0) -- IC 2016 -> Item 214 - - Refers to item: Statement (location: source ID 13, line 33, chars 1074-1100, hits: 0) -- IC 2049 -> Item 215 - - Refers to item: Line (location: source ID 13, line 34, chars 1110-1147, hits: 0) -- IC 2049 -> Item 216 - - Refers to item: Statement (location: source ID 13, line 34, chars 1110-1147, hits: 0) - -Anchors for Contract "ERC721Psi" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 23): -- IC 4285 -> Item 1272 - - Refers to item: Function "_startTokenId" (location: source ID 23, line 64, chars 2275-2425, hits: 0) -- IC 4290 -> Item 1275 - - Refers to item: Function "_nextTokenId" (location: source ID 23, line 72, chars 2499-2600, hits: 0) -- IC 4293 -> Item 1276 - - Refers to item: Line (location: source ID 23, line 73, chars 2573-2593, hits: 0) -- IC 4293 -> Item 1277 - - Refers to item: Statement (location: source ID 23, line 73, chars 2573-2593, hits: 0) -- IC 3243 -> Item 1278 - - Refers to item: Function "_totalMinted" (location: source ID 23, line 79, chars 2693-2812, hits: 0) -- IC 3246 -> Item 1279 - - Refers to item: Line (location: source ID 23, line 80, chars 2767-2805, hits: 0) -- IC 3246 -> Item 1280 - - Refers to item: Statement (location: source ID 23, line 80, chars 2767-2805, hits: 0) -- IC 239 -> Item 1281 - - Refers to item: Function "supportsInterface" (location: source ID 23, line 86, chars 2879-3179, hits: 0) -- IC 760 -> Item 1282 - - Refers to item: Line (location: source ID 23, line 87, chars 2997-3172, hits: 0) -- IC 760 -> Item 1283 - - Refers to item: Statement (location: source ID 23, line 87, chars 2997-3172, hits: 0) -- IC 527 -> Item 1284 - - Refers to item: Function "balanceOf" (location: source ID 23, line 96, chars 3238-3663, hits: 0) -- IC 1711 -> Item 1285 - - Refers to item: Line (location: source ID 23, line 97, chars 3326-3403, hits: 0) -- IC 1711 -> Item 1286 - - Refers to item: Statement (location: source ID 23, line 97, chars 3326-3403, hits: 0) -- IC 1762 -> Item 1287 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 23, line 97, chars 3326-3403, hits: 0) -- IC 1820 -> Item 1288 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 23, line 97, chars 3326-3403, hits: 0) -- IC 1821 -> Item 1289 - - Refers to item: Line (location: source ID 23, line 99, chars 3414-3424, hits: 0) -- IC 1821 -> Item 1290 - - Refers to item: Statement (location: source ID 23, line 99, chars 3414-3424, hits: 0) -- IC 1823 -> Item 1291 - - Refers to item: Line (location: source ID 23, line 100, chars 3439-3463, hits: 0) -- IC 1823 -> Item 1292 - - Refers to item: Statement (location: source ID 23, line 100, chars 3439-3463, hits: 0) -- IC 1824 -> Item 1293 - - Refers to item: Statement (location: source ID 23, line 100, chars 3448-3463, hits: 0) -- IC 1835 -> Item 1294 - - Refers to item: Statement (location: source ID 23, line 100, chars 3465-3483, hits: 0) -- IC 1937 -> Item 1295 - - Refers to item: Statement (location: source ID 23, line 100, chars 3485-3488, hits: 0) -- IC 1850 -> Item 1296 - - Refers to item: Line (location: source ID 23, line 101, chars 3508-3518, hits: 0) -- IC 1850 -> Item 1297 - - Refers to item: Statement (location: source ID 23, line 101, chars 3508-3518, hits: 0) -- IC 1923 -> Item 1298 - - Refers to item: Branch (branch: 1, path: 0) (location: source ID 23, line 101, chars 3504-3625, hits: 0) -- IC 1935 -> Item 1299 - - Refers to item: Branch (branch: 1, path: 1) (location: source ID 23, line 101, chars 3504-3625, hits: 0) -- IC 1864 -> Item 1300 - - Refers to item: Line (location: source ID 23, line 102, chars 3542-3561, hits: 0) -- IC 1864 -> Item 1301 - - Refers to item: Statement (location: source ID 23, line 102, chars 3542-3561, hits: 0) -- IC 1923 -> Item 1302 - - Refers to item: Branch (branch: 2, path: 0) (location: source ID 23, line 102, chars 3538-3611, hits: 0) -- IC 1935 -> Item 1303 - - Refers to item: Branch (branch: 2, path: 1) (location: source ID 23, line 102, chars 3538-3611, hits: 0) -- IC 1923 -> Item 1304 - - Refers to item: Line (location: source ID 23, line 103, chars 3585-3592, hits: 0) -- IC 1923 -> Item 1305 - - Refers to item: Statement (location: source ID 23, line 103, chars 3585-3592, hits: 0) -- IC 1955 -> Item 1306 - - Refers to item: Line (location: source ID 23, line 107, chars 3644-3656, hits: 0) -- IC 1955 -> Item 1307 - - Refers to item: Statement (location: source ID 23, line 107, chars 3644-3656, hits: 0) -- IC 479 -> Item 1308 - - Refers to item: Function "ownerOf" (location: source ID 23, line 113, chars 3720-3889, hits: 0) -- IC 1687 -> Item 1309 - - Refers to item: Line (location: source ID 23, line 114, chars 3811-3860, hits: 0) -- IC 1687 -> Item 1310 - - Refers to item: Statement (location: source ID 23, line 114, chars 3811-3860, hits: 0) -- IC 1688 -> Item 1311 - - Refers to item: Statement (location: source ID 23, line 114, chars 3831-3860, hits: 0) -- IC 1700 -> Item 1312 - - Refers to item: Line (location: source ID 23, line 115, chars 3870-3882, hits: 0) -- IC 1700 -> Item 1313 - - Refers to item: Statement (location: source ID 23, line 115, chars 3870-3882, hits: 0) -- IC 4140 -> Item 1314 - - Refers to item: Function "_ownerAndBatchHeadOf" (location: source ID 23, line 118, chars 3895-4190, hits: 0) -- IC 4144 -> Item 1315 - - Refers to item: Line (location: source ID 23, line 119, chars 4016-4089, hits: 0) -- IC 4144 -> Item 1316 - - Refers to item: Statement (location: source ID 23, line 119, chars 4016-4089, hits: 0) -- IC 4157 -> Item 1317 - - Refers to item: Branch (branch: 3, path: 0) (location: source ID 23, line 119, chars 4016-4089, hits: 0) -- IC 4215 -> Item 1318 - - Refers to item: Branch (branch: 3, path: 1) (location: source ID 23, line 119, chars 4016-4089, hits: 0) -- IC 4216 -> Item 1319 - - Refers to item: Line (location: source ID 23, line 120, chars 4099-4140, hits: 0) -- IC 4216 -> Item 1320 - - Refers to item: Statement (location: source ID 23, line 120, chars 4099-4140, hits: 0) -- IC 4227 -> Item 1321 - - Refers to item: Line (location: source ID 23, line 121, chars 4150-4183, hits: 0) -- IC 4227 -> Item 1322 - - Refers to item: Statement (location: source ID 23, line 121, chars 4150-4183, hits: 0) -- IC 287 -> Item 1323 - - Refers to item: Function "name" (location: source ID 23, line 127, chars 4252-4350, hits: 0) -- IC 986 -> Item 1324 - - Refers to item: Line (location: source ID 23, line 128, chars 4331-4343, hits: 0) -- IC 986 -> Item 1325 - - Refers to item: Statement (location: source ID 23, line 128, chars 4331-4343, hits: 0) -- IC 575 -> Item 1326 - - Refers to item: Function "symbol" (location: source ID 23, line 134, chars 4414-4516, hits: 0) -- IC 1966 -> Item 1327 - - Refers to item: Line (location: source ID 23, line 135, chars 4495-4509, hits: 0) -- IC 1966 -> Item 1328 - - Refers to item: Statement (location: source ID 23, line 135, chars 4495-4509, hits: 0) -- IC 661 -> Item 1329 - - Refers to item: Function "tokenURI" (location: source ID 23, line 141, chars 4582-4906, hits: 0) -- IC 2594 -> Item 1330 - - Refers to item: Line (location: source ID 23, line 142, chars 4680-4751, hits: 0) -- IC 2594 -> Item 1331 - - Refers to item: Statement (location: source ID 23, line 142, chars 4680-4751, hits: 0) -- IC 2607 -> Item 1332 - - Refers to item: Branch (branch: 4, path: 0) (location: source ID 23, line 142, chars 4680-4751, hits: 0) -- IC 2665 -> Item 1333 - - Refers to item: Branch (branch: 4, path: 1) (location: source ID 23, line 142, chars 4680-4751, hits: 0) -- IC 2666 -> Item 1334 - - Refers to item: Line (location: source ID 23, line 144, chars 4762-4796, hits: 0) -- IC 2666 -> Item 1335 - - Refers to item: Statement (location: source ID 23, line 144, chars 4762-4796, hits: 0) -- IC 2668 -> Item 1336 - - Refers to item: Statement (location: source ID 23, line 144, chars 4786-4796, hits: 0) -- IC 2678 -> Item 1337 - - Refers to item: Line (location: source ID 23, line 145, chars 4806-4899, hits: 0) -- IC 2678 -> Item 1338 - - Refers to item: Statement (location: source ID 23, line 145, chars 4806-4899, hits: 0) -- IC 4394 -> Item 1339 - - Refers to item: Function "_baseURI" (location: source ID 23, line 153, chars 5147-5239, hits: 0) -- IC 4397 -> Item 1340 - - Refers to item: Line (location: source ID 23, line 154, chars 5223-5232, hits: 0) -- IC 4397 -> Item 1341 - - Refers to item: Statement (location: source ID 23, line 154, chars 5223-5232, hits: 0) -- IC 365 -> Item 1342 - - Refers to item: Function "approve" (location: source ID 23, line 160, chars 5296-5696, hits: 0) -- IC 1263 -> Item 1343 - - Refers to item: Line (location: source ID 23, line 161, chars 5376-5408, hits: 0) -- IC 1263 -> Item 1344 - - Refers to item: Statement (location: source ID 23, line 161, chars 5376-5408, hits: 0) -- IC 1265 -> Item 1345 - - Refers to item: Statement (location: source ID 23, line 161, chars 5392-5408, hits: 0) -- IC 1276 -> Item 1346 - - Refers to item: Line (location: source ID 23, line 162, chars 5418-5478, hits: 0) -- IC 1276 -> Item 1347 - - Refers to item: Statement (location: source ID 23, line 162, chars 5418-5478, hits: 0) -- IC 1327 -> Item 1348 - - Refers to item: Branch (branch: 5, path: 0) (location: source ID 23, line 162, chars 5418-5478, hits: 0) -- IC 1385 -> Item 1349 - - Refers to item: Branch (branch: 5, path: 1) (location: source ID 23, line 162, chars 5418-5478, hits: 0) -- IC 1386 -> Item 1350 - - Refers to item: Line (location: source ID 23, line 164, chars 5489-5657, hits: 0) -- IC 1386 -> Item 1351 - - Refers to item: Statement (location: source ID 23, line 164, chars 5489-5657, hits: 0) -- IC 1468 -> Item 1352 - - Refers to item: Branch (branch: 6, path: 0) (location: source ID 23, line 164, chars 5489-5657, hits: 0) -- IC 1526 -> Item 1353 - - Refers to item: Branch (branch: 6, path: 1) (location: source ID 23, line 164, chars 5489-5657, hits: 0) -- IC 1527 -> Item 1354 - - Refers to item: Line (location: source ID 23, line 169, chars 5668-5689, hits: 0) -- IC 1527 -> Item 1355 - - Refers to item: Statement (location: source ID 23, line 169, chars 5668-5689, hits: 0) -- IC 317 -> Item 1356 - - Refers to item: Function "getApproved" (location: source ID 23, line 175, chars 5757-5977, hits: 0) -- IC 1132 -> Item 1357 - - Refers to item: Line (location: source ID 23, line 176, chars 5852-5928, hits: 0) -- IC 1132 -> Item 1358 - - Refers to item: Statement (location: source ID 23, line 176, chars 5852-5928, hits: 0) -- IC 1145 -> Item 1359 - - Refers to item: Branch (branch: 7, path: 0) (location: source ID 23, line 176, chars 5852-5928, hits: 0) -- IC 1203 -> Item 1360 - - Refers to item: Branch (branch: 7, path: 1) (location: source ID 23, line 176, chars 5852-5928, hits: 0) -- IC 1204 -> Item 1361 - - Refers to item: Line (location: source ID 23, line 178, chars 5939-5970, hits: 0) -- IC 1204 -> Item 1362 - - Refers to item: Statement (location: source ID 23, line 178, chars 5939-5970, hits: 0) -- IC 605 -> Item 1363 - - Refers to item: Function "setApprovalForAll" (location: source ID 23, line 184, chars 6044-6337, hits: 0) -- IC 2110 -> Item 1364 - - Refers to item: Line (location: source ID 23, line 185, chars 6138-6203, hits: 0) -- IC 2110 -> Item 1365 - - Refers to item: Statement (location: source ID 23, line 185, chars 6138-6203, hits: 0) -- IC 2168 -> Item 1366 - - Refers to item: Branch (branch: 8, path: 0) (location: source ID 23, line 185, chars 6138-6203, hits: 0) -- IC 2226 -> Item 1367 - - Refers to item: Branch (branch: 8, path: 1) (location: source ID 23, line 185, chars 6138-6203, hits: 0) -- IC 2227 -> Item 1368 - - Refers to item: Line (location: source ID 23, line 187, chars 6214-6267, hits: 0) -- IC 2227 -> Item 1369 - - Refers to item: Statement (location: source ID 23, line 187, chars 6214-6267, hits: 0) -- IC 2382 -> Item 1370 - - Refers to item: Line (location: source ID 23, line 188, chars 6277-6330, hits: 0) -- IC 2382 -> Item 1371 - - Refers to item: Statement (location: source ID 23, line 188, chars 6277-6330, hits: 0) -- IC 709 -> Item 1372 - - Refers to item: Function "isApprovedForAll" (location: source ID 23, line 194, chars 6403-6565, hits: 0) -- IC 2761 -> Item 1373 - - Refers to item: Line (location: source ID 23, line 195, chars 6516-6558, hits: 0) -- IC 2761 -> Item 1374 - - Refers to item: Statement (location: source ID 23, line 195, chars 6516-6558, hits: 0) -- IC 423 -> Item 1375 - - Refers to item: Function "transferFrom" (location: source ID 23, line 201, chars 6627-6930, hits: 0) -- IC 1557 -> Item 1376 - - Refers to item: Line (location: source ID 23, line 203, chars 6778-6884, hits: 0) -- IC 1557 -> Item 1377 - - Refers to item: Statement (location: source ID 23, line 203, chars 6778-6884, hits: 0) -- IC 1578 -> Item 1378 - - Refers to item: Branch (branch: 9, path: 0) (location: source ID 23, line 203, chars 6778-6884, hits: 0) -- IC 1636 -> Item 1379 - - Refers to item: Branch (branch: 9, path: 1) (location: source ID 23, line 203, chars 6778-6884, hits: 0) -- IC 1637 -> Item 1380 - - Refers to item: Line (location: source ID 23, line 205, chars 6895-6923, hits: 0) -- IC 1637 -> Item 1381 - - Refers to item: Statement (location: source ID 23, line 205, chars 6895-6923, hits: 0) -- IC 451 -> Item 1382 - - Refers to item: Function "safeTransferFrom" (location: source ID 23, line 211, chars 6996-7145, hits: 0) -- IC 1653 -> Item 1383 - - Refers to item: Line (location: source ID 23, line 212, chars 7099-7138, hits: 0) -- IC 1653 -> Item 1384 - - Refers to item: Statement (location: source ID 23, line 212, chars 7099-7138, hits: 0) -- IC 633 -> Item 1385 - - Refers to item: Function "safeTransferFrom" (location: source ID 23, line 218, chars 7211-7496, hits: 0) -- IC 2494 -> Item 1386 - - Refers to item: Line (location: source ID 23, line 219, chars 7334-7440, hits: 0) -- IC 2494 -> Item 1387 - - Refers to item: Statement (location: source ID 23, line 219, chars 7334-7440, hits: 0) -- IC 2515 -> Item 1388 - - Refers to item: Branch (branch: 10, path: 0) (location: source ID 23, line 219, chars 7334-7440, hits: 0) -- IC 2573 -> Item 1389 - - Refers to item: Branch (branch: 10, path: 1) (location: source ID 23, line 219, chars 7334-7440, hits: 0) -- IC 2574 -> Item 1390 - - Refers to item: Line (location: source ID 23, line 220, chars 7450-7489, hits: 0) -- IC 2574 -> Item 1391 - - Refers to item: Statement (location: source ID 23, line 220, chars 7450-7489, hits: 0) -- IC 4300 -> Item 1392 - - Refers to item: Function "_safeTransfer" (location: source ID 23, line 241, chars 8358-8667, hits: 0) -- IC 4301 -> Item 1393 - - Refers to item: Line (location: source ID 23, line 242, chars 8471-8499, hits: 0) -- IC 4301 -> Item 1394 - - Refers to item: Statement (location: source ID 23, line 242, chars 8471-8499, hits: 0) -- IC 4312 -> Item 1395 - - Refers to item: Line (location: source ID 23, line 243, chars 8509-8660, hits: 0) -- IC 4312 -> Item 1396 - - Refers to item: Statement (location: source ID 23, line 243, chars 8509-8660, hits: 0) -- IC 4330 -> Item 1397 - - Refers to item: Branch (branch: 11, path: 0) (location: source ID 23, line 243, chars 8509-8660, hits: 0) -- IC 4388 -> Item 1398 - - Refers to item: Branch (branch: 11, path: 1) (location: source ID 23, line 243, chars 8509-8660, hits: 0) -- IC 3012 -> Item 1399 - - Refers to item: Function "_exists" (location: source ID 23, line 256, chars 8913-9062, hits: 0) -- IC 3015 -> Item 1400 - - Refers to item: Line (location: source ID 23, line 257, chars 8994-9055, hits: 0) -- IC 3015 -> Item 1401 - - Refers to item: Statement (location: source ID 23, line 257, chars 8994-9055, hits: 0) -- IC 3271 -> Item 1402 - - Refers to item: Function "_isApprovedOrOwner" (location: source ID 23, line 267, chars 9220-9560, hits: 0) -- IC 3274 -> Item 1403 - - Refers to item: Line (location: source ID 23, line 268, chars 9329-9405, hits: 0) -- IC 3274 -> Item 1404 - - Refers to item: Statement (location: source ID 23, line 268, chars 9329-9405, hits: 0) -- IC 3287 -> Item 1405 - - Refers to item: Branch (branch: 12, path: 0) (location: source ID 23, line 268, chars 9329-9405, hits: 0) -- IC 3345 -> Item 1406 - - Refers to item: Branch (branch: 12, path: 1) (location: source ID 23, line 268, chars 9329-9405, hits: 0) -- IC 3346 -> Item 1407 - - Refers to item: Line (location: source ID 23, line 269, chars 9415-9447, hits: 0) -- IC 3346 -> Item 1408 - - Refers to item: Statement (location: source ID 23, line 269, chars 9415-9447, hits: 0) -- IC 3348 -> Item 1409 - - Refers to item: Statement (location: source ID 23, line 269, chars 9431-9447, hits: 0) -- IC 3359 -> Item 1410 - - Refers to item: Line (location: source ID 23, line 270, chars 9457-9553, hits: 0) -- IC 3359 -> Item 1411 - - Refers to item: Statement (location: source ID 23, line 270, chars 9457-9553, hits: 0) -- IC 3493 -> Item 1454 - - Refers to item: Function "_transfer" (location: source ID 23, line 356, chars 12859-13793, hits: 0) -- IC 3494 -> Item 1455 - - Refers to item: Line (location: source ID 23, line 357, chars 12948-13021, hits: 0) -- IC 3494 -> Item 1456 - - Refers to item: Statement (location: source ID 23, line 357, chars 12948-13021, hits: 0) -- IC 3497 -> Item 1457 - - Refers to item: Statement (location: source ID 23, line 357, chars 12992-13021, hits: 0) -- IC 3510 -> Item 1458 - - Refers to item: Line (location: source ID 23, line 359, chars 13032-13102, hits: 0) -- IC 3510 -> Item 1459 - - Refers to item: Statement (location: source ID 23, line 359, chars 13032-13102, hits: 0) -- IC 3561 -> Item 1460 - - Refers to item: Branch (branch: 16, path: 0) (location: source ID 23, line 359, chars 13032-13102, hits: 0) -- IC 3619 -> Item 1461 - - Refers to item: Branch (branch: 16, path: 1) (location: source ID 23, line 359, chars 13032-13102, hits: 0) -- IC 3620 -> Item 1462 - - Refers to item: Line (location: source ID 23, line 360, chars 13112-13180, hits: 0) -- IC 3620 -> Item 1463 - - Refers to item: Statement (location: source ID 23, line 360, chars 13112-13180, hits: 0) -- IC 3672 -> Item 1464 - - Refers to item: Branch (branch: 17, path: 0) (location: source ID 23, line 360, chars 13112-13180, hits: 0) -- IC 3730 -> Item 1465 - - Refers to item: Branch (branch: 17, path: 1) (location: source ID 23, line 360, chars 13112-13180, hits: 0) -- IC 3731 -> Item 1466 - - Refers to item: Line (location: source ID 23, line 362, chars 13191-13234, hits: 0) -- IC 3731 -> Item 1467 - - Refers to item: Statement (location: source ID 23, line 362, chars 13191-13234, hits: 0) -- IC 3744 -> Item 1468 - - Refers to item: Line (location: source ID 23, line 365, chars 13296-13325, hits: 0) -- IC 3744 -> Item 1469 - - Refers to item: Statement (location: source ID 23, line 365, chars 13296-13325, hits: 0) -- IC 3755 -> Item 1470 - - Refers to item: Line (location: source ID 23, line 367, chars 13336-13375, hits: 0) -- IC 3755 -> Item 1471 - - Refers to item: Statement (location: source ID 23, line 367, chars 13336-13375, hits: 0) -- IC 3757 -> Item 1472 - - Refers to item: Statement (location: source ID 23, line 367, chars 13364-13375, hits: 0) -- IC 3772 -> Item 1473 - - Refers to item: Line (location: source ID 23, line 369, chars 13390-13462, hits: 0) -- IC 3772 -> Item 1474 - - Refers to item: Statement (location: source ID 23, line 369, chars 13390-13462, hits: 0) -- IC 3816 -> Item 1475 - - Refers to item: Branch (branch: 18, path: 0) (location: source ID 23, line 369, chars 13386-13569, hits: 0) -- IC 3918 -> Item 1476 - - Refers to item: Branch (branch: 18, path: 1) (location: source ID 23, line 369, chars 13386-13569, hits: 0) -- IC 3816 -> Item 1477 - - Refers to item: Line (location: source ID 23, line 370, chars 13478-13511, hits: 0) -- IC 3816 -> Item 1478 - - Refers to item: Statement (location: source ID 23, line 370, chars 13478-13511, hits: 0) -- IC 3898 -> Item 1479 - - Refers to item: Line (location: source ID 23, line 371, chars 13525-13558, hits: 0) -- IC 3898 -> Item 1480 - - Refers to item: Statement (location: source ID 23, line 371, chars 13525-13558, hits: 0) -- IC 3919 -> Item 1481 - - Refers to item: Line (location: source ID 23, line 374, chars 13579-13600, hits: 0) -- IC 3919 -> Item 1482 - - Refers to item: Statement (location: source ID 23, line 374, chars 13579-13600, hits: 0) -- IC 4001 -> Item 1483 - - Refers to item: Line (location: source ID 23, line 375, chars 13614-13641, hits: 0) -- IC 4001 -> Item 1484 - - Refers to item: Statement (location: source ID 23, line 375, chars 13614-13641, hits: 0) -- IC 4008 -> Item 1485 - - Refers to item: Branch (branch: 19, path: 0) (location: source ID 23, line 375, chars 13610-13691, hits: 0) -- IC 4028 -> Item 1486 - - Refers to item: Branch (branch: 19, path: 1) (location: source ID 23, line 375, chars 13610-13691, hits: 0) -- IC 4008 -> Item 1487 - - Refers to item: Line (location: source ID 23, line 376, chars 13657-13680, hits: 0) -- IC 4008 -> Item 1488 - - Refers to item: Statement (location: source ID 23, line 376, chars 13657-13680, hits: 0) -- IC 4029 -> Item 1489 - - Refers to item: Line (location: source ID 23, line 379, chars 13701-13733, hits: 0) -- IC 4029 -> Item 1490 - - Refers to item: Statement (location: source ID 23, line 379, chars 13701-13733, hits: 0) -- IC 4120 -> Item 1491 - - Refers to item: Line (location: source ID 23, line 381, chars 13744-13786, hits: 0) -- IC 4120 -> Item 1492 - - Refers to item: Statement (location: source ID 23, line 381, chars 13744-13786, hits: 0) -- IC 3058 -> Item 1493 - - Refers to item: Function "_approve" (location: source ID 23, line 389, chars 13904-14068, hits: 0) -- IC 3059 -> Item 1494 - - Refers to item: Line (location: source ID 23, line 390, chars 13978-14007, hits: 0) -- IC 3059 -> Item 1495 - - Refers to item: Statement (location: source ID 23, line 390, chars 13978-14007, hits: 0) -- IC 3141 -> Item 1496 - - Refers to item: Line (location: source ID 23, line 391, chars 14017-14061, hits: 0) -- IC 3141 -> Item 1497 - - Refers to item: Statement (location: source ID 23, line 391, chars 14017-14061, hits: 0) -- IC 4848 -> Item 1498 - - Refers to item: Function "_checkOnERC721Received" (location: source ID 23, line 405, chars 14709-15724, hits: 0) -- IC 4851 -> Item 1499 - - Refers to item: Line (location: source ID 23, line 412, chars 14912-14927, hits: 0) -- IC 4851 -> Item 1500 - - Refers to item: Statement (location: source ID 23, line 412, chars 14912-14927, hits: 0) -- IC 5183 -> Item 1501 - - Refers to item: Branch (branch: 20, path: 0) (location: source ID 23, line 412, chars 14908-15676, hits: 0) -- IC 5256 -> Item 1502 - - Refers to item: Branch (branch: 20, path: 1) (location: source ID 23, line 412, chars 14908-15676, hits: 0) -- IC 4887 -> Item 1503 - - Refers to item: Line (location: source ID 23, line 413, chars 14943-14951, hits: 0) -- IC 4887 -> Item 1504 - - Refers to item: Statement (location: source ID 23, line 413, chars 14943-14951, hits: 0) -- IC 4891 -> Item 1505 - - Refers to item: Line (location: source ID 23, line 414, chars 14970-15000, hits: 0) -- IC 4891 -> Item 1506 - - Refers to item: Statement (location: source ID 23, line 414, chars 14970-15000, hits: 0) -- IC 4897 -> Item 1507 - - Refers to item: Statement (location: source ID 23, line 414, chars 15002-15035, hits: 0) -- IC 5260 -> Item 1508 - - Refers to item: Statement (location: source ID 23, line 414, chars 15037-15046, hits: 0) -- IC 4916 -> Item 1509 - - Refers to item: Line (location: source ID 23, line 415, chars 15070-15142, hits: 0) -- IC 4916 -> Item 1510 - - Refers to item: Statement (location: source ID 23, line 415, chars 15070-15142, hits: 0) -- IC 5280 -> Item 1511 - - Refers to item: Line (location: source ID 23, line 427, chars 15657-15665, hits: 0) -- IC 5280 -> Item 1512 - - Refers to item: Statement (location: source ID 23, line 427, chars 15657-15665, hits: 0) -- IC 5285 -> Item 1513 - - Refers to item: Line (location: source ID 23, line 429, chars 15696-15707, hits: 0) -- IC 5285 -> Item 1514 - - Refers to item: Statement (location: source ID 23, line 429, chars 15696-15707, hits: 0) -- IC 4819 -> Item 1515 - - Refers to item: Function "_getBatchHead" (location: source ID 23, line 433, chars 15730-15886, hits: 0) -- IC 4822 -> Item 1516 - - Refers to item: Line (location: source ID 23, line 434, chars 15829-15879, hits: 0) -- IC 4822 -> Item 1517 - - Refers to item: Statement (location: source ID 23, line 434, chars 15829-15879, hits: 0) -- IC 393 -> Item 1518 - - Refers to item: Function "totalSupply" (location: source ID 23, line 437, chars 15892-15991, hits: 0) -- IC 1544 -> Item 1519 - - Refers to item: Line (location: source ID 23, line 438, chars 15963-15984, hits: 0) -- IC 1544 -> Item 1520 - - Refers to item: Statement (location: source ID 23, line 438, chars 15963-15984, hits: 0) -- IC 4623 -> Item 1521 - - Refers to item: Function "_beforeTokenTransfers" (location: source ID 23, line 453, chars 16465-16581, hits: 0) -- IC 4813 -> Item 1522 - - Refers to item: Function "_afterTokenTransfers" (location: source ID 23, line 467, chars 16979-17094, hits: 0) -- IC 4285 -> Item 1272 - - Refers to item: Function "_startTokenId" (location: source ID 23, line 64, chars 2275-2425, hits: 0) -- IC 4290 -> Item 1275 - - Refers to item: Function "_nextTokenId" (location: source ID 23, line 72, chars 2499-2600, hits: 0) -- IC 4293 -> Item 1276 - - Refers to item: Line (location: source ID 23, line 73, chars 2573-2593, hits: 0) -- IC 4293 -> Item 1277 - - Refers to item: Statement (location: source ID 23, line 73, chars 2573-2593, hits: 0) -- IC 3243 -> Item 1278 - - Refers to item: Function "_totalMinted" (location: source ID 23, line 79, chars 2693-2812, hits: 0) -- IC 3246 -> Item 1279 - - Refers to item: Line (location: source ID 23, line 80, chars 2767-2805, hits: 0) -- IC 3246 -> Item 1280 - - Refers to item: Statement (location: source ID 23, line 80, chars 2767-2805, hits: 0) -- IC 239 -> Item 1281 - - Refers to item: Function "supportsInterface" (location: source ID 23, line 86, chars 2879-3179, hits: 0) -- IC 760 -> Item 1282 - - Refers to item: Line (location: source ID 23, line 87, chars 2997-3172, hits: 0) -- IC 760 -> Item 1283 - - Refers to item: Statement (location: source ID 23, line 87, chars 2997-3172, hits: 0) -- IC 527 -> Item 1284 - - Refers to item: Function "balanceOf" (location: source ID 23, line 96, chars 3238-3663, hits: 0) -- IC 1711 -> Item 1285 - - Refers to item: Line (location: source ID 23, line 97, chars 3326-3403, hits: 0) -- IC 1711 -> Item 1286 - - Refers to item: Statement (location: source ID 23, line 97, chars 3326-3403, hits: 0) -- IC 1762 -> Item 1287 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 23, line 97, chars 3326-3403, hits: 0) -- IC 1820 -> Item 1288 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 23, line 97, chars 3326-3403, hits: 0) -- IC 1821 -> Item 1289 - - Refers to item: Line (location: source ID 23, line 99, chars 3414-3424, hits: 0) -- IC 1821 -> Item 1290 - - Refers to item: Statement (location: source ID 23, line 99, chars 3414-3424, hits: 0) -- IC 1823 -> Item 1291 - - Refers to item: Line (location: source ID 23, line 100, chars 3439-3463, hits: 0) -- IC 1823 -> Item 1292 - - Refers to item: Statement (location: source ID 23, line 100, chars 3439-3463, hits: 0) -- IC 1824 -> Item 1293 - - Refers to item: Statement (location: source ID 23, line 100, chars 3448-3463, hits: 0) -- IC 1835 -> Item 1294 - - Refers to item: Statement (location: source ID 23, line 100, chars 3465-3483, hits: 0) -- IC 1937 -> Item 1295 - - Refers to item: Statement (location: source ID 23, line 100, chars 3485-3488, hits: 0) -- IC 1850 -> Item 1296 - - Refers to item: Line (location: source ID 23, line 101, chars 3508-3518, hits: 0) -- IC 1850 -> Item 1297 - - Refers to item: Statement (location: source ID 23, line 101, chars 3508-3518, hits: 0) -- IC 1923 -> Item 1298 - - Refers to item: Branch (branch: 1, path: 0) (location: source ID 23, line 101, chars 3504-3625, hits: 0) -- IC 1935 -> Item 1299 - - Refers to item: Branch (branch: 1, path: 1) (location: source ID 23, line 101, chars 3504-3625, hits: 0) -- IC 1864 -> Item 1300 - - Refers to item: Line (location: source ID 23, line 102, chars 3542-3561, hits: 0) -- IC 1864 -> Item 1301 - - Refers to item: Statement (location: source ID 23, line 102, chars 3542-3561, hits: 0) -- IC 1923 -> Item 1302 - - Refers to item: Branch (branch: 2, path: 0) (location: source ID 23, line 102, chars 3538-3611, hits: 0) -- IC 1935 -> Item 1303 - - Refers to item: Branch (branch: 2, path: 1) (location: source ID 23, line 102, chars 3538-3611, hits: 0) -- IC 1923 -> Item 1304 - - Refers to item: Line (location: source ID 23, line 103, chars 3585-3592, hits: 0) -- IC 1923 -> Item 1305 - - Refers to item: Statement (location: source ID 23, line 103, chars 3585-3592, hits: 0) -- IC 1955 -> Item 1306 - - Refers to item: Line (location: source ID 23, line 107, chars 3644-3656, hits: 0) -- IC 1955 -> Item 1307 - - Refers to item: Statement (location: source ID 23, line 107, chars 3644-3656, hits: 0) -- IC 479 -> Item 1308 - - Refers to item: Function "ownerOf" (location: source ID 23, line 113, chars 3720-3889, hits: 0) -- IC 1687 -> Item 1309 - - Refers to item: Line (location: source ID 23, line 114, chars 3811-3860, hits: 0) -- IC 1687 -> Item 1310 - - Refers to item: Statement (location: source ID 23, line 114, chars 3811-3860, hits: 0) -- IC 1688 -> Item 1311 - - Refers to item: Statement (location: source ID 23, line 114, chars 3831-3860, hits: 0) -- IC 1700 -> Item 1312 - - Refers to item: Line (location: source ID 23, line 115, chars 3870-3882, hits: 0) -- IC 1700 -> Item 1313 - - Refers to item: Statement (location: source ID 23, line 115, chars 3870-3882, hits: 0) -- IC 4140 -> Item 1314 - - Refers to item: Function "_ownerAndBatchHeadOf" (location: source ID 23, line 118, chars 3895-4190, hits: 0) -- IC 4144 -> Item 1315 - - Refers to item: Line (location: source ID 23, line 119, chars 4016-4089, hits: 0) -- IC 4144 -> Item 1316 - - Refers to item: Statement (location: source ID 23, line 119, chars 4016-4089, hits: 0) -- IC 4157 -> Item 1317 - - Refers to item: Branch (branch: 3, path: 0) (location: source ID 23, line 119, chars 4016-4089, hits: 0) -- IC 4215 -> Item 1318 - - Refers to item: Branch (branch: 3, path: 1) (location: source ID 23, line 119, chars 4016-4089, hits: 0) -- IC 4216 -> Item 1319 - - Refers to item: Line (location: source ID 23, line 120, chars 4099-4140, hits: 0) -- IC 4216 -> Item 1320 - - Refers to item: Statement (location: source ID 23, line 120, chars 4099-4140, hits: 0) -- IC 4227 -> Item 1321 - - Refers to item: Line (location: source ID 23, line 121, chars 4150-4183, hits: 0) -- IC 4227 -> Item 1322 - - Refers to item: Statement (location: source ID 23, line 121, chars 4150-4183, hits: 0) -- IC 287 -> Item 1323 - - Refers to item: Function "name" (location: source ID 23, line 127, chars 4252-4350, hits: 0) -- IC 986 -> Item 1324 - - Refers to item: Line (location: source ID 23, line 128, chars 4331-4343, hits: 0) -- IC 986 -> Item 1325 - - Refers to item: Statement (location: source ID 23, line 128, chars 4331-4343, hits: 0) -- IC 575 -> Item 1326 - - Refers to item: Function "symbol" (location: source ID 23, line 134, chars 4414-4516, hits: 0) -- IC 1966 -> Item 1327 - - Refers to item: Line (location: source ID 23, line 135, chars 4495-4509, hits: 0) -- IC 1966 -> Item 1328 - - Refers to item: Statement (location: source ID 23, line 135, chars 4495-4509, hits: 0) -- IC 661 -> Item 1329 - - Refers to item: Function "tokenURI" (location: source ID 23, line 141, chars 4582-4906, hits: 0) -- IC 2594 -> Item 1330 - - Refers to item: Line (location: source ID 23, line 142, chars 4680-4751, hits: 0) -- IC 2594 -> Item 1331 - - Refers to item: Statement (location: source ID 23, line 142, chars 4680-4751, hits: 0) -- IC 2607 -> Item 1332 - - Refers to item: Branch (branch: 4, path: 0) (location: source ID 23, line 142, chars 4680-4751, hits: 0) -- IC 2665 -> Item 1333 - - Refers to item: Branch (branch: 4, path: 1) (location: source ID 23, line 142, chars 4680-4751, hits: 0) -- IC 2666 -> Item 1334 - - Refers to item: Line (location: source ID 23, line 144, chars 4762-4796, hits: 0) -- IC 2666 -> Item 1335 - - Refers to item: Statement (location: source ID 23, line 144, chars 4762-4796, hits: 0) -- IC 2668 -> Item 1336 - - Refers to item: Statement (location: source ID 23, line 144, chars 4786-4796, hits: 0) -- IC 2678 -> Item 1337 - - Refers to item: Line (location: source ID 23, line 145, chars 4806-4899, hits: 0) -- IC 2678 -> Item 1338 - - Refers to item: Statement (location: source ID 23, line 145, chars 4806-4899, hits: 0) -- IC 4394 -> Item 1339 - - Refers to item: Function "_baseURI" (location: source ID 23, line 153, chars 5147-5239, hits: 0) -- IC 4397 -> Item 1340 - - Refers to item: Line (location: source ID 23, line 154, chars 5223-5232, hits: 0) -- IC 4397 -> Item 1341 - - Refers to item: Statement (location: source ID 23, line 154, chars 5223-5232, hits: 0) -- IC 365 -> Item 1342 - - Refers to item: Function "approve" (location: source ID 23, line 160, chars 5296-5696, hits: 0) -- IC 1263 -> Item 1343 - - Refers to item: Line (location: source ID 23, line 161, chars 5376-5408, hits: 0) -- IC 1263 -> Item 1344 - - Refers to item: Statement (location: source ID 23, line 161, chars 5376-5408, hits: 0) -- IC 1265 -> Item 1345 - - Refers to item: Statement (location: source ID 23, line 161, chars 5392-5408, hits: 0) -- IC 1276 -> Item 1346 - - Refers to item: Line (location: source ID 23, line 162, chars 5418-5478, hits: 0) -- IC 1276 -> Item 1347 - - Refers to item: Statement (location: source ID 23, line 162, chars 5418-5478, hits: 0) -- IC 1327 -> Item 1348 - - Refers to item: Branch (branch: 5, path: 0) (location: source ID 23, line 162, chars 5418-5478, hits: 0) -- IC 1385 -> Item 1349 - - Refers to item: Branch (branch: 5, path: 1) (location: source ID 23, line 162, chars 5418-5478, hits: 0) -- IC 1386 -> Item 1350 - - Refers to item: Line (location: source ID 23, line 164, chars 5489-5657, hits: 0) -- IC 1386 -> Item 1351 - - Refers to item: Statement (location: source ID 23, line 164, chars 5489-5657, hits: 0) -- IC 1468 -> Item 1352 - - Refers to item: Branch (branch: 6, path: 0) (location: source ID 23, line 164, chars 5489-5657, hits: 0) -- IC 1526 -> Item 1353 - - Refers to item: Branch (branch: 6, path: 1) (location: source ID 23, line 164, chars 5489-5657, hits: 0) -- IC 1527 -> Item 1354 - - Refers to item: Line (location: source ID 23, line 169, chars 5668-5689, hits: 0) -- IC 1527 -> Item 1355 - - Refers to item: Statement (location: source ID 23, line 169, chars 5668-5689, hits: 0) -- IC 317 -> Item 1356 - - Refers to item: Function "getApproved" (location: source ID 23, line 175, chars 5757-5977, hits: 0) -- IC 1132 -> Item 1357 - - Refers to item: Line (location: source ID 23, line 176, chars 5852-5928, hits: 0) -- IC 1132 -> Item 1358 - - Refers to item: Statement (location: source ID 23, line 176, chars 5852-5928, hits: 0) -- IC 1145 -> Item 1359 - - Refers to item: Branch (branch: 7, path: 0) (location: source ID 23, line 176, chars 5852-5928, hits: 0) -- IC 1203 -> Item 1360 - - Refers to item: Branch (branch: 7, path: 1) (location: source ID 23, line 176, chars 5852-5928, hits: 0) -- IC 1204 -> Item 1361 - - Refers to item: Line (location: source ID 23, line 178, chars 5939-5970, hits: 0) -- IC 1204 -> Item 1362 - - Refers to item: Statement (location: source ID 23, line 178, chars 5939-5970, hits: 0) -- IC 605 -> Item 1363 - - Refers to item: Function "setApprovalForAll" (location: source ID 23, line 184, chars 6044-6337, hits: 0) -- IC 2110 -> Item 1364 - - Refers to item: Line (location: source ID 23, line 185, chars 6138-6203, hits: 0) -- IC 2110 -> Item 1365 - - Refers to item: Statement (location: source ID 23, line 185, chars 6138-6203, hits: 0) -- IC 2168 -> Item 1366 - - Refers to item: Branch (branch: 8, path: 0) (location: source ID 23, line 185, chars 6138-6203, hits: 0) -- IC 2226 -> Item 1367 - - Refers to item: Branch (branch: 8, path: 1) (location: source ID 23, line 185, chars 6138-6203, hits: 0) -- IC 2227 -> Item 1368 - - Refers to item: Line (location: source ID 23, line 187, chars 6214-6267, hits: 0) -- IC 2227 -> Item 1369 - - Refers to item: Statement (location: source ID 23, line 187, chars 6214-6267, hits: 0) -- IC 2382 -> Item 1370 - - Refers to item: Line (location: source ID 23, line 188, chars 6277-6330, hits: 0) -- IC 2382 -> Item 1371 - - Refers to item: Statement (location: source ID 23, line 188, chars 6277-6330, hits: 0) -- IC 709 -> Item 1372 - - Refers to item: Function "isApprovedForAll" (location: source ID 23, line 194, chars 6403-6565, hits: 0) -- IC 2761 -> Item 1373 - - Refers to item: Line (location: source ID 23, line 195, chars 6516-6558, hits: 0) -- IC 2761 -> Item 1374 - - Refers to item: Statement (location: source ID 23, line 195, chars 6516-6558, hits: 0) -- IC 423 -> Item 1375 - - Refers to item: Function "transferFrom" (location: source ID 23, line 201, chars 6627-6930, hits: 0) -- IC 1557 -> Item 1376 - - Refers to item: Line (location: source ID 23, line 203, chars 6778-6884, hits: 0) -- IC 1557 -> Item 1377 - - Refers to item: Statement (location: source ID 23, line 203, chars 6778-6884, hits: 0) -- IC 1578 -> Item 1378 - - Refers to item: Branch (branch: 9, path: 0) (location: source ID 23, line 203, chars 6778-6884, hits: 0) -- IC 1636 -> Item 1379 - - Refers to item: Branch (branch: 9, path: 1) (location: source ID 23, line 203, chars 6778-6884, hits: 0) -- IC 1637 -> Item 1380 - - Refers to item: Line (location: source ID 23, line 205, chars 6895-6923, hits: 0) -- IC 1637 -> Item 1381 - - Refers to item: Statement (location: source ID 23, line 205, chars 6895-6923, hits: 0) -- IC 451 -> Item 1382 - - Refers to item: Function "safeTransferFrom" (location: source ID 23, line 211, chars 6996-7145, hits: 0) -- IC 1653 -> Item 1383 - - Refers to item: Line (location: source ID 23, line 212, chars 7099-7138, hits: 0) -- IC 1653 -> Item 1384 - - Refers to item: Statement (location: source ID 23, line 212, chars 7099-7138, hits: 0) -- IC 633 -> Item 1385 - - Refers to item: Function "safeTransferFrom" (location: source ID 23, line 218, chars 7211-7496, hits: 0) -- IC 2494 -> Item 1386 - - Refers to item: Line (location: source ID 23, line 219, chars 7334-7440, hits: 0) -- IC 2494 -> Item 1387 - - Refers to item: Statement (location: source ID 23, line 219, chars 7334-7440, hits: 0) -- IC 2515 -> Item 1388 - - Refers to item: Branch (branch: 10, path: 0) (location: source ID 23, line 219, chars 7334-7440, hits: 0) -- IC 2573 -> Item 1389 - - Refers to item: Branch (branch: 10, path: 1) (location: source ID 23, line 219, chars 7334-7440, hits: 0) -- IC 2574 -> Item 1390 - - Refers to item: Line (location: source ID 23, line 220, chars 7450-7489, hits: 0) -- IC 2574 -> Item 1391 - - Refers to item: Statement (location: source ID 23, line 220, chars 7450-7489, hits: 0) -- IC 4300 -> Item 1392 - - Refers to item: Function "_safeTransfer" (location: source ID 23, line 241, chars 8358-8667, hits: 0) -- IC 4301 -> Item 1393 - - Refers to item: Line (location: source ID 23, line 242, chars 8471-8499, hits: 0) -- IC 4301 -> Item 1394 - - Refers to item: Statement (location: source ID 23, line 242, chars 8471-8499, hits: 0) -- IC 4312 -> Item 1395 - - Refers to item: Line (location: source ID 23, line 243, chars 8509-8660, hits: 0) -- IC 4312 -> Item 1396 - - Refers to item: Statement (location: source ID 23, line 243, chars 8509-8660, hits: 0) -- IC 4330 -> Item 1397 - - Refers to item: Branch (branch: 11, path: 0) (location: source ID 23, line 243, chars 8509-8660, hits: 0) -- IC 4388 -> Item 1398 - - Refers to item: Branch (branch: 11, path: 1) (location: source ID 23, line 243, chars 8509-8660, hits: 0) -- IC 3012 -> Item 1399 - - Refers to item: Function "_exists" (location: source ID 23, line 256, chars 8913-9062, hits: 0) -- IC 3015 -> Item 1400 - - Refers to item: Line (location: source ID 23, line 257, chars 8994-9055, hits: 0) -- IC 3015 -> Item 1401 - - Refers to item: Statement (location: source ID 23, line 257, chars 8994-9055, hits: 0) -- IC 3271 -> Item 1402 - - Refers to item: Function "_isApprovedOrOwner" (location: source ID 23, line 267, chars 9220-9560, hits: 0) -- IC 3274 -> Item 1403 - - Refers to item: Line (location: source ID 23, line 268, chars 9329-9405, hits: 0) -- IC 3274 -> Item 1404 - - Refers to item: Statement (location: source ID 23, line 268, chars 9329-9405, hits: 0) -- IC 3287 -> Item 1405 - - Refers to item: Branch (branch: 12, path: 0) (location: source ID 23, line 268, chars 9329-9405, hits: 0) -- IC 3345 -> Item 1406 - - Refers to item: Branch (branch: 12, path: 1) (location: source ID 23, line 268, chars 9329-9405, hits: 0) -- IC 3346 -> Item 1407 - - Refers to item: Line (location: source ID 23, line 269, chars 9415-9447, hits: 0) -- IC 3346 -> Item 1408 - - Refers to item: Statement (location: source ID 23, line 269, chars 9415-9447, hits: 0) -- IC 3348 -> Item 1409 - - Refers to item: Statement (location: source ID 23, line 269, chars 9431-9447, hits: 0) -- IC 3359 -> Item 1410 - - Refers to item: Line (location: source ID 23, line 270, chars 9457-9553, hits: 0) -- IC 3359 -> Item 1411 - - Refers to item: Statement (location: source ID 23, line 270, chars 9457-9553, hits: 0) -- IC 3493 -> Item 1454 - - Refers to item: Function "_transfer" (location: source ID 23, line 356, chars 12859-13793, hits: 0) -- IC 3494 -> Item 1455 - - Refers to item: Line (location: source ID 23, line 357, chars 12948-13021, hits: 0) -- IC 3494 -> Item 1456 - - Refers to item: Statement (location: source ID 23, line 357, chars 12948-13021, hits: 0) -- IC 3497 -> Item 1457 - - Refers to item: Statement (location: source ID 23, line 357, chars 12992-13021, hits: 0) -- IC 3510 -> Item 1458 - - Refers to item: Line (location: source ID 23, line 359, chars 13032-13102, hits: 0) -- IC 3510 -> Item 1459 - - Refers to item: Statement (location: source ID 23, line 359, chars 13032-13102, hits: 0) -- IC 3561 -> Item 1460 - - Refers to item: Branch (branch: 16, path: 0) (location: source ID 23, line 359, chars 13032-13102, hits: 0) -- IC 3619 -> Item 1461 - - Refers to item: Branch (branch: 16, path: 1) (location: source ID 23, line 359, chars 13032-13102, hits: 0) -- IC 3620 -> Item 1462 - - Refers to item: Line (location: source ID 23, line 360, chars 13112-13180, hits: 0) -- IC 3620 -> Item 1463 - - Refers to item: Statement (location: source ID 23, line 360, chars 13112-13180, hits: 0) -- IC 3672 -> Item 1464 - - Refers to item: Branch (branch: 17, path: 0) (location: source ID 23, line 360, chars 13112-13180, hits: 0) -- IC 3730 -> Item 1465 - - Refers to item: Branch (branch: 17, path: 1) (location: source ID 23, line 360, chars 13112-13180, hits: 0) -- IC 3731 -> Item 1466 - - Refers to item: Line (location: source ID 23, line 362, chars 13191-13234, hits: 0) -- IC 3731 -> Item 1467 - - Refers to item: Statement (location: source ID 23, line 362, chars 13191-13234, hits: 0) -- IC 3744 -> Item 1468 - - Refers to item: Line (location: source ID 23, line 365, chars 13296-13325, hits: 0) -- IC 3744 -> Item 1469 - - Refers to item: Statement (location: source ID 23, line 365, chars 13296-13325, hits: 0) -- IC 3755 -> Item 1470 - - Refers to item: Line (location: source ID 23, line 367, chars 13336-13375, hits: 0) -- IC 3755 -> Item 1471 - - Refers to item: Statement (location: source ID 23, line 367, chars 13336-13375, hits: 0) -- IC 3757 -> Item 1472 - - Refers to item: Statement (location: source ID 23, line 367, chars 13364-13375, hits: 0) -- IC 3772 -> Item 1473 - - Refers to item: Line (location: source ID 23, line 369, chars 13390-13462, hits: 0) -- IC 3772 -> Item 1474 - - Refers to item: Statement (location: source ID 23, line 369, chars 13390-13462, hits: 0) -- IC 3816 -> Item 1475 - - Refers to item: Branch (branch: 18, path: 0) (location: source ID 23, line 369, chars 13386-13569, hits: 0) -- IC 3918 -> Item 1476 - - Refers to item: Branch (branch: 18, path: 1) (location: source ID 23, line 369, chars 13386-13569, hits: 0) -- IC 3816 -> Item 1477 - - Refers to item: Line (location: source ID 23, line 370, chars 13478-13511, hits: 0) -- IC 3816 -> Item 1478 - - Refers to item: Statement (location: source ID 23, line 370, chars 13478-13511, hits: 0) -- IC 3898 -> Item 1479 - - Refers to item: Line (location: source ID 23, line 371, chars 13525-13558, hits: 0) -- IC 3898 -> Item 1480 - - Refers to item: Statement (location: source ID 23, line 371, chars 13525-13558, hits: 0) -- IC 3919 -> Item 1481 - - Refers to item: Line (location: source ID 23, line 374, chars 13579-13600, hits: 0) -- IC 3919 -> Item 1482 - - Refers to item: Statement (location: source ID 23, line 374, chars 13579-13600, hits: 0) -- IC 4001 -> Item 1483 - - Refers to item: Line (location: source ID 23, line 375, chars 13614-13641, hits: 0) -- IC 4001 -> Item 1484 - - Refers to item: Statement (location: source ID 23, line 375, chars 13614-13641, hits: 0) -- IC 4008 -> Item 1485 - - Refers to item: Branch (branch: 19, path: 0) (location: source ID 23, line 375, chars 13610-13691, hits: 0) -- IC 4028 -> Item 1486 - - Refers to item: Branch (branch: 19, path: 1) (location: source ID 23, line 375, chars 13610-13691, hits: 0) -- IC 4008 -> Item 1487 - - Refers to item: Line (location: source ID 23, line 376, chars 13657-13680, hits: 0) -- IC 4008 -> Item 1488 - - Refers to item: Statement (location: source ID 23, line 376, chars 13657-13680, hits: 0) -- IC 4029 -> Item 1489 - - Refers to item: Line (location: source ID 23, line 379, chars 13701-13733, hits: 0) -- IC 4029 -> Item 1490 - - Refers to item: Statement (location: source ID 23, line 379, chars 13701-13733, hits: 0) -- IC 4120 -> Item 1491 - - Refers to item: Line (location: source ID 23, line 381, chars 13744-13786, hits: 0) -- IC 4120 -> Item 1492 - - Refers to item: Statement (location: source ID 23, line 381, chars 13744-13786, hits: 0) -- IC 3058 -> Item 1493 - - Refers to item: Function "_approve" (location: source ID 23, line 389, chars 13904-14068, hits: 0) -- IC 3059 -> Item 1494 - - Refers to item: Line (location: source ID 23, line 390, chars 13978-14007, hits: 0) -- IC 3059 -> Item 1495 - - Refers to item: Statement (location: source ID 23, line 390, chars 13978-14007, hits: 0) -- IC 3141 -> Item 1496 - - Refers to item: Line (location: source ID 23, line 391, chars 14017-14061, hits: 0) -- IC 3141 -> Item 1497 - - Refers to item: Statement (location: source ID 23, line 391, chars 14017-14061, hits: 0) -- IC 4848 -> Item 1498 - - Refers to item: Function "_checkOnERC721Received" (location: source ID 23, line 405, chars 14709-15724, hits: 0) -- IC 4851 -> Item 1499 - - Refers to item: Line (location: source ID 23, line 412, chars 14912-14927, hits: 0) -- IC 4851 -> Item 1500 - - Refers to item: Statement (location: source ID 23, line 412, chars 14912-14927, hits: 0) -- IC 5183 -> Item 1501 - - Refers to item: Branch (branch: 20, path: 0) (location: source ID 23, line 412, chars 14908-15676, hits: 0) -- IC 5256 -> Item 1502 - - Refers to item: Branch (branch: 20, path: 1) (location: source ID 23, line 412, chars 14908-15676, hits: 0) -- IC 4887 -> Item 1503 - - Refers to item: Line (location: source ID 23, line 413, chars 14943-14951, hits: 0) -- IC 4887 -> Item 1504 - - Refers to item: Statement (location: source ID 23, line 413, chars 14943-14951, hits: 0) -- IC 4891 -> Item 1505 - - Refers to item: Line (location: source ID 23, line 414, chars 14970-15000, hits: 0) -- IC 4891 -> Item 1506 - - Refers to item: Statement (location: source ID 23, line 414, chars 14970-15000, hits: 0) -- IC 4897 -> Item 1507 - - Refers to item: Statement (location: source ID 23, line 414, chars 15002-15035, hits: 0) -- IC 5260 -> Item 1508 - - Refers to item: Statement (location: source ID 23, line 414, chars 15037-15046, hits: 0) -- IC 4916 -> Item 1509 - - Refers to item: Line (location: source ID 23, line 415, chars 15070-15142, hits: 0) -- IC 4916 -> Item 1510 - - Refers to item: Statement (location: source ID 23, line 415, chars 15070-15142, hits: 0) -- IC 5280 -> Item 1511 - - Refers to item: Line (location: source ID 23, line 427, chars 15657-15665, hits: 0) -- IC 5280 -> Item 1512 - - Refers to item: Statement (location: source ID 23, line 427, chars 15657-15665, hits: 0) -- IC 5285 -> Item 1513 - - Refers to item: Line (location: source ID 23, line 429, chars 15696-15707, hits: 0) -- IC 5285 -> Item 1514 - - Refers to item: Statement (location: source ID 23, line 429, chars 15696-15707, hits: 0) -- IC 4819 -> Item 1515 - - Refers to item: Function "_getBatchHead" (location: source ID 23, line 433, chars 15730-15886, hits: 0) -- IC 4822 -> Item 1516 - - Refers to item: Line (location: source ID 23, line 434, chars 15829-15879, hits: 0) -- IC 4822 -> Item 1517 - - Refers to item: Statement (location: source ID 23, line 434, chars 15829-15879, hits: 0) -- IC 393 -> Item 1518 - - Refers to item: Function "totalSupply" (location: source ID 23, line 437, chars 15892-15991, hits: 0) -- IC 1544 -> Item 1519 - - Refers to item: Line (location: source ID 23, line 438, chars 15963-15984, hits: 0) -- IC 1544 -> Item 1520 - - Refers to item: Statement (location: source ID 23, line 438, chars 15963-15984, hits: 0) -- IC 4623 -> Item 1521 - - Refers to item: Function "_beforeTokenTransfers" (location: source ID 23, line 453, chars 16465-16581, hits: 0) -- IC 4813 -> Item 1522 - - Refers to item: Function "_afterTokenTransfers" (location: source ID 23, line 467, chars 16979-17094, hits: 0) - -Anchors for Contract "MockFactory" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 5): -- IC 59 -> Item 3 - - Refers to item: Function "computeAddress" (location: source ID 5, line 7, chars 152-300, hits: 0) -- IC 138 -> Item 4 - - Refers to item: Line (location: source ID 5, line 8, chars 248-293, hits: 0) -- IC 138 -> Item 5 - - Refers to item: Statement (location: source ID 5, line 8, chars 248-293, hits: 0) -- IC 107 -> Item 6 - - Refers to item: Function "deploy" (location: source ID 5, line 11, chars 306-408, hits: 0) -- IC 156 -> Item 7 - - Refers to item: Line (location: source ID 5, line 12, chars 372-401, hits: 0) -- IC 156 -> Item 8 - - Refers to item: Statement (location: source ID 5, line 12, chars 372-401, hits: 0) - -Anchors for Contract "Registration" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 2): -- IC 255 -> Item 9 - - Refers to item: Function "registerAndDepositNft" (location: source ID 2, line 13, chars 200-532, hits: 0) -- IC 1318 -> Item 10 - - Refers to item: Line (location: source ID 2, line 21, chars 417-462, hits: 0) -- IC 1318 -> Item 11 - - Refers to item: Statement (location: source ID 2, line 21, chars 417-462, hits: 0) -- IC 1463 -> Item 12 - - Refers to item: Line (location: source ID 2, line 22, chars 472-525, hits: 0) -- IC 1463 -> Item 13 - - Refers to item: Statement (location: source ID 2, line 22, chars 472-525, hits: 0) -- IC 359 -> Item 14 - - Refers to item: Function "registerAndWithdraw" (location: source ID 2, line 25, chars 538-798, hits: 0) -- IC 2123 -> Item 15 - - Refers to item: Line (location: source ID 2, line 31, chars 703-748, hits: 0) -- IC 2123 -> Item 16 - - Refers to item: Statement (location: source ID 2, line 31, chars 703-748, hits: 0) -- IC 2268 -> Item 17 - - Refers to item: Line (location: source ID 2, line 32, chars 758-791, hits: 0) -- IC 2268 -> Item 18 - - Refers to item: Statement (location: source ID 2, line 32, chars 758-791, hits: 0) -- IC 283 -> Item 19 - - Refers to item: Function "registerAndWithdrawTo" (location: source ID 2, line 35, chars 804-1106, hits: 0) -- IC 1617 -> Item 20 - - Refers to item: Line (location: source ID 2, line 42, chars 998-1043, hits: 0) -- IC 1617 -> Item 21 - - Refers to item: Statement (location: source ID 2, line 42, chars 998-1043, hits: 0) -- IC 1762 -> Item 22 - - Refers to item: Line (location: source ID 2, line 43, chars 1053-1099, hits: 0) -- IC 1762 -> Item 23 - - Refers to item: Statement (location: source ID 2, line 43, chars 1053-1099, hits: 0) -- IC 227 -> Item 24 - - Refers to item: Function "registerAndWithdrawNft" (location: source ID 2, line 46, chars 1112-1412, hits: 0) -- IC 1022 -> Item 25 - - Refers to item: Line (location: source ID 2, line 53, chars 1305-1350, hits: 0) -- IC 1022 -> Item 26 - - Refers to item: Statement (location: source ID 2, line 53, chars 1305-1350, hits: 0) -- IC 1167 -> Item 27 - - Refers to item: Line (location: source ID 2, line 54, chars 1360-1405, hits: 0) -- IC 1167 -> Item 28 - - Refers to item: Statement (location: source ID 2, line 54, chars 1360-1405, hits: 0) -- IC 199 -> Item 29 - - Refers to item: Function "registerAndWithdrawNftTo" (location: source ID 2, line 57, chars 1418-1760, hits: 0) -- IC 723 -> Item 30 - - Refers to item: Line (location: source ID 2, line 65, chars 1640-1685, hits: 0) -- IC 723 -> Item 31 - - Refers to item: Statement (location: source ID 2, line 65, chars 1640-1685, hits: 0) -- IC 868 -> Item 32 - - Refers to item: Line (location: source ID 2, line 66, chars 1695-1753, hits: 0) -- IC 868 -> Item 33 - - Refers to item: Statement (location: source ID 2, line 66, chars 1695-1753, hits: 0) -- IC 141 -> Item 34 - - Refers to item: Function "regsiterAndWithdrawAndMint" (location: source ID 2, line 69, chars 1766-2089, hits: 0) -- IC 388 -> Item 35 - - Refers to item: Line (location: source ID 2, line 76, chars 1974-2019, hits: 0) -- IC 388 -> Item 36 - - Refers to item: Statement (location: source ID 2, line 76, chars 1974-2019, hits: 0) -- IC 533 -> Item 37 - - Refers to item: Line (location: source ID 2, line 77, chars 2029-2082, hits: 0) -- IC 533 -> Item 38 - - Refers to item: Statement (location: source ID 2, line 77, chars 2029-2082, hits: 0) -- IC 311 -> Item 39 - - Refers to item: Function "isRegistered" (location: source ID 2, line 80, chars 2095-2223, hits: 0) -- IC 1915 -> Item 40 - - Refers to item: Line (location: source ID 2, line 81, chars 2172-2216, hits: 0) -- IC 1915 -> Item 41 - - Refers to item: Statement (location: source ID 2, line 81, chars 2172-2216, hits: 0) - -Anchors for Contract "RandomSeedProvider" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 7): -- IC 1121 -> Item 780 - - Refers to item: Function "initialize" (location: source ID 7, line 82, chars 3816-4471, hits: 4) -- IC 3340 -> Item 781 - - Refers to item: Line (location: source ID 7, line 83, chars 3938-3980, hits: 0) -- IC 3340 -> Item 782 - - Refers to item: Statement (location: source ID 7, line 83, chars 3938-3980, hits: 0) -- IC 3353 -> Item 783 - - Refers to item: Line (location: source ID 7, line 84, chars 3990-4033, hits: 0) -- IC 3353 -> Item 784 - - Refers to item: Statement (location: source ID 7, line 84, chars 3990-4033, hits: 0) -- IC 3395 -> Item 785 - - Refers to item: Line (location: source ID 7, line 89, chars 4235-4309, hits: 0) -- IC 3395 -> Item 786 - - Refers to item: Statement (location: source ID 7, line 89, chars 4235-4309, hits: 0) -- IC 3459 -> Item 787 - - Refers to item: Line (location: source ID 7, line 90, chars 4319-4338, hits: 0) -- IC 3459 -> Item 788 - - Refers to item: Statement (location: source ID 7, line 90, chars 4319-4338, hits: 0) -- IC 3467 -> Item 789 - - Refers to item: Line (location: source ID 7, line 91, chars 4348-4387, hits: 0) -- IC 3467 -> Item 790 - - Refers to item: Statement (location: source ID 7, line 91, chars 4348-4387, hits: 0) -- IC 3476 -> Item 791 - - Refers to item: Line (location: source ID 7, line 93, chars 4398-4420, hits: 0) -- IC 3476 -> Item 792 - - Refers to item: Statement (location: source ID 7, line 93, chars 4398-4420, hits: 0) -- IC 3540 -> Item 793 - - Refers to item: Line (location: source ID 7, line 94, chars 4430-4464, hits: 0) -- IC 3540 -> Item 794 - - Refers to item: Statement (location: source ID 7, line 94, chars 4430-4464, hits: 0) -- IC 1014 -> Item 795 - - Refers to item: Function "setOffchainRandomSource" (location: source ID 7, line 102, chars 4682-4897, hits: 10) -- IC 2552 -> Item 796 - - Refers to item: Line (location: source ID 7, line 103, chars 4793-4829, hits: 9) -- IC 2552 -> Item 797 - - Refers to item: Statement (location: source ID 7, line 103, chars 4793-4829, hits: 9) -- IC 2617 -> Item 798 - - Refers to item: Line (location: source ID 7, line 104, chars 4839-4890, hits: 9) -- IC 2617 -> Item 799 - - Refers to item: Statement (location: source ID 7, line 104, chars 4839-4890, hits: 9) -- IC 558 -> Item 800 - - Refers to item: Function "setRanDaoAvailable" (location: source ID 7, line 112, chars 5045-5181, hits: 2) -- IC 1654 -> Item 801 - - Refers to item: Line (location: source ID 7, line 113, chars 5122-5144, hits: 1) -- IC 1654 -> Item 802 - - Refers to item: Statement (location: source ID 7, line 113, chars 5122-5144, hits: 1) -- IC 1681 -> Item 803 - - Refers to item: Line (location: source ID 7, line 114, chars 5154-5174, hits: 1) -- IC 1681 -> Item 804 - - Refers to item: Statement (location: source ID 7, line 114, chars 5154-5174, hits: 1) -- IC 790 -> Item 805 - - Refers to item: Function "addOffchainRandomConsumer" (location: source ID 7, line 122, chars 5439-5644, hits: 10) -- IC 2240 -> Item 806 - - Refers to item: Line (location: source ID 7, line 123, chars 5541-5584, hits: 9) -- IC 2240 -> Item 807 - - Refers to item: Statement (location: source ID 7, line 123, chars 5541-5584, hits: 9) -- IC 2328 -> Item 808 - - Refers to item: Line (location: source ID 7, line 124, chars 5594-5637, hits: 9) -- IC 2328 -> Item 809 - - Refers to item: Statement (location: source ID 7, line 124, chars 5594-5637, hits: 9) -- IC 1227 -> Item 810 - - Refers to item: Function "removeOffchainRandomConsumer" (location: source ID 7, line 132, chars 5915-6126, hits: 2) -- IC 3985 -> Item 811 - - Refers to item: Line (location: source ID 7, line 133, chars 6020-6064, hits: 1) -- IC 3985 -> Item 812 - - Refers to item: Statement (location: source ID 7, line 133, chars 6020-6064, hits: 1) -- IC 4073 -> Item 813 - - Refers to item: Line (location: source ID 7, line 134, chars 6074-6119, hits: 1) -- IC 4073 -> Item 814 - - Refers to item: Statement (location: source ID 7, line 134, chars 6074-6119, hits: 1) -- IC 1090 -> Item 815 - - Refers to item: Function "requestRandomSeed" (location: source ID 7, line 146, chars 6728-7970, hits: 40) -- IC 2705 -> Item 816 - - Refers to item: Line (location: source ID 7, line 147, chars 6844-6909, hits: 40) -- IC 2705 -> Item 817 - - Refers to item: Statement (location: source ID 7, line 147, chars 6844-6909, hits: 40) -- IC 2875 -> Item 818 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 7, line 147, chars 6840-7391, hits: 32) -- IC 2896 -> Item 819 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 7, line 147, chars 6840-7391, hits: 8) -- IC 2875 -> Item 820 - - Refers to item: Line (location: source ID 7, line 151, chars 7183-7211, hits: 32) -- IC 2875 -> Item 821 - - Refers to item: Statement (location: source ID 7, line 151, chars 7183-7211, hits: 32) -- IC 2883 -> Item 822 - - Refers to item: Line (location: source ID 7, line 154, chars 7301-7342, hits: 32) -- IC 2883 -> Item 823 - - Refers to item: Statement (location: source ID 7, line 154, chars 7301-7342, hits: 32) -- IC 2890 -> Item 824 - - Refers to item: Line (location: source ID 7, line 156, chars 7357-7380, hits: 32) -- IC 2890 -> Item 825 - - Refers to item: Statement (location: source ID 7, line 156, chars 7357-7380, hits: 32) -- IC 2897 -> Item 826 - - Refers to item: Line (location: source ID 7, line 160, chars 7524-7564, hits: 8) -- IC 2897 -> Item 827 - - Refers to item: Statement (location: source ID 7, line 160, chars 7524-7564, hits: 8) -- IC 2906 -> Item 828 - - Refers to item: Branch (branch: 1, path: 0) (location: source ID 7, line 160, chars 7520-7650, hits: 2) -- IC 2915 -> Item 829 - - Refers to item: Branch (branch: 1, path: 1) (location: source ID 7, line 160, chars 7520-7650, hits: 6) -- IC 2906 -> Item 830 - - Refers to item: Line (location: source ID 7, line 161, chars 7584-7635, hits: 2) -- IC 2906 -> Item 831 - - Refers to item: Statement (location: source ID 7, line 161, chars 7584-7635, hits: 2) -- IC 2916 -> Item 832 - - Refers to item: Line (location: source ID 7, line 164, chars 7686-7771, hits: 6) -- IC 2916 -> Item 833 - - Refers to item: Statement (location: source ID 7, line 164, chars 7686-7771, hits: 6) -- IC 3065 -> Item 834 - - Refers to item: Line (location: source ID 7, line 165, chars 7789-7840, hits: 6) -- IC 3065 -> Item 835 - - Refers to item: Statement (location: source ID 7, line 165, chars 7789-7840, hits: 6) -- IC 3072 -> Item 836 - - Refers to item: Line (location: source ID 7, line 166, chars 7858-7897, hits: 6) -- IC 3072 -> Item 837 - - Refers to item: Statement (location: source ID 7, line 166, chars 7858-7897, hits: 6) -- IC 3080 -> Item 838 - - Refers to item: Line (location: source ID 7, line 168, chars 7925-7953, hits: 8) -- IC 3080 -> Item 839 - - Refers to item: Statement (location: source ID 7, line 168, chars 7925-7953, hits: 8) -- IC 646 -> Item 840 - - Refers to item: Function "getRandomSeed" (location: source ID 7, line 180, chars 8404-9061, hits: 62) -- IC 1769 -> Item 841 - - Refers to item: Line (location: source ID 7, line 181, chars 8536-8560, hits: 62) -- IC 1769 -> Item 842 - - Refers to item: Statement (location: source ID 7, line 181, chars 8536-8560, hits: 62) -- IC 1836 -> Item 843 - - Refers to item: Branch (branch: 2, path: 0) (location: source ID 7, line 181, chars 8532-8789, hits: 8) -- IC 1885 -> Item 844 - - Refers to item: Branch (branch: 2, path: 1) (location: source ID 7, line 181, chars 8532-8789, hits: 44) -- IC 1819 -> Item 845 - - Refers to item: Line (location: source ID 7, line 182, chars 8576-8604, hits: 52) -- IC 1819 -> Item 846 - - Refers to item: Statement (location: source ID 7, line 182, chars 8576-8604, hits: 52) -- IC 1827 -> Item 847 - - Refers to item: Line (location: source ID 7, line 183, chars 8622-8664, hits: 52) -- IC 1827 -> Item 848 - - Refers to item: Statement (location: source ID 7, line 183, chars 8622-8664, hits: 52) -- IC 1836 -> Item 849 - - Refers to item: Branch (branch: 3, path: 0) (location: source ID 7, line 183, chars 8618-8721, hits: 8) -- IC 1885 -> Item 850 - - Refers to item: Branch (branch: 3, path: 1) (location: source ID 7, line 183, chars 8618-8721, hits: 44) -- IC 1836 -> Item 851 - - Refers to item: Line (location: source ID 7, line 184, chars 8684-8706, hits: 8) -- IC 1836 -> Item 852 - - Refers to item: Statement (location: source ID 7, line 184, chars 8684-8706, hits: 8) -- IC 1886 -> Item 853 - - Refers to item: Line (location: source ID 7, line 186, chars 8734-8778, hits: 44) -- IC 1886 -> Item 854 - - Refers to item: Statement (location: source ID 7, line 186, chars 8734-8778, hits: 44) -- IC 1913 -> Item 855 - - Refers to item: Line (location: source ID 7, line 191, chars 8957-9043, hits: 10) -- IC 1913 -> Item 856 - - Refers to item: Statement (location: source ID 7, line 191, chars 8957-9043, hits: 10) -- IC 1149 -> Item 857 - - Refers to item: Function "isRandomSeedReady" (location: source ID 7, line 199, chars 9212-9751, hits: 19) -- IC 3664 -> Item 858 - - Refers to item: Line (location: source ID 7, line 200, chars 9338-9362, hits: 19) -- IC 3664 -> Item 859 - - Refers to item: Statement (location: source ID 7, line 200, chars 9338-9362, hits: 19) -- IC 3723 -> Item 860 - - Refers to item: Branch (branch: 4, path: 0) (location: source ID 7, line 200, chars 9334-9616, hits: 9) -- IC 3734 -> Item 861 - - Refers to item: Branch (branch: 4, path: 1) (location: source ID 7, line 200, chars 9334-9616, hits: 8) -- IC 3714 -> Item 862 - - Refers to item: Line (location: source ID 7, line 201, chars 9382-9422, hits: 17) -- IC 3714 -> Item 863 - - Refers to item: Statement (location: source ID 7, line 201, chars 9382-9422, hits: 17) -- IC 3723 -> Item 864 - - Refers to item: Branch (branch: 5, path: 0) (location: source ID 7, line 201, chars 9378-9505, hits: 9) -- IC 3734 -> Item 865 - - Refers to item: Branch (branch: 5, path: 1) (location: source ID 7, line 201, chars 9378-9505, hits: 8) -- IC 3723 -> Item 866 - - Refers to item: Line (location: source ID 7, line 202, chars 9442-9490, hits: 9) -- IC 3723 -> Item 867 - - Refers to item: Statement (location: source ID 7, line 202, chars 9442-9490, hits: 9) -- IC 3735 -> Item 868 - - Refers to item: Line (location: source ID 7, line 205, chars 9541-9591, hits: 8) -- IC 3735 -> Item 869 - - Refers to item: Statement (location: source ID 7, line 205, chars 9541-9591, hits: 8) -- IC 3759 -> Item 870 - - Refers to item: Line (location: source ID 7, line 209, chars 9644-9733, hits: 2) -- IC 3759 -> Item 871 - - Refers to item: Statement (location: source ID 7, line 209, chars 9644-9733, hits: 2) -- IC 4385 -> Item 872 - - Refers to item: Function "_generateNextRandomOnChain" (location: source ID 7, line 217, chars 9844-11714, hits: 84) -- IC 4386 -> Item 873 - - Refers to item: Line (location: source ID 7, line 219, chars 9975-10015, hits: 84) -- IC 4386 -> Item 874 - - Refers to item: Statement (location: source ID 7, line 219, chars 9975-10015, hits: 84) -- IC 4396 -> Item 875 - - Refers to item: Branch (branch: 6, path: 0) (location: source ID 7, line 219, chars 9971-10048, hits: 59) -- IC 4586 -> Item 876 - - Refers to item: Branch (branch: 6, path: 1) (location: source ID 7, line 219, chars 9971-10048, hits: 84) -- IC 4392 -> Item 877 - - Refers to item: Line (location: source ID 7, line 220, chars 10031-10038, hits: 84) -- IC 4392 -> Item 878 - - Refers to item: Statement (location: source ID 7, line 220, chars 10031-10038, hits: 84) -- IC 4396 -> Item 879 - - Refers to item: Line (location: source ID 7, line 223, chars 10058-10073, hits: 59) -- IC 4396 -> Item 880 - - Refers to item: Statement (location: source ID 7, line 223, chars 10058-10073, hits: 59) -- IC 4398 -> Item 881 - - Refers to item: Line (location: source ID 7, line 224, chars 10083-10874, hits: 59) -- IC 4419 -> Item 882 - - Refers to item: Branch (branch: 7, path: 0) (location: source ID 7, line 224, chars 10083-10874, hits: 19) -- IC 4426 -> Item 883 - - Refers to item: Branch (branch: 7, path: 1) (location: source ID 7, line 224, chars 10083-10874, hits: 40) -- IC 4419 -> Item 884 - - Refers to item: Line (location: source ID 7, line 236, chars 10837-10863, hits: 19) -- IC 4419 -> Item 885 - - Refers to item: Statement (location: source ID 7, line 236, chars 10837-10863, hits: 19) -- IC 4427 -> Item 886 - - Refers to item: Line (location: source ID 7, line 245, chars 11382-11428, hits: 40) -- IC 4427 -> Item 887 - - Refers to item: Statement (location: source ID 7, line 245, chars 11382-11428, hits: 40) -- IC 4447 -> Item 888 - - Refers to item: Line (location: source ID 7, line 248, chars 11449-11509, hits: 59) -- IC 4447 -> Item 889 - - Refers to item: Statement (location: source ID 7, line 248, chars 11449-11509, hits: 59) -- IC 4485 -> Item 890 - - Refers to item: Line (location: source ID 7, line 249, chars 11519-11599, hits: 59) -- IC 4485 -> Item 891 - - Refers to item: Statement (location: source ID 7, line 249, chars 11519-11599, hits: 59) -- IC 4487 -> Item 892 - - Refers to item: Statement (location: source ID 7, line 249, chars 11545-11599, hits: 59) -- IC 4530 -> Item 893 - - Refers to item: Line (location: source ID 7, line 250, chars 11609-11658, hits: 59) -- IC 4530 -> Item 894 - - Refers to item: Statement (location: source ID 7, line 250, chars 11609-11658, hits: 59) -- IC 4576 -> Item 895 - - Refers to item: Line (location: source ID 7, line 251, chars 11668-11707, hits: 59) -- IC 4576 -> Item 896 - - Refers to item: Statement (location: source ID 7, line 251, chars 11668-11707, hits: 59) - -Anchors for Contract "ImmutableSeaport" (solc 0.8.17+commit.8df45f5f.Darwin.appleclang, source ID 0): -- IC 871 -> Item 0 - - Refers to item: Function "setAllowedZone" (location: source ID 0, line 59, chars 2091-2251, hits: 0) -- IC 2493 -> Item 1 - - Refers to item: Line (location: source ID 0, line 60, chars 2172-2200, hits: 0) -- IC 2493 -> Item 2 - - Refers to item: Statement (location: source ID 0, line 60, chars 2172-2200, hits: 0) -- IC 2580 -> Item 3 - - Refers to item: Line (location: source ID 0, line 61, chars 2210-2244, hits: 0) -- IC 2580 -> Item 4 - - Refers to item: Statement (location: source ID 0, line 61, chars 2210-2244, hits: 0) -- IC 5016 -> Item 5 - - Refers to item: Function "_name" (location: source ID 0, line 70, chars 2419-2569, hits: 0) -- IC 5019 -> Item 6 - - Refers to item: Line (location: source ID 0, line 72, chars 2537-2562, hits: 0) -- IC 5019 -> Item 7 - - Refers to item: Statement (location: source ID 0, line 72, chars 2537-2562, hits: 0) -- IC 4853 -> Item 11 - - Refers to item: Function "_rejectIfZoneInvalid" (location: source ID 0, line 89, chars 3068-3216, hits: 0) -- IC 4854 -> Item 12 - - Refers to item: Line (location: source ID 0, line 90, chars 3140-3159, hits: 0) -- IC 4854 -> Item 13 - - Refers to item: Statement (location: source ID 0, line 90, chars 3140-3159, hits: 0) -- IC 4935 -> Item 14 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 0, line 90, chars 3136-3210, hits: 0) -- IC 4995 -> Item 15 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 0, line 90, chars 3136-3210, hits: 0) -- IC 4935 -> Item 16 - - Refers to item: Line (location: source ID 0, line 91, chars 3175-3199, hits: 0) -- IC 4935 -> Item 17 - - Refers to item: Statement (location: source ID 0, line 91, chars 3175-3199, hits: 0) -- IC 1404 -> Item 18 - - Refers to item: Function "fulfillBasicOrder" (location: source ID 0, line 120, chars 4871-5368, hits: 0) -- IC 4404 -> Item 19 - - Refers to item: Line (location: source ID 0, line 125, chars 5102-5198, hits: 0) -- IC 4404 -> Item 20 - - Refers to item: Statement (location: source ID 0, line 125, chars 5102-5198, hits: 0) -- IC 4525 -> Item 21 - - Refers to item: Branch (branch: 1, path: 0) (location: source ID 0, line 124, chars 5085-5261, hits: 0) -- IC 4574 -> Item 22 - - Refers to item: Branch (branch: 1, path: 1) (location: source ID 0, line 124, chars 5085-5261, hits: 0) -- IC 4525 -> Item 23 - - Refers to item: Line (location: source ID 0, line 128, chars 5223-5250, hits: 0) -- IC 4525 -> Item 24 - - Refers to item: Statement (location: source ID 0, line 128, chars 5223-5250, hits: 0) -- IC 4575 -> Item 25 - - Refers to item: Line (location: source ID 0, line 131, chars 5271-5308, hits: 0) -- IC 4575 -> Item 26 - - Refers to item: Statement (location: source ID 0, line 131, chars 5271-5308, hits: 0) -- IC 4602 -> Item 27 - - Refers to item: Line (location: source ID 0, line 133, chars 5319-5361, hits: 0) -- IC 4602 -> Item 28 - - Refers to item: Statement (location: source ID 0, line 133, chars 5319-5361, hits: 0) -- IC 352 -> Item 29 - - Refers to item: Function "fulfillBasicOrder_efficient_6GL6yc" (location: source ID 0, line 164, chars 7241-7772, hits: 0) -- IC 1538 -> Item 30 - - Refers to item: Line (location: source ID 0, line 169, chars 7489-7585, hits: 0) -- IC 1538 -> Item 31 - - Refers to item: Statement (location: source ID 0, line 169, chars 7489-7585, hits: 0) -- IC 1659 -> Item 32 - - Refers to item: Branch (branch: 2, path: 0) (location: source ID 0, line 168, chars 7472-7648, hits: 0) -- IC 1708 -> Item 33 - - Refers to item: Branch (branch: 2, path: 1) (location: source ID 0, line 168, chars 7472-7648, hits: 0) -- IC 1659 -> Item 34 - - Refers to item: Line (location: source ID 0, line 172, chars 7610-7637, hits: 0) -- IC 1659 -> Item 35 - - Refers to item: Statement (location: source ID 0, line 172, chars 7610-7637, hits: 0) -- IC 1709 -> Item 36 - - Refers to item: Line (location: source ID 0, line 175, chars 7658-7695, hits: 0) -- IC 1709 -> Item 37 - - Refers to item: Statement (location: source ID 0, line 175, chars 7658-7695, hits: 0) -- IC 1736 -> Item 38 - - Refers to item: Line (location: source ID 0, line 177, chars 7706-7765, hits: 0) -- IC 1736 -> Item 39 - - Refers to item: Statement (location: source ID 0, line 177, chars 7706-7765, hits: 0) -- IC 1021 -> Item 40 - - Refers to item: Function "fulfillOrder" (location: source ID 0, line 202, chars 9130-9679, hits: 0) -- IC 3003 -> Item 41 - - Refers to item: Line (location: source ID 0, line 210, chars 9363-9492, hits: 0) -- IC 3003 -> Item 42 - - Refers to item: Statement (location: source ID 0, line 210, chars 9363-9492, hits: 0) -- IC 3164 -> Item 43 - - Refers to item: Branch (branch: 3, path: 0) (location: source ID 0, line 209, chars 9346-9555, hits: 0) -- IC 3213 -> Item 44 - - Refers to item: Branch (branch: 3, path: 1) (location: source ID 0, line 209, chars 9346-9555, hits: 0) -- IC 3164 -> Item 45 - - Refers to item: Line (location: source ID 0, line 213, chars 9517-9544, hits: 0) -- IC 3164 -> Item 46 - - Refers to item: Statement (location: source ID 0, line 213, chars 9517-9544, hits: 0) -- IC 3214 -> Item 47 - - Refers to item: Line (location: source ID 0, line 216, chars 9565-9608, hits: 0) -- IC 3214 -> Item 48 - - Refers to item: Statement (location: source ID 0, line 216, chars 9565-9608, hits: 0) -- IC 3256 -> Item 49 - - Refers to item: Line (location: source ID 0, line 218, chars 9619-9672, hits: 0) -- IC 3256 -> Item 50 - - Refers to item: Statement (location: source ID 0, line 218, chars 9619-9672, hits: 0) -- IC 1112 -> Item 51 - - Refers to item: Function "fulfillAdvancedOrder" (location: source ID 0, line 264, chars 12651-13540, hits: 0) -- IC 3318 -> Item 52 - - Refers to item: Line (location: source ID 0, line 277, chars 13064-13209, hits: 0) -- IC 3318 -> Item 53 - - Refers to item: Statement (location: source ID 0, line 277, chars 13064-13209, hits: 0) -- IC 3479 -> Item 54 - - Refers to item: Branch (branch: 4, path: 0) (location: source ID 0, line 276, chars 13047-13272, hits: 0) -- IC 3528 -> Item 55 - - Refers to item: Branch (branch: 4, path: 1) (location: source ID 0, line 276, chars 13047-13272, hits: 0) -- IC 3479 -> Item 56 - - Refers to item: Line (location: source ID 0, line 280, chars 13234-13261, hits: 0) -- IC 3479 -> Item 57 - - Refers to item: Statement (location: source ID 0, line 280, chars 13234-13261, hits: 0) -- IC 3529 -> Item 58 - - Refers to item: Line (location: source ID 0, line 283, chars 13282-13333, hits: 0) -- IC 3529 -> Item 59 - - Refers to item: Statement (location: source ID 0, line 283, chars 13282-13333, hits: 0) -- IC 3571 -> Item 60 - - Refers to item: Line (location: source ID 0, line 285, chars 13344-13533, hits: 0) -- IC 3571 -> Item 61 - - Refers to item: Statement (location: source ID 0, line 285, chars 13344-13533, hits: 0) -- IC 1160 -> Item 62 - - Refers to item: Function "fulfillAvailableOrders" (location: source ID 0, line 347, chars 17257-18576, hits: 0) -- IC 3598 -> Item 63 - - Refers to item: Line (location: source ID 0, line 372, chars 17932-17945, hits: 0) -- IC 3598 -> Item 64 - - Refers to item: Statement (location: source ID 0, line 372, chars 17932-17945, hits: 0) -- IC 3601 -> Item 65 - - Refers to item: Statement (location: source ID 0, line 372, chars 17947-17964, hits: 0) -- IC 3841 -> Item 66 - - Refers to item: Statement (location: source ID 0, line 372, chars 17966-17969, hits: 0) -- IC 3612 -> Item 67 - - Refers to item: Line (location: source ID 0, line 373, chars 17985-18015, hits: 0) -- IC 3612 -> Item 68 - - Refers to item: Statement (location: source ID 0, line 373, chars 17985-18015, hits: 0) -- IC 3662 -> Item 69 - - Refers to item: Line (location: source ID 0, line 375, chars 18050-18183, hits: 0) -- IC 3662 -> Item 70 - - Refers to item: Statement (location: source ID 0, line 375, chars 18050-18183, hits: 0) -- IC 3773 -> Item 71 - - Refers to item: Branch (branch: 5, path: 0) (location: source ID 0, line 374, chars 18029-18258, hits: 0) -- IC 3822 -> Item 72 - - Refers to item: Branch (branch: 5, path: 1) (location: source ID 0, line 374, chars 18029-18258, hits: 0) -- IC 3773 -> Item 73 - - Refers to item: Line (location: source ID 0, line 378, chars 18216-18243, hits: 0) -- IC 3773 -> Item 74 - - Refers to item: Statement (location: source ID 0, line 378, chars 18216-18243, hits: 0) -- IC 3823 -> Item 75 - - Refers to item: Line (location: source ID 0, line 380, chars 18271-18314, hits: 0) -- IC 3823 -> Item 76 - - Refers to item: Statement (location: source ID 0, line 380, chars 18271-18314, hits: 0) -- IC 3861 -> Item 77 - - Refers to item: Line (location: source ID 0, line 383, chars 18335-18569, hits: 0) -- IC 3861 -> Item 78 - - Refers to item: Statement (location: source ID 0, line 383, chars 18335-18569, hits: 0) -- IC 718 -> Item 79 - - Refers to item: Function "fulfillAvailableAdvancedOrders" (location: source ID 0, line 471, chars 24241-25907, hits: 0) -- IC 2091 -> Item 80 - - Refers to item: Line (location: source ID 0, line 501, chars 25096-25109, hits: 0) -- IC 2091 -> Item 81 - - Refers to item: Statement (location: source ID 0, line 501, chars 25096-25109, hits: 0) -- IC 2094 -> Item 82 - - Refers to item: Statement (location: source ID 0, line 501, chars 25111-25136, hits: 0) -- IC 2334 -> Item 83 - - Refers to item: Statement (location: source ID 0, line 501, chars 25138-25141, hits: 0) -- IC 2105 -> Item 84 - - Refers to item: Line (location: source ID 0, line 502, chars 25157-25211, hits: 0) -- IC 2105 -> Item 85 - - Refers to item: Statement (location: source ID 0, line 502, chars 25157-25211, hits: 0) -- IC 2155 -> Item 86 - - Refers to item: Line (location: source ID 0, line 504, chars 25246-25427, hits: 0) -- IC 2155 -> Item 87 - - Refers to item: Statement (location: source ID 0, line 504, chars 25246-25427, hits: 0) -- IC 2266 -> Item 88 - - Refers to item: Branch (branch: 6, path: 0) (location: source ID 0, line 503, chars 25225-25502, hits: 0) -- IC 2315 -> Item 89 - - Refers to item: Branch (branch: 6, path: 1) (location: source ID 0, line 503, chars 25225-25502, hits: 0) -- IC 2266 -> Item 90 - - Refers to item: Line (location: source ID 0, line 509, chars 25460-25487, hits: 0) -- IC 2266 -> Item 91 - - Refers to item: Statement (location: source ID 0, line 509, chars 25460-25487, hits: 0) -- IC 2316 -> Item 92 - - Refers to item: Line (location: source ID 0, line 512, chars 25516-25567, hits: 0) -- IC 2316 -> Item 93 - - Refers to item: Statement (location: source ID 0, line 512, chars 25516-25567, hits: 0) -- IC 2354 -> Item 94 - - Refers to item: Line (location: source ID 0, line 515, chars 25588-25900, hits: 0) -- IC 2354 -> Item 95 - - Refers to item: Statement (location: source ID 0, line 515, chars 25588-25900, hits: 0) -- IC 912 -> Item 96 - - Refers to item: Function "matchOrders" (location: source ID 0, line 556, chars 27792-28606, hits: 0) -- IC 2643 -> Item 97 - - Refers to item: Line (location: source ID 0, line 572, chars 28150-28163, hits: 0) -- IC 2643 -> Item 98 - - Refers to item: Statement (location: source ID 0, line 572, chars 28150-28163, hits: 0) -- IC 2646 -> Item 99 - - Refers to item: Statement (location: source ID 0, line 572, chars 28165-28182, hits: 0) -- IC 2886 -> Item 100 - - Refers to item: Statement (location: source ID 0, line 572, chars 28184-28187, hits: 0) -- IC 2657 -> Item 101 - - Refers to item: Line (location: source ID 0, line 573, chars 28203-28233, hits: 0) -- IC 2657 -> Item 102 - - Refers to item: Statement (location: source ID 0, line 573, chars 28203-28233, hits: 0) -- IC 2707 -> Item 103 - - Refers to item: Line (location: source ID 0, line 575, chars 28268-28401, hits: 0) -- IC 2707 -> Item 104 - - Refers to item: Statement (location: source ID 0, line 575, chars 28268-28401, hits: 0) -- IC 2818 -> Item 105 - - Refers to item: Branch (branch: 7, path: 0) (location: source ID 0, line 574, chars 28247-28476, hits: 0) -- IC 2867 -> Item 106 - - Refers to item: Branch (branch: 7, path: 1) (location: source ID 0, line 574, chars 28247-28476, hits: 0) -- IC 2818 -> Item 107 - - Refers to item: Line (location: source ID 0, line 578, chars 28434-28461, hits: 0) -- IC 2818 -> Item 108 - - Refers to item: Statement (location: source ID 0, line 578, chars 28434-28461, hits: 0) -- IC 2868 -> Item 109 - - Refers to item: Line (location: source ID 0, line 580, chars 28489-28532, hits: 0) -- IC 2868 -> Item 110 - - Refers to item: Statement (location: source ID 0, line 580, chars 28489-28532, hits: 0) -- IC 2906 -> Item 111 - - Refers to item: Line (location: source ID 0, line 583, chars 28553-28599, hits: 0) -- IC 2906 -> Item 112 - - Refers to item: Statement (location: source ID 0, line 583, chars 28553-28599, hits: 0) -- IC 1270 -> Item 113 - - Refers to item: Function "matchAdvancedOrders" (location: source ID 0, line 638, chars 32247-33466, hits: 0) -- IC 3914 -> Item 114 - - Refers to item: Line (location: source ID 0, line 659, chars 32785-32798, hits: 0) -- IC 3914 -> Item 115 - - Refers to item: Statement (location: source ID 0, line 659, chars 32785-32798, hits: 0) -- IC 3917 -> Item 116 - - Refers to item: Statement (location: source ID 0, line 659, chars 32800-32825, hits: 0) -- IC 4157 -> Item 117 - - Refers to item: Statement (location: source ID 0, line 659, chars 32827-32830, hits: 0) -- IC 3928 -> Item 118 - - Refers to item: Line (location: source ID 0, line 660, chars 32846-32900, hits: 0) -- IC 3928 -> Item 119 - - Refers to item: Statement (location: source ID 0, line 660, chars 32846-32900, hits: 0) -- IC 3978 -> Item 120 - - Refers to item: Line (location: source ID 0, line 662, chars 32935-33116, hits: 0) -- IC 3978 -> Item 121 - - Refers to item: Statement (location: source ID 0, line 662, chars 32935-33116, hits: 0) -- IC 4089 -> Item 122 - - Refers to item: Branch (branch: 8, path: 0) (location: source ID 0, line 661, chars 32914-33191, hits: 0) -- IC 4138 -> Item 123 - - Refers to item: Branch (branch: 8, path: 1) (location: source ID 0, line 661, chars 32914-33191, hits: 0) -- IC 4089 -> Item 124 - - Refers to item: Line (location: source ID 0, line 667, chars 33149-33176, hits: 0) -- IC 4089 -> Item 125 - - Refers to item: Statement (location: source ID 0, line 667, chars 33149-33176, hits: 0) -- IC 4139 -> Item 126 - - Refers to item: Line (location: source ID 0, line 670, chars 33205-33256, hits: 0) -- IC 4139 -> Item 127 - - Refers to item: Statement (location: source ID 0, line 670, chars 33205-33256, hits: 0) -- IC 4177 -> Item 128 - - Refers to item: Line (location: source ID 0, line 673, chars 33277-33459, hits: 0) -- IC 4177 -> Item 129 - - Refers to item: Statement (location: source ID 0, line 673, chars 33277-33459, hits: 0) - -Anchors for Contract "ImmutableERC721MintByID" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 26): -- IC 2026 -> Item 943 - - Refers to item: Function "safeMint" (location: source ID 26, line 40, chars 1482-1627, hits: 0) -- IC 6453 -> Item 944 - - Refers to item: Line (location: source ID 26, line 41, chars 1570-1584, hits: 0) -- IC 6453 -> Item 945 - - Refers to item: Statement (location: source ID 26, line 41, chars 1570-1584, hits: 0) -- IC 6477 -> Item 946 - - Refers to item: Line (location: source ID 26, line 42, chars 1594-1620, hits: 0) -- IC 6477 -> Item 947 - - Refers to item: Statement (location: source ID 26, line 42, chars 1594-1620, hits: 0) -- IC 1402 -> Item 948 - - Refers to item: Function "mint" (location: source ID 26, line 49, chars 1804-1937, hits: 0) -- IC 4757 -> Item 949 - - Refers to item: Line (location: source ID 26, line 50, chars 1888-1902, hits: 0) -- IC 4757 -> Item 950 - - Refers to item: Statement (location: source ID 26, line 50, chars 1888-1902, hits: 0) -- IC 4781 -> Item 951 - - Refers to item: Line (location: source ID 26, line 51, chars 1912-1930, hits: 0) -- IC 4781 -> Item 952 - - Refers to item: Statement (location: source ID 26, line 51, chars 1912-1930, hits: 0) -- IC 1017 -> Item 953 - - Refers to item: Function "safeMintBatch" (location: source ID 26, line 58, chars 2149-2357, hits: 0) -- IC 3314 -> Item 954 - - Refers to item: Line (location: source ID 26, line 59, chars 2250-2263, hits: 0) -- IC 3314 -> Item 955 - - Refers to item: Statement (location: source ID 26, line 59, chars 2250-2263, hits: 0) -- IC 3317 -> Item 956 - - Refers to item: Statement (location: source ID 26, line 59, chars 2265-2288, hits: 0) -- IC 3373 -> Item 957 - - Refers to item: Statement (location: source ID 26, line 59, chars 2290-2293, hits: 0) -- IC 3328 -> Item 958 - - Refers to item: Line (location: source ID 26, line 60, chars 2309-2340, hits: 0) -- IC 3328 -> Item 959 - - Refers to item: Statement (location: source ID 26, line 60, chars 2309-2340, hits: 0) -- IC 1970 -> Item 960 - - Refers to item: Function "mintBatch" (location: source ID 26, line 68, chars 2564-2764, hits: 0) -- IC 6186 -> Item 961 - - Refers to item: Line (location: source ID 26, line 69, chars 2661-2674, hits: 0) -- IC 6186 -> Item 962 - - Refers to item: Statement (location: source ID 26, line 69, chars 2661-2674, hits: 0) -- IC 6189 -> Item 963 - - Refers to item: Statement (location: source ID 26, line 69, chars 2676-2699, hits: 0) -- IC 6245 -> Item 964 - - Refers to item: Statement (location: source ID 26, line 69, chars 2701-2704, hits: 0) -- IC 6200 -> Item 965 - - Refers to item: Line (location: source ID 26, line 70, chars 2720-2747, hits: 0) -- IC 6200 -> Item 966 - - Refers to item: Statement (location: source ID 26, line 70, chars 2720-2747, hits: 0) -- IC 2322 -> Item 967 - - Refers to item: Function "burnBatch" (location: source ID 26, line 78, chars 2905-3063, hits: 0) -- IC 7475 -> Item 968 - - Refers to item: Line (location: source ID 26, line 79, chars 2977-2987, hits: 0) -- IC 7475 -> Item 969 - - Refers to item: Statement (location: source ID 26, line 79, chars 2977-2987, hits: 0) -- IC 7478 -> Item 970 - - Refers to item: Statement (location: source ID 26, line 79, chars 2989-3008, hits: 0) -- IC 7523 -> Item 971 - - Refers to item: Statement (location: source ID 26, line 79, chars 3010-3013, hits: 0) -- IC 7489 -> Item 972 - - Refers to item: Line (location: source ID 26, line 80, chars 3029-3046, hits: 0) -- IC 7489 -> Item 973 - - Refers to item: Statement (location: source ID 26, line 80, chars 3029-3046, hits: 0) -- IC 1724 -> Item 974 - - Refers to item: Function "safeBurnBatch" (location: source ID 26, line 88, chars 3256-3351, hits: 0) -- IC 5512 -> Item 975 - - Refers to item: Line (location: source ID 26, line 89, chars 3323-3344, hits: 0) -- IC 5512 -> Item 976 - - Refers to item: Statement (location: source ID 26, line 89, chars 3323-3344, hits: 0) -- IC 757 -> Item 977 - - Refers to item: Function "safeTransferFromBatch" (location: source ID 26, line 96, chars 3586-3920, hits: 0) -- IC 2457 -> Item 978 - - Refers to item: Line (location: source ID 26, line 97, chars 3669-3704, hits: 0) -- IC 2457 -> Item 979 - - Refers to item: Statement (location: source ID 26, line 97, chars 3669-3704, hits: 0) -- IC 2498 -> Item 980 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 26, line 97, chars 3665-3781, hits: 0) -- IC 2547 -> Item 981 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 26, line 97, chars 3665-3781, hits: 0) -- IC 2498 -> Item 982 - - Refers to item: Line (location: source ID 26, line 98, chars 3720-3770, hits: 0) -- IC 2498 -> Item 983 - - Refers to item: Statement (location: source ID 26, line 98, chars 3720-3770, hits: 0) -- IC 2548 -> Item 984 - - Refers to item: Line (location: source ID 26, line 101, chars 3796-3806, hits: 0) -- IC 2548 -> Item 985 - - Refers to item: Statement (location: source ID 26, line 101, chars 3796-3806, hits: 0) -- IC 2551 -> Item 986 - - Refers to item: Statement (location: source ID 26, line 101, chars 3808-3830, hits: 0) -- IC 2697 -> Item 987 - - Refers to item: Statement (location: source ID 26, line 101, chars 3832-3835, hits: 0) -- IC 2576 -> Item 988 - - Refers to item: Line (location: source ID 26, line 102, chars 3851-3903, hits: 0) -- IC 2576 -> Item 989 - - Refers to item: Statement (location: source ID 26, line 102, chars 3851-3903, hits: 0) -- IC 1696 -> Item 175 - - Refers to item: Function "permit" (location: source ID 18, line 52, chars 1866-2065, hits: 0) -- IC 5494 -> Item 176 - - Refers to item: Line (location: source ID 18, line 58, chars 2018-2058, hits: 0) -- IC 5494 -> Item 177 - - Refers to item: Statement (location: source ID 18, line 58, chars 2018-2058, hits: 0) -- IC 939 -> Item 178 - - Refers to item: Function "nonces" (location: source ID 18, line 66, chars 2273-2392, hits: 0) -- IC 3235 -> Item 179 - - Refers to item: Line (location: source ID 18, line 69, chars 2362-2385, hits: 0) -- IC 3235 -> Item 180 - - Refers to item: Statement (location: source ID 18, line 69, chars 2362-2385, hits: 0) -- IC 1258 -> Item 181 - - Refers to item: Function "DOMAIN_SEPARATOR" (location: source ID 18, line 76, chars 2575-2688, hits: 0) -- IC 4312 -> Item 182 - - Refers to item: Line (location: source ID 18, line 77, chars 2654-2681, hits: 0) -- IC 4312 -> Item 183 - - Refers to item: Statement (location: source ID 18, line 77, chars 2654-2681, hits: 0) -- IC 13074 -> Item 184 - - Refers to item: Function "supportsInterface" (location: source ID 18, line 85, chars 2999-3269, hits: 0) -- IC 13077 -> Item 185 - - Refers to item: Line (location: source ID 18, line 92, chars 3148-3262, hits: 0) -- IC 13077 -> Item 186 - - Refers to item: Statement (location: source ID 18, line 92, chars 3148-3262, hits: 0) -- IC 13679 -> Item 187 - - Refers to item: Function "_transfer" (location: source ID 18, line 103, chars 3612-3816, hits: 0) -- IC 13680 -> Item 188 - - Refers to item: Line (location: source ID 18, line 108, chars 3747-3765, hits: 0) -- IC 13680 -> Item 189 - - Refers to item: Statement (location: source ID 18, line 108, chars 3747-3765, hits: 0) -- IC 13721 -> Item 190 - - Refers to item: Line (location: source ID 18, line 109, chars 3775-3809, hits: 0) -- IC 13721 -> Item 191 - - Refers to item: Statement (location: source ID 18, line 109, chars 3775-3809, hits: 0) -- IC 10897 -> Item 192 - - Refers to item: Function "_permit" (location: source ID 18, line 112, chars 3822-5007, hits: 0) -- IC 10898 -> Item 193 - - Refers to item: Line (location: source ID 18, line 118, chars 3978-4004, hits: 0) -- IC 10898 -> Item 194 - - Refers to item: Statement (location: source ID 18, line 118, chars 3978-4004, hits: 0) -- IC 10906 -> Item 195 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 18, line 118, chars 3974-4053, hits: 0) -- IC 10955 -> Item 196 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 18, line 118, chars 3974-4053, hits: 0) -- IC 10906 -> Item 197 - - Refers to item: Line (location: source ID 18, line 119, chars 4020-4042, hits: 0) -- IC 10906 -> Item 198 - - Refers to item: Statement (location: source ID 18, line 119, chars 4020-4042, hits: 0) -- IC 10956 -> Item 199 - - Refers to item: Line (location: source ID 18, line 122, chars 4063-4126, hits: 0) -- IC 10956 -> Item 200 - - Refers to item: Statement (location: source ID 18, line 122, chars 4063-4126, hits: 0) -- IC 10958 -> Item 201 - - Refers to item: Statement (location: source ID 18, line 122, chars 4080-4126, hits: 0) -- IC 10971 -> Item 202 - - Refers to item: Line (location: source ID 18, line 125, chars 4188-4243, hits: 0) -- IC 10971 -> Item 203 - - Refers to item: Statement (location: source ID 18, line 125, chars 4188-4243, hits: 0) -- IC 10995 -> Item 204 - - Refers to item: Branch (branch: 1, path: 0) (location: source ID 18, line 125, chars 4184-4316, hits: 0) -- IC 11010 -> Item 205 - - Refers to item: Branch (branch: 1, path: 1) (location: source ID 18, line 125, chars 4184-4316, hits: 0) -- IC 10995 -> Item 206 - - Refers to item: Line (location: source ID 18, line 126, chars 4259-4285, hits: 0) -- IC 10995 -> Item 207 - - Refers to item: Statement (location: source ID 18, line 126, chars 4259-4285, hits: 0) -- IC 11005 -> Item 208 - - Refers to item: Line (location: source ID 18, line 127, chars 4299-4306, hits: 0) -- IC 11005 -> Item 209 - - Refers to item: Statement (location: source ID 18, line 127, chars 4299-4306, hits: 0) -- IC 11011 -> Item 210 - - Refers to item: Line (location: source ID 18, line 130, chars 4326-4349, hits: 0) -- IC 11011 -> Item 211 - - Refers to item: Statement (location: source ID 18, line 130, chars 4326-4349, hits: 0) -- IC 11013 -> Item 212 - - Refers to item: Line (location: source ID 18, line 133, chars 4400-4416, hits: 0) -- IC 11013 -> Item 213 - - Refers to item: Statement (location: source ID 18, line 133, chars 4400-4416, hits: 0) -- IC 11022 -> Item 214 - - Refers to item: Branch (branch: 2, path: 0) (location: source ID 18, line 133, chars 4396-4646, hits: 0) -- IC 11081 -> Item 215 - - Refers to item: Branch (branch: 2, path: 1) (location: source ID 18, line 133, chars 4396-4646, hits: 0) -- IC 11022 -> Item 216 - - Refers to item: Line (location: source ID 18, line 135, chars 4459-4635, hits: 0) -- IC 11022 -> Item 217 - - Refers to item: Statement (location: source ID 18, line 135, chars 4459-4635, hits: 0) -- IC 11082 -> Item 218 - - Refers to item: Line (location: source ID 18, line 140, chars 4656-4672, hits: 0) -- IC 11082 -> Item 219 - - Refers to item: Statement (location: source ID 18, line 140, chars 4656-4672, hits: 0) -- IC 11091 -> Item 220 - - Refers to item: Branch (branch: 3, path: 0) (location: source ID 18, line 140, chars 4652-4776, hits: 0) -- IC 11107 -> Item 221 - - Refers to item: Branch (branch: 3, path: 1) (location: source ID 18, line 140, chars 4652-4776, hits: 0) -- IC 11091 -> Item 222 - - Refers to item: Line (location: source ID 18, line 142, chars 4721-4765, hits: 0) -- IC 11091 -> Item 223 - - Refers to item: Statement (location: source ID 18, line 142, chars 4721-4765, hits: 0) -- IC 11108 -> Item 224 - - Refers to item: Line (location: source ID 18, line 144, chars 4796-4821, hits: 0) -- IC 11108 -> Item 225 - - Refers to item: Statement (location: source ID 18, line 144, chars 4796-4821, hits: 0) -- IC 11159 -> Item 226 - - Refers to item: Line (location: source ID 18, line 147, chars 4846-4892, hits: 0) -- IC 11159 -> Item 227 - - Refers to item: Statement (location: source ID 18, line 147, chars 4846-4892, hits: 0) -- IC 11174 -> Item 228 - - Refers to item: Branch (branch: 4, path: 0) (location: source ID 18, line 147, chars 4842-4945, hits: 0) -- IC 11188 -> Item 229 - - Refers to item: Branch (branch: 4, path: 1) (location: source ID 18, line 147, chars 4842-4945, hits: 0) -- IC 11174 -> Item 230 - - Refers to item: Line (location: source ID 18, line 148, chars 4908-4934, hits: 0) -- IC 11174 -> Item 231 - - Refers to item: Statement (location: source ID 18, line 148, chars 4908-4934, hits: 0) -- IC 11189 -> Item 232 - - Refers to item: Line (location: source ID 18, line 150, chars 4965-4990, hits: 0) -- IC 11189 -> Item 233 - - Refers to item: Statement (location: source ID 18, line 150, chars 4965-4990, hits: 0) -- IC 15366 -> Item 234 - - Refers to item: Function "_buildPermitDigest" (location: source ID 18, line 161, chars 5423-5862, hits: 0) -- IC 15369 -> Item 235 - - Refers to item: Line (location: source ID 18, line 166, chars 5575-5855, hits: 0) -- IC 15369 -> Item 236 - - Refers to item: Statement (location: source ID 18, line 166, chars 5575-5855, hits: 0) -- IC 16230 -> Item 237 - - Refers to item: Function "_isValidEOASignature" (location: source ID 18, line 185, chars 6173-6373, hits: 0) -- IC 16233 -> Item 238 - - Refers to item: Line (location: source ID 18, line 186, chars 6282-6366, hits: 0) -- IC 16233 -> Item 239 - - Refers to item: Statement (location: source ID 18, line 186, chars 6282-6366, hits: 0) -- IC 15487 -> Item 240 - - Refers to item: Function "_isValidERC1271Signature" (location: source ID 18, line 196, chars 6746-7332, hits: 0) -- IC 15490 -> Item 241 - - Refers to item: Line (location: source ID 18, line 197, chars 6868-7078, hits: 0) -- IC 15490 -> Item 242 - - Refers to item: Statement (location: source ID 18, line 197, chars 6868-7078, hits: 0) -- IC 15493 -> Item 243 - - Refers to item: Statement (location: source ID 18, line 197, chars 6903-7078, hits: 0) -- IC 15718 -> Item 244 - - Refers to item: Line (location: source ID 18, line 205, chars 7093-7120, hits: 0) -- IC 15718 -> Item 245 - - Refers to item: Statement (location: source ID 18, line 205, chars 7093-7120, hits: 0) -- IC 15837 -> Item 246 - - Refers to item: Branch (branch: 5, path: 0) (location: source ID 18, line 205, chars 7089-7303, hits: 0) -- IC 15848 -> Item 247 - - Refers to item: Branch (branch: 5, path: 1) (location: source ID 18, line 205, chars 7089-7303, hits: 0) -- IC 15737 -> Item 248 - - Refers to item: Line (location: source ID 18, line 206, chars 7136-7181, hits: 0) -- IC 15737 -> Item 249 - - Refers to item: Statement (location: source ID 18, line 206, chars 7136-7181, hits: 0) -- IC 15739 -> Item 250 - - Refers to item: Statement (location: source ID 18, line 206, chars 7156-7181, hits: 0) -- IC 15761 -> Item 251 - - Refers to item: Line (location: source ID 18, line 207, chars 7199-7247, hits: 0) -- IC 15761 -> Item 252 - - Refers to item: Statement (location: source ID 18, line 207, chars 7199-7247, hits: 0) -- IC 15837 -> Item 253 - - Refers to item: Branch (branch: 6, path: 0) (location: source ID 18, line 207, chars 7195-7293, hits: 0) -- IC 15848 -> Item 254 - - Refers to item: Branch (branch: 6, path: 1) (location: source ID 18, line 207, chars 7195-7293, hits: 0) -- IC 15837 -> Item 255 - - Refers to item: Line (location: source ID 18, line 208, chars 7267-7278, hits: 0) -- IC 15837 -> Item 256 - - Refers to item: Statement (location: source ID 18, line 208, chars 7267-7278, hits: 0) -- IC 15851 -> Item 257 - - Refers to item: Line (location: source ID 18, line 212, chars 7313-7325, hits: 0) -- IC 15851 -> Item 258 - - Refers to item: Statement (location: source ID 18, line 212, chars 7313-7325, hits: 0) -- IC 2350 -> Item 1523 - - Refers to item: Function "setOperatorAllowlistRegistry" (location: source ID 2, line 94, chars 3760-3928, hits: 0) -- IC 7560 -> Item 1524 - - Refers to item: Line (location: source ID 2, line 95, chars 3872-3921, hits: 0) -- IC 7560 -> Item 1525 - - Refers to item: Statement (location: source ID 2, line 95, chars 3872-3921, hits: 0) -- IC 20285 -> Item 1526 - - Refers to item: Function "supportsInterface" (location: source ID 2, line 102, chars 4071-4222, hits: 0) -- IC 20288 -> Item 1527 - - Refers to item: Line (location: source ID 2, line 103, chars 4172-4215, hits: 0) -- IC 20288 -> Item 1528 - - Refers to item: Statement (location: source ID 2, line 103, chars 4172-4215, hits: 0) -- IC 12707 -> Item 1529 - - Refers to item: Function "_setOperatorAllowlistRegistry" (location: source ID 2, line 110, chars 4419-4842, hits: 0) -- IC 12708 -> Item 1530 - - Refers to item: Line (location: source ID 2, line 111, chars 4509-4593, hits: 0) -- IC 12708 -> Item 1531 - - Refers to item: Statement (location: source ID 2, line 111, chars 4509-4593, hits: 0) -- IC 12866 -> Item 1532 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 2, line 111, chars 4505-4672, hits: 0) -- IC 12915 -> Item 1533 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 2, line 111, chars 4505-4672, hits: 0) -- IC 12866 -> Item 1534 - - Refers to item: Line (location: source ID 2, line 112, chars 4609-4661, hits: 0) -- IC 12866 -> Item 1535 - - Refers to item: Statement (location: source ID 2, line 112, chars 4609-4661, hits: 0) -- IC 12916 -> Item 1536 - - Refers to item: Line (location: source ID 2, line 115, chars 4682-4767, hits: 0) -- IC 12916 -> Item 1537 - - Refers to item: Statement (location: source ID 2, line 115, chars 4682-4767, hits: 0) -- IC 13007 -> Item 1538 - - Refers to item: Line (location: source ID 2, line 116, chars 4777-4835, hits: 0) -- IC 13007 -> Item 1539 - - Refers to item: Statement (location: source ID 2, line 116, chars 4777-4835, hits: 0) -- IC 1316 -> Item 58 - - Refers to item: Function "grantMinterRole" (location: source ID 22, line 15, chars 511-631, hits: 0) -- IC 4469 -> Item 59 - - Refers to item: Line (location: source ID 22, line 16, chars 596-624, hits: 0) -- IC 4469 -> Item 60 - - Refers to item: Statement (location: source ID 22, line 16, chars 596-624, hits: 0) -- IC 1590 -> Item 61 - - Refers to item: Function "revokeMinterRole" (location: source ID 22, line 22, chars 780-902, hits: 0) -- IC 5123 -> Item 62 - - Refers to item: Line (location: source ID 22, line 23, chars 866-895, hits: 0) -- IC 5123 -> Item 63 - - Refers to item: Statement (location: source ID 22, line 23, chars 866-895, hits: 0) -- IC 1228 -> Item 64 - - Refers to item: Function "getAdmins" (location: source ID 22, line 27, chars 980-1319, hits: 0) -- IC 4088 -> Item 65 - - Refers to item: Line (location: source ID 22, line 28, chars 1050-1109, hits: 0) -- IC 4088 -> Item 66 - - Refers to item: Statement (location: source ID 22, line 28, chars 1050-1109, hits: 0) -- IC 4090 -> Item 67 - - Refers to item: Statement (location: source ID 22, line 28, chars 1071-1109, hits: 0) -- IC 4104 -> Item 68 - - Refers to item: Line (location: source ID 22, line 29, chars 1119-1170, hits: 0) -- IC 4104 -> Item 69 - - Refers to item: Statement (location: source ID 22, line 29, chars 1119-1170, hits: 0) -- IC 4106 -> Item 70 - - Refers to item: Statement (location: source ID 22, line 29, chars 1145-1170, hits: 0) -- IC 4181 -> Item 71 - - Refers to item: Line (location: source ID 22, line 30, chars 1185-1194, hits: 0) -- IC 4181 -> Item 72 - - Refers to item: Statement (location: source ID 22, line 30, chars 1185-1194, hits: 0) -- IC 4184 -> Item 73 - - Refers to item: Statement (location: source ID 22, line 30, chars 1196-1210, hits: 0) -- IC 4282 -> Item 74 - - Refers to item: Statement (location: source ID 22, line 30, chars 1212-1215, hits: 0) -- IC 4192 -> Item 75 - - Refers to item: Line (location: source ID 22, line 31, chars 1231-1279, hits: 0) -- IC 4192 -> Item 76 - - Refers to item: Statement (location: source ID 22, line 31, chars 1231-1279, hits: 0) -- IC 4302 -> Item 77 - - Refers to item: Line (location: source ID 22, line 33, chars 1299-1312, hits: 0) -- IC 4302 -> Item 78 - - Refers to item: Statement (location: source ID 22, line 33, chars 1299-1312, hits: 0) -- IC 1788 -> Item 356 - - Refers to item: Function "setDefaultRoyaltyReceiver" (location: source ID 20, line 100, chars 3242-3411, hits: 0) -- IC 5797 -> Item 357 - - Refers to item: Line (location: source ID 20, line 101, chars 3362-3404, hits: 0) -- IC 5797 -> Item 358 - - Refers to item: Statement (location: source ID 20, line 101, chars 3362-3404, hits: 0) -- IC 1486 -> Item 359 - - Refers to item: Function "setNFTRoyaltyReceiver" (location: source ID 20, line 110, chars 3770-3982, hits: 0) -- IC 4926 -> Item 360 - - Refers to item: Line (location: source ID 20, line 115, chars 3926-3975, hits: 0) -- IC 4926 -> Item 361 - - Refers to item: Statement (location: source ID 20, line 115, chars 3926-3975, hits: 0) -- IC 2112 -> Item 362 - - Refers to item: Function "setNFTRoyaltyReceiverBatch" (location: source ID 20, line 124, chars 4350-4650, hits: 0) -- IC 7091 -> Item 363 - - Refers to item: Line (location: source ID 20, line 129, chars 4528-4538, hits: 0) -- IC 7091 -> Item 364 - - Refers to item: Statement (location: source ID 20, line 129, chars 4528-4538, hits: 0) -- IC 7094 -> Item 365 - - Refers to item: Statement (location: source ID 20, line 129, chars 4540-4559, hits: 0) -- IC 7141 -> Item 366 - - Refers to item: Statement (location: source ID 20, line 129, chars 4561-4564, hits: 0) -- IC 7105 -> Item 367 - - Refers to item: Line (location: source ID 20, line 130, chars 4580-4633, hits: 0) -- IC 7105 -> Item 368 - - Refers to item: Statement (location: source ID 20, line 130, chars 4580-4633, hits: 0) -- IC 1458 -> Item 369 - - Refers to item: Function "burn" (location: source ID 20, line 138, chars 4818-4977, hits: 0) -- IC 4828 -> Item 370 - - Refers to item: Line (location: source ID 20, line 139, chars 4891-4910, hits: 0) -- IC 4828 -> Item 371 - - Refers to item: Statement (location: source ID 20, line 139, chars 4891-4910, hits: 0) -- IC 4837 -> Item 372 - - Refers to item: Line (location: source ID 20, line 140, chars 4920-4946, hits: 0) -- IC 4837 -> Item 373 - - Refers to item: Statement (location: source ID 20, line 140, chars 4920-4946, hits: 0) -- IC 4857 -> Item 374 - - Refers to item: Line (location: source ID 20, line 141, chars 4956-4970, hits: 0) -- IC 4857 -> Item 375 - - Refers to item: Statement (location: source ID 20, line 141, chars 4956-4970, hits: 0) -- IC 1998 -> Item 376 - - Refers to item: Function "safeBurn" (location: source ID 20, line 148, chars 5167-5439, hits: 0) -- IC 6270 -> Item 377 - - Refers to item: Line (location: source ID 20, line 149, chars 5242-5281, hits: 0) -- IC 6270 -> Item 378 - - Refers to item: Statement (location: source ID 20, line 149, chars 5242-5281, hits: 0) -- IC 6272 -> Item 379 - - Refers to item: Statement (location: source ID 20, line 149, chars 5265-5281, hits: 0) -- IC 6283 -> Item 380 - - Refers to item: Line (location: source ID 20, line 150, chars 5295-5316, hits: 0) -- IC 6283 -> Item 381 - - Refers to item: Statement (location: source ID 20, line 150, chars 5295-5316, hits: 0) -- IC 6334 -> Item 382 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 20, line 150, chars 5291-5409, hits: 0) -- IC 6396 -> Item 383 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 20, line 150, chars 5291-5409, hits: 0) -- IC 6334 -> Item 384 - - Refers to item: Line (location: source ID 20, line 151, chars 5332-5398, hits: 0) -- IC 6334 -> Item 385 - - Refers to item: Statement (location: source ID 20, line 151, chars 5332-5398, hits: 0) -- IC 6397 -> Item 386 - - Refers to item: Line (location: source ID 20, line 154, chars 5419-5432, hits: 0) -- IC 6397 -> Item 387 - - Refers to item: Statement (location: source ID 20, line 154, chars 5419-5432, hits: 0) -- IC 1344 -> Item 388 - - Refers to item: Function "_safeBurnBatch" (location: source ID 20, line 160, chars 5634-5930, hits: 0) -- IC 4515 -> Item 389 - - Refers to item: Line (location: source ID 20, line 161, chars 5713-5723, hits: 0) -- IC 4515 -> Item 390 - - Refers to item: Statement (location: source ID 20, line 161, chars 5713-5723, hits: 0) -- IC 4518 -> Item 391 - - Refers to item: Statement (location: source ID 20, line 161, chars 5725-5741, hits: 0) -- IC 4685 -> Item 392 - - Refers to item: Statement (location: source ID 20, line 161, chars 5743-5746, hits: 0) -- IC 4529 -> Item 393 - - Refers to item: Line (location: source ID 20, line 162, chars 5762-5790, hits: 0) -- IC 4529 -> Item 394 - - Refers to item: Statement (location: source ID 20, line 162, chars 5762-5790, hits: 0) -- IC 4569 -> Item 395 - - Refers to item: Line (location: source ID 20, line 163, chars 5809-5819, hits: 0) -- IC 4569 -> Item 396 - - Refers to item: Statement (location: source ID 20, line 163, chars 5809-5819, hits: 0) -- IC 4572 -> Item 397 - - Refers to item: Statement (location: source ID 20, line 163, chars 5821-5842, hits: 0) -- IC 4664 -> Item 398 - - Refers to item: Statement (location: source ID 20, line 163, chars 5844-5847, hits: 0) -- IC 4597 -> Item 399 - - Refers to item: Line (location: source ID 20, line 164, chars 5867-5899, hits: 0) -- IC 4597 -> Item 400 - - Refers to item: Statement (location: source ID 20, line 164, chars 5867-5899, hits: 0) -- IC 1514 -> Item 401 - - Refers to item: Function "setBaseURI" (location: source ID 20, line 173, chars 6087-6202, hits: 0) -- IC 4956 -> Item 402 - - Refers to item: Line (location: source ID 20, line 174, chars 6177-6195, hits: 0) -- IC 4956 -> Item 403 - - Refers to item: Statement (location: source ID 20, line 174, chars 6177-6195, hits: 0) -- IC 1912 -> Item 404 - - Refers to item: Function "setContractURI" (location: source ID 20, line 181, chars 6367-6498, hits: 0) -- IC 5978 -> Item 405 - - Refers to item: Line (location: source ID 20, line 182, chars 6465-6491, hits: 0) -- IC 5978 -> Item 406 - - Refers to item: Statement (location: source ID 20, line 182, chars 6465-6491, hits: 0) -- IC 2084 -> Item 407 - - Refers to item: Function "setApprovalForAll" (location: source ID 20, line 189, chars 6610-6781, hits: 0) -- IC 7034 -> Item 408 - - Refers to item: Line (location: source ID 20, line 190, chars 6731-6774, hits: 0) -- IC 7034 -> Item 409 - - Refers to item: Statement (location: source ID 20, line 190, chars 6731-6774, hits: 0) -- IC 785 -> Item 410 - - Refers to item: Function "supportsInterface" (location: source ID 20, line 196, chars 6907-7191, hits: 0) -- IC 2722 -> Item 411 - - Refers to item: Line (location: source ID 20, line 205, chars 7141-7184, hits: 0) -- IC 2722 -> Item 412 - - Refers to item: Statement (location: source ID 20, line 205, chars 7141-7184, hits: 0) -- IC 987 -> Item 413 - - Refers to item: Function "totalSupply" (location: source ID 20, line 209, chars 7261-7358, hits: 0) -- IC 3264 -> Item 414 - - Refers to item: Line (location: source ID 20, line 210, chars 7332-7351, hits: 0) -- IC 3264 -> Item 415 - - Refers to item: Statement (location: source ID 20, line 210, chars 7332-7351, hits: 0) -- IC 8067 -> Item 416 - - Refers to item: Function "_approve" (location: source ID 20, line 217, chars 7472-7610, hits: 0) -- IC 8587 -> Item 417 - - Refers to item: Line (location: source ID 20, line 218, chars 7576-7603, hits: 0) -- IC 8587 -> Item 418 - - Refers to item: Statement (location: source ID 20, line 218, chars 7576-7603, hits: 0) -- IC 9045 -> Item 419 - - Refers to item: Function "_transfer" (location: source ID 20, line 225, chars 7739-7941, hits: 0) -- IC 9845 -> Item 420 - - Refers to item: Line (location: source ID 20, line 230, chars 7900-7934, hits: 0) -- IC 9845 -> Item 421 - - Refers to item: Statement (location: source ID 20, line 230, chars 7900-7934, hits: 0) -- IC 11854 -> Item 422 - - Refers to item: Function "_batchMint" (location: source ID 20, line 239, chars 8219-8622, hits: 0) -- IC 11855 -> Item 423 - - Refers to item: Line (location: source ID 20, line 240, chars 8291-8319, hits: 0) -- IC 11855 -> Item 424 - - Refers to item: Statement (location: source ID 20, line 240, chars 8291-8319, hits: 0) -- IC 11925 -> Item 425 - - Refers to item: Branch (branch: 1, path: 0) (location: source ID 20, line 240, chars 8287-8393, hits: 0) -- IC 11974 -> Item 426 - - Refers to item: Branch (branch: 1, path: 1) (location: source ID 20, line 240, chars 8287-8393, hits: 0) -- IC 11925 -> Item 427 - - Refers to item: Line (location: source ID 20, line 241, chars 8335-8382, hits: 0) -- IC 11925 -> Item 428 - - Refers to item: Statement (location: source ID 20, line 241, chars 8335-8382, hits: 0) -- IC 11975 -> Item 429 - - Refers to item: Line (location: source ID 20, line 244, chars 8411-8468, hits: 0) -- IC 11975 -> Item 430 - - Refers to item: Statement (location: source ID 20, line 244, chars 8411-8468, hits: 0) -- IC 12012 -> Item 431 - - Refers to item: Line (location: source ID 20, line 245, chars 8483-8496, hits: 0) -- IC 12012 -> Item 432 - - Refers to item: Statement (location: source ID 20, line 245, chars 8483-8496, hits: 0) -- IC 12015 -> Item 433 - - Refers to item: Statement (location: source ID 20, line 245, chars 8498-8529, hits: 0) -- IC 12107 -> Item 434 - - Refers to item: Statement (location: source ID 20, line 245, chars 8531-8534, hits: 0) -- IC 12040 -> Item 435 - - Refers to item: Line (location: source ID 20, line 246, chars 8550-8596, hits: 0) -- IC 12040 -> Item 436 - - Refers to item: Statement (location: source ID 20, line 246, chars 8550-8596, hits: 0) -- IC 8621 -> Item 437 - - Refers to item: Function "_safeBatchMint" (location: source ID 20, line 255, chars 8863-9252, hits: 0) -- IC 8622 -> Item 438 - - Refers to item: Line (location: source ID 20, line 256, chars 8939-8967, hits: 0) -- IC 8622 -> Item 439 - - Refers to item: Statement (location: source ID 20, line 256, chars 8939-8967, hits: 0) -- IC 8692 -> Item 440 - - Refers to item: Branch (branch: 2, path: 0) (location: source ID 20, line 256, chars 8935-9041, hits: 0) -- IC 8741 -> Item 441 - - Refers to item: Branch (branch: 2, path: 1) (location: source ID 20, line 256, chars 8935-9041, hits: 0) -- IC 8692 -> Item 442 - - Refers to item: Line (location: source ID 20, line 257, chars 8983-9030, hits: 0) -- IC 8692 -> Item 443 - - Refers to item: Statement (location: source ID 20, line 257, chars 8983-9030, hits: 0) -- IC 8742 -> Item 444 - - Refers to item: Line (location: source ID 20, line 259, chars 9055-9064, hits: 0) -- IC 8742 -> Item 445 - - Refers to item: Statement (location: source ID 20, line 259, chars 9055-9064, hits: 0) -- IC 8745 -> Item 446 - - Refers to item: Statement (location: source ID 20, line 259, chars 9066-9097, hits: 0) -- IC 8837 -> Item 447 - - Refers to item: Statement (location: source ID 20, line 259, chars 9099-9102, hits: 0) -- IC 8770 -> Item 448 - - Refers to item: Line (location: source ID 20, line 260, chars 9118-9168, hits: 0) -- IC 8770 -> Item 449 - - Refers to item: Statement (location: source ID 20, line 260, chars 9118-9168, hits: 0) -- IC 8857 -> Item 450 - - Refers to item: Line (location: source ID 20, line 262, chars 9188-9245, hits: 0) -- IC 8857 -> Item 451 - - Refers to item: Statement (location: source ID 20, line 262, chars 9188-9245, hits: 0) -- IC 10159 -> Item 452 - - Refers to item: Function "_mint" (location: source ID 20, line 270, chars 9460-9687, hits: 0) -- IC 10160 -> Item 453 - - Refers to item: Line (location: source ID 20, line 271, chars 9544-9570, hits: 0) -- IC 10160 -> Item 454 - - Refers to item: Statement (location: source ID 20, line 271, chars 9544-9570, hits: 0) -- IC 10185 -> Item 455 - - Refers to item: Branch (branch: 3, path: 0) (location: source ID 20, line 271, chars 9540-9647, hits: 0) -- IC 10245 -> Item 456 - - Refers to item: Branch (branch: 3, path: 1) (location: source ID 20, line 271, chars 9540-9647, hits: 0) -- IC 10185 -> Item 457 - - Refers to item: Line (location: source ID 20, line 272, chars 9586-9636, hits: 0) -- IC 10185 -> Item 458 - - Refers to item: Statement (location: source ID 20, line 272, chars 9586-9636, hits: 0) -- IC 10246 -> Item 459 - - Refers to item: Line (location: source ID 20, line 274, chars 9656-9680, hits: 0) -- IC 10246 -> Item 460 - - Refers to item: Statement (location: source ID 20, line 274, chars 9656-9680, hits: 0) -- IC 13579 -> Item 461 - - Refers to item: Function "_safeMint" (location: source ID 20, line 282, chars 9904-10139, hits: 0) -- IC 13580 -> Item 462 - - Refers to item: Line (location: source ID 20, line 283, chars 9992-10018, hits: 0) -- IC 13580 -> Item 463 - - Refers to item: Statement (location: source ID 20, line 283, chars 9992-10018, hits: 0) -- IC 13605 -> Item 464 - - Refers to item: Branch (branch: 4, path: 0) (location: source ID 20, line 283, chars 9988-10095, hits: 0) -- IC 13665 -> Item 465 - - Refers to item: Branch (branch: 4, path: 1) (location: source ID 20, line 283, chars 9988-10095, hits: 0) -- IC 13605 -> Item 466 - - Refers to item: Line (location: source ID 20, line 284, chars 10034-10084, hits: 0) -- IC 13605 -> Item 467 - - Refers to item: Statement (location: source ID 20, line 284, chars 10034-10084, hits: 0) -- IC 13666 -> Item 468 - - Refers to item: Line (location: source ID 20, line 286, chars 10104-10132, hits: 0) -- IC 13666 -> Item 469 - - Refers to item: Statement (location: source ID 20, line 286, chars 10104-10132, hits: 0) -- IC 12334 -> Item 470 - - Refers to item: Function "_baseURI" (location: source ID 20, line 290, chars 10181-10295, hits: 0) -- IC 12337 -> Item 471 - - Refers to item: Line (location: source ID 20, line 291, chars 10274-10288, hits: 0) -- IC 12337 -> Item 472 - - Refers to item: Statement (location: source ID 20, line 291, chars 10274-10288, hits: 0) - -Anchors for Contract "MockOnReceive" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 7): -- IC 59 -> Item 54 - - Refers to item: Function "onERC721Received" (location: source ID 7, line 16, chars 412-712, hits: 0) -- IC 140 -> Item 55 - - Refers to item: Line (location: source ID 7, line 22, chars 598-658, hits: 0) -- IC 140 -> Item 56 - - Refers to item: Statement (location: source ID 7, line 22, chars 598-658, hits: 0) -- IC 318 -> Item 57 - - Refers to item: Line (location: source ID 7, line 23, chars 668-705, hits: 0) -- IC 318 -> Item 58 - - Refers to item: Statement (location: source ID 7, line 23, chars 668-705, hits: 0) - -Anchors for Contract "ImmutableSignedZone" (solc 0.8.17+commit.8df45f5f.Darwin.appleclang, source ID 5): -- IC 481 -> Item 130 - - Refers to item: Function "addSigner" (location: source ID 5, line 145, chars 5328-6155, hits: 0) -- IC 3039 -> Item 131 - - Refers to item: Line (location: source ID 5, line 147, chars 5471-5491, hits: 0) -- IC 3039 -> Item 132 - - Refers to item: Statement (location: source ID 5, line 147, chars 5471-5491, hits: 0) -- IC 3091 -> Item 133 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 5, line 147, chars 5467-5552, hits: 0) -- IC 3140 -> Item 134 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 5, line 147, chars 5467-5552, hits: 0) -- IC 3091 -> Item 135 - - Refers to item: Line (location: source ID 5, line 148, chars 5507-5541, hits: 0) -- IC 3091 -> Item 136 - - Refers to item: Statement (location: source ID 5, line 148, chars 5507-5541, hits: 0) -- IC 3141 -> Item 137 - - Refers to item: Line (location: source ID 5, line 152, chars 5612-5700, hits: 0) -- IC 3226 -> Item 138 - - Refers to item: Branch (branch: 1, path: 0) (location: source ID 5, line 152, chars 5612-5700, hits: 0) -- IC 3286 -> Item 139 - - Refers to item: Branch (branch: 1, path: 1) (location: source ID 5, line 152, chars 5612-5700, hits: 0) -- IC 3226 -> Item 140 - - Refers to item: Line (location: source ID 5, line 153, chars 5655-5689, hits: 0) -- IC 3226 -> Item 141 - - Refers to item: Statement (location: source ID 5, line 153, chars 5655-5689, hits: 0) -- IC 3287 -> Item 142 - - Refers to item: Line (location: source ID 5, line 159, chars 5873-5978, hits: 0) -- IC 3372 -> Item 143 - - Refers to item: Branch (branch: 2, path: 0) (location: source ID 5, line 159, chars 5873-5978, hits: 0) -- IC 3432 -> Item 144 - - Refers to item: Branch (branch: 2, path: 1) (location: source ID 5, line 159, chars 5873-5978, hits: 0) -- IC 3372 -> Item 145 - - Refers to item: Line (location: source ID 5, line 160, chars 5926-5967, hits: 0) -- IC 3372 -> Item 146 - - Refers to item: Statement (location: source ID 5, line 160, chars 5926-5967, hits: 0) -- IC 3433 -> Item 147 - - Refers to item: Line (location: source ID 5, line 164, chars 6020-6061, hits: 0) -- IC 3433 -> Item 148 - - Refers to item: Statement (location: source ID 5, line 164, chars 6020-6061, hits: 0) -- IC 3590 -> Item 149 - - Refers to item: Line (location: source ID 5, line 167, chars 6124-6148, hits: 0) -- IC 3590 -> Item 150 - - Refers to item: Statement (location: source ID 5, line 167, chars 6124-6148, hits: 0) -- IC 233 -> Item 151 - - Refers to item: Function "removeSigner" (location: source ID 5, line 175, chars 6289-6688, hits: 0) -- IC 668 -> Item 152 - - Refers to item: Line (location: source ID 5, line 177, chars 6416-6440, hits: 0) -- IC 668 -> Item 153 - - Refers to item: Statement (location: source ID 5, line 177, chars 6416-6440, hits: 0) -- IC 752 -> Item 154 - - Refers to item: Branch (branch: 3, path: 0) (location: source ID 5, line 177, chars 6412-6497, hits: 0) -- IC 812 -> Item 155 - - Refers to item: Branch (branch: 3, path: 1) (location: source ID 5, line 177, chars 6412-6497, hits: 0) -- IC 752 -> Item 156 - - Refers to item: Line (location: source ID 5, line 178, chars 6456-6486, hits: 0) -- IC 752 -> Item 157 - - Refers to item: Statement (location: source ID 5, line 178, chars 6456-6486, hits: 0) -- IC 813 -> Item 158 - - Refers to item: Line (location: source ID 5, line 182, chars 6559-6590, hits: 0) -- IC 813 -> Item 159 - - Refers to item: Statement (location: source ID 5, line 182, chars 6559-6590, hits: 0) -- IC 904 -> Item 160 - - Refers to item: Line (location: source ID 5, line 185, chars 6655-6681, hits: 0) -- IC 904 -> Item 161 - - Refers to item: Statement (location: source ID 5, line 185, chars 6655-6681, hits: 0) -- IC 261 -> Item 162 - - Refers to item: Function "validateOrder" (location: source ID 5, line 197, chars 7041-10845, hits: 0) -- IC 964 -> Item 163 - - Refers to item: Line (location: source ID 5, line 201, chars 7265-7316, hits: 0) -- IC 964 -> Item 164 - - Refers to item: Statement (location: source ID 5, line 201, chars 7265-7316, hits: 0) -- IC 987 -> Item 165 - - Refers to item: Line (location: source ID 5, line 202, chars 7326-7370, hits: 0) -- IC 987 -> Item 166 - - Refers to item: Statement (location: source ID 5, line 202, chars 7326-7370, hits: 0) -- IC 996 -> Item 167 - - Refers to item: Line (location: source ID 5, line 205, chars 7444-7465, hits: 0) -- IC 996 -> Item 168 - - Refers to item: Statement (location: source ID 5, line 205, chars 7444-7465, hits: 0) -- IC 1007 -> Item 169 - - Refers to item: Branch (branch: 4, path: 0) (location: source ID 5, line 205, chars 7440-7548, hits: 0) -- IC 1067 -> Item 170 - - Refers to item: Branch (branch: 4, path: 1) (location: source ID 5, line 205, chars 7440-7548, hits: 0) -- IC 1007 -> Item 171 - - Refers to item: Line (location: source ID 5, line 206, chars 7481-7537, hits: 0) -- IC 1007 -> Item 172 - - Refers to item: Statement (location: source ID 5, line 206, chars 7481-7537, hits: 0) -- IC 1068 -> Item 173 - - Refers to item: Line (location: source ID 5, line 214, chars 7844-7865, hits: 0) -- IC 1068 -> Item 174 - - Refers to item: Statement (location: source ID 5, line 214, chars 7844-7865, hits: 0) -- IC 1080 -> Item 175 - - Refers to item: Branch (branch: 5, path: 0) (location: source ID 5, line 214, chars 7840-8018, hits: 0) -- IC 1140 -> Item 176 - - Refers to item: Branch (branch: 5, path: 1) (location: source ID 5, line 214, chars 7840-8018, hits: 0) -- IC 1080 -> Item 177 - - Refers to item: Line (location: source ID 5, line 215, chars 7881-8007, hits: 0) -- IC 1080 -> Item 178 - - Refers to item: Statement (location: source ID 5, line 215, chars 7881-8007, hits: 0) -- IC 1141 -> Item 179 - - Refers to item: Line (location: source ID 5, line 222, chars 8086-8131, hits: 0) -- IC 1141 -> Item 180 - - Refers to item: Statement (location: source ID 5, line 222, chars 8086-8131, hits: 0) -- IC 1229 -> Item 181 - - Refers to item: Branch (branch: 6, path: 0) (location: source ID 5, line 222, chars 8082-8213, hits: 0) -- IC 1237 -> Item 182 - - Refers to item: Branch (branch: 6, path: 1) (location: source ID 5, line 222, chars 8082-8213, hits: 0) -- IC 1218 -> Item 183 - - Refers to item: Line (location: source ID 5, line 223, chars 8147-8202, hits: 0) -- IC 1218 -> Item 184 - - Refers to item: Statement (location: source ID 5, line 223, chars 8147-8202, hits: 0) -- IC 1311 -> Item 185 - - Refers to item: Line (location: source ID 5, line 228, chars 8322-8383, hits: 0) -- IC 1311 -> Item 186 - - Refers to item: Statement (location: source ID 5, line 228, chars 8322-8383, hits: 0) -- IC 1313 -> Item 187 - - Refers to item: Statement (location: source ID 5, line 228, chars 8350-8383, hits: 0) -- IC 1349 -> Item 188 - - Refers to item: Line (location: source ID 5, line 231, chars 8458-8510, hits: 0) -- IC 1349 -> Item 189 - - Refers to item: Statement (location: source ID 5, line 231, chars 8458-8510, hits: 0) -- IC 1351 -> Item 190 - - Refers to item: Statement (location: source ID 5, line 231, chars 8478-8510, hits: 0) -- IC 1387 -> Item 191 - - Refers to item: Line (location: source ID 5, line 235, chars 8625-8668, hits: 0) -- IC 1387 -> Item 192 - - Refers to item: Statement (location: source ID 5, line 235, chars 8625-8668, hits: 0) -- IC 1414 -> Item 193 - - Refers to item: Line (location: source ID 5, line 238, chars 8750-8789, hits: 0) -- IC 1414 -> Item 194 - - Refers to item: Statement (location: source ID 5, line 238, chars 8750-8789, hits: 0) -- IC 1440 -> Item 195 - - Refers to item: Line (location: source ID 5, line 241, chars 8834-8862, hits: 0) -- IC 1440 -> Item 196 - - Refers to item: Statement (location: source ID 5, line 241, chars 8834-8862, hits: 0) -- IC 1458 -> Item 197 - - Refers to item: Branch (branch: 7, path: 0) (location: source ID 5, line 241, chars 8830-8952, hits: 0) -- IC 1522 -> Item 198 - - Refers to item: Branch (branch: 7, path: 1) (location: source ID 5, line 241, chars 8830-8952, hits: 0) -- IC 1458 -> Item 199 - - Refers to item: Line (location: source ID 5, line 242, chars 8878-8941, hits: 0) -- IC 1458 -> Item 200 - - Refers to item: Statement (location: source ID 5, line 242, chars 8878-8941, hits: 0) -- IC 1523 -> Item 201 - - Refers to item: Line (location: source ID 5, line 246, chars 9027-9077, hits: 0) -- IC 1523 -> Item 202 - - Refers to item: Statement (location: source ID 5, line 246, chars 9027-9077, hits: 0) -- IC 1546 -> Item 203 - - Refers to item: Line (location: source ID 5, line 252, chars 9254-9337, hits: 0) -- IC 1546 -> Item 204 - - Refers to item: Statement (location: source ID 5, line 252, chars 9254-9337, hits: 0) -- IC 1656 -> Item 205 - - Refers to item: Branch (branch: 8, path: 0) (location: source ID 5, line 251, chars 9237-9505, hits: 0) -- IC 1720 -> Item 206 - - Refers to item: Branch (branch: 8, path: 1) (location: source ID 5, line 251, chars 9237-9505, hits: 0) -- IC 1656 -> Item 207 - - Refers to item: Line (location: source ID 5, line 255, chars 9362-9494, hits: 0) -- IC 1656 -> Item 208 - - Refers to item: Statement (location: source ID 5, line 255, chars 9362-9494, hits: 0) -- IC 1721 -> Item 209 - - Refers to item: Line (location: source ID 5, line 263, chars 9564-9712, hits: 0) -- IC 1721 -> Item 210 - - Refers to item: Statement (location: source ID 5, line 263, chars 9564-9712, hits: 0) -- IC 1756 -> Item 211 - - Refers to item: Line (location: source ID 5, line 270, chars 9762-9919, hits: 0) -- IC 1756 -> Item 212 - - Refers to item: Statement (location: source ID 5, line 270, chars 9762-9919, hits: 0) -- IC 1758 -> Item 213 - - Refers to item: Statement (location: source ID 5, line 270, chars 9788-9919, hits: 0) -- IC 1773 -> Item 214 - - Refers to item: Line (location: source ID 5, line 279, chars 10053-10162, hits: 0) -- IC 1773 -> Item 215 - - Refers to item: Statement (location: source ID 5, line 279, chars 10053-10162, hits: 0) -- IC 1775 -> Item 216 - - Refers to item: Statement (location: source ID 5, line 279, chars 10070-10162, hits: 0) -- IC 1794 -> Item 217 - - Refers to item: Line (location: source ID 5, line 286, chars 10303-10449, hits: 0) -- IC 1794 -> Item 218 - - Refers to item: Statement (location: source ID 5, line 286, chars 10303-10449, hits: 0) -- IC 1796 -> Item 219 - - Refers to item: Statement (location: source ID 5, line 286, chars 10329-10449, hits: 0) -- IC 1869 -> Item 220 - - Refers to item: Line (location: source ID 5, line 294, chars 10593-10626, hits: 0) -- IC 1869 -> Item 221 - - Refers to item: Statement (location: source ID 5, line 294, chars 10593-10626, hits: 0) -- IC 1953 -> Item 222 - - Refers to item: Branch (branch: 9, path: 0) (location: source ID 5, line 294, chars 10589-10692, hits: 0) -- IC 2013 -> Item 223 - - Refers to item: Branch (branch: 9, path: 1) (location: source ID 5, line 294, chars 10589-10692, hits: 0) -- IC 1953 -> Item 224 - - Refers to item: Line (location: source ID 5, line 295, chars 10642-10681, hits: 0) -- IC 1953 -> Item 225 - - Refers to item: Statement (location: source ID 5, line 295, chars 10642-10681, hits: 0) -- IC 2014 -> Item 226 - - Refers to item: Line (location: source ID 5, line 299, chars 10779-10838, hits: 0) -- IC 2014 -> Item 227 - - Refers to item: Statement (location: source ID 5, line 299, chars 10779-10838, hits: 0) -- IC 5606 -> Item 228 - - Refers to item: Function "_domainSeparator" (location: source ID 5, line 310, chars 11163-11364, hits: 0) -- IC 5609 -> Item 229 - - Refers to item: Line (location: source ID 5, line 311, chars 11233-11357, hits: 0) -- IC 5609 -> Item 230 - - Refers to item: Statement (location: source ID 5, line 311, chars 11233-11357, hits: 0) -- IC 337 -> Item 231 - - Refers to item: Function "getSeaportMetadata" (location: source ID 5, line 324, chars 11595-12196, hits: 0) -- IC 2075 -> Item 232 - - Refers to item: Line (location: source ID 5, line 330, chars 11778-11795, hits: 0) -- IC 2075 -> Item 233 - - Refers to item: Statement (location: source ID 5, line 330, chars 11778-11795, hits: 0) -- IC 2216 -> Item 234 - - Refers to item: Line (location: source ID 5, line 333, chars 11835-11860, hits: 0) -- IC 2216 -> Item 235 - - Refers to item: Statement (location: source ID 5, line 333, chars 11835-11860, hits: 0) -- IC 2303 -> Item 236 - - Refers to item: Line (location: source ID 5, line 334, chars 11870-11887, hits: 0) -- IC 2303 -> Item 237 - - Refers to item: Statement (location: source ID 5, line 334, chars 11870-11887, hits: 0) -- IC 2341 -> Item 238 - - Refers to item: Line (location: source ID 5, line 336, chars 11898-12189, hits: 0) -- IC 2341 -> Item 239 - - Refers to item: Statement (location: source ID 5, line 336, chars 11898-12189, hits: 0) -- IC 6203 -> Item 240 - - Refers to item: Function "_deriveDomainSeparator" (location: source ID 5, line 353, chars 12361-12759, hits: 0) -- IC 6206 -> Item 241 - - Refers to item: Line (location: source ID 5, line 358, chars 12481-12752, hits: 0) -- IC 6206 -> Item 242 - - Refers to item: Statement (location: source ID 5, line 358, chars 12481-12752, hits: 0) -- IC 309 -> Item 243 - - Refers to item: Function "updateAPIEndpoint" (location: source ID 5, line 375, chars 12901-13095, hits: 0) -- IC 2050 -> Item 244 - - Refers to item: Line (location: source ID 5, line 379, chars 13055-13088, hits: 0) -- IC 2050 -> Item 245 - - Refers to item: Statement (location: source ID 5, line 379, chars 13055-13088, hits: 0) -- IC 418 -> Item 246 - - Refers to item: Function "sip7Information" (location: source ID 5, line 387, chars 13253-13714, hits: 0) -- IC 2681 -> Item 247 - - Refers to item: Line (location: source ID 5, line 398, chars 13531-13567, hits: 0) -- IC 2681 -> Item 248 - - Refers to item: Statement (location: source ID 5, line 398, chars 13531-13567, hits: 0) -- IC 2691 -> Item 249 - - Refers to item: Line (location: source ID 5, line 399, chars 13577-13607, hits: 0) -- IC 2691 -> Item 250 - - Refers to item: Statement (location: source ID 5, line 399, chars 13577-13607, hits: 0) -- IC 2832 -> Item 251 - - Refers to item: Line (location: source ID 5, line 401, chars 13618-13660, hits: 0) -- IC 2832 -> Item 252 - - Refers to item: Statement (location: source ID 5, line 401, chars 13618-13660, hits: 0) -- IC 2842 -> Item 253 - - Refers to item: Line (location: source ID 5, line 403, chars 13671-13707, hits: 0) -- IC 2842 -> Item 254 - - Refers to item: Statement (location: source ID 5, line 403, chars 13671-13707, hits: 0) -- IC 4850 -> Item 255 - - Refers to item: Function "_validateSubstandards" (location: source ID 5, line 411, chars 13849-16137, hits: 0) -- IC 4851 -> Item 256 - - Refers to item: Line (location: source ID 5, line 419, chars 14210-14229, hits: 0) -- IC 4851 -> Item 257 - - Refers to item: Statement (location: source ID 5, line 419, chars 14210-14229, hits: 0) -- IC 4863 -> Item 258 - - Refers to item: Branch (branch: 10, path: 0) (location: source ID 5, line 419, chars 14206-14425, hits: 0) -- IC 4927 -> Item 259 - - Refers to item: Branch (branch: 10, path: 1) (location: source ID 5, line 419, chars 14206-14425, hits: 0) -- IC 4863 -> Item 260 - - Refers to item: Line (location: source ID 5, line 420, chars 14245-14414, hits: 0) -- IC 4863 -> Item 261 - - Refers to item: Statement (location: source ID 5, line 420, chars 14245-14414, hits: 0) -- IC 4928 -> Item 262 - - Refers to item: Line (location: source ID 5, line 427, chars 14503-14561, hits: 0) -- IC 4928 -> Item 263 - - Refers to item: Statement (location: source ID 5, line 427, chars 14503-14561, hits: 0) -- IC 4930 -> Item 264 - - Refers to item: Statement (location: source ID 5, line 427, chars 14539-14561, hits: 0) -- IC 4963 -> Item 265 - - Refers to item: Line (location: source ID 5, line 428, chars 14575-14627, hits: 0) -- IC 4963 -> Item 266 - - Refers to item: Statement (location: source ID 5, line 428, chars 14575-14627, hits: 0) -- IC 4970 -> Item 267 - - Refers to item: Branch (branch: 11, path: 0) (location: source ID 5, line 428, chars 14571-14802, hits: 0) -- IC 5037 -> Item 268 - - Refers to item: Branch (branch: 11, path: 1) (location: source ID 5, line 428, chars 14571-14802, hits: 0) -- IC 4970 -> Item 269 - - Refers to item: Line (location: source ID 5, line 429, chars 14643-14791, hits: 0) -- IC 4970 -> Item 270 - - Refers to item: Statement (location: source ID 5, line 429, chars 14643-14791, hits: 0) -- IC 5038 -> Item 271 - - Refers to item: Line (location: source ID 5, line 439, chars 14950-14996, hits: 0) -- IC 5038 -> Item 272 - - Refers to item: Statement (location: source ID 5, line 439, chars 14950-14996, hits: 0) -- IC 5064 -> Item 273 - - Refers to item: Line (location: source ID 5, line 441, chars 15060-15093, hits: 0) -- IC 5064 -> Item 274 - - Refers to item: Statement (location: source ID 5, line 441, chars 15060-15093, hits: 0) -- IC 5087 -> Item 275 - - Refers to item: Branch (branch: 12, path: 0) (location: source ID 5, line 441, chars 15056-15285, hits: 0) -- IC 5151 -> Item 276 - - Refers to item: Branch (branch: 12, path: 1) (location: source ID 5, line 441, chars 15056-15285, hits: 0) -- IC 5087 -> Item 277 - - Refers to item: Line (location: source ID 5, line 442, chars 15109-15274, hits: 0) -- IC 5087 -> Item 278 - - Refers to item: Statement (location: source ID 5, line 442, chars 15109-15274, hits: 0) -- IC 5152 -> Item 279 - - Refers to item: Line (location: source ID 5, line 449, chars 15365-15469, hits: 0) -- IC 5152 -> Item 280 - - Refers to item: Statement (location: source ID 5, line 449, chars 15365-15469, hits: 0) -- IC 5154 -> Item 281 - - Refers to item: Statement (location: source ID 5, line 449, chars 15404-15469, hits: 0) -- IC 5244 -> Item 282 - - Refers to item: Line (location: source ID 5, line 452, chars 15484-15497, hits: 0) -- IC 5244 -> Item 283 - - Refers to item: Statement (location: source ID 5, line 452, chars 15484-15497, hits: 0) -- IC 5247 -> Item 284 - - Refers to item: Statement (location: source ID 5, line 452, chars 15499-15531, hits: 0) -- IC 5365 -> Item 285 - - Refers to item: Statement (location: source ID 5, line 452, chars 15533-15536, hits: 0) -- IC 5270 -> Item 286 - - Refers to item: Line (location: source ID 5, line 453, chars 15552-15652, hits: 0) -- IC 5270 -> Item 287 - - Refers to item: Statement (location: source ID 5, line 453, chars 15552-15652, hits: 0) -- IC 5385 -> Item 288 - - Refers to item: Line (location: source ID 5, line 461, chars 15838-15953, hits: 0) -- IC 5385 -> Item 289 - - Refers to item: Statement (location: source ID 5, line 461, chars 15838-15953, hits: 0) -- IC 5414 -> Item 290 - - Refers to item: Branch (branch: 13, path: 0) (location: source ID 5, line 460, chars 15821-16131, hits: 0) -- IC 5481 -> Item 291 - - Refers to item: Branch (branch: 13, path: 1) (location: source ID 5, line 460, chars 15821-16131, hits: 0) -- IC 5414 -> Item 292 - - Refers to item: Line (location: source ID 5, line 466, chars 15978-16120, hits: 0) -- IC 5414 -> Item 293 - - Refers to item: Statement (location: source ID 5, line 466, chars 15978-16120, hits: 0) -- IC 5805 -> Item 294 - - Refers to item: Function "_getSupportedSubstandards" (location: source ID 5, line 480, chars 16292-16557, hits: 0) -- IC 5808 -> Item 295 - - Refers to item: Line (location: source ID 5, line 486, chars 16461-16492, hits: 0) -- IC 5808 -> Item 296 - - Refers to item: Statement (location: source ID 5, line 486, chars 16461-16492, hits: 0) -- IC 5884 -> Item 297 - - Refers to item: Line (location: source ID 5, line 487, chars 16502-16521, hits: 0) -- IC 5884 -> Item 298 - - Refers to item: Statement (location: source ID 5, line 487, chars 16502-16521, hits: 0) -- IC 5918 -> Item 299 - - Refers to item: Line (location: source ID 5, line 488, chars 16531-16550, hits: 0) -- IC 5918 -> Item 300 - - Refers to item: Statement (location: source ID 5, line 488, chars 16531-16550, hits: 0) -- IC 5491 -> Item 301 - - Refers to item: Function "_deriveSignedOrderHash" (location: source ID 5, line 502, chars 16950-17440, hits: 0) -- IC 5494 -> Item 302 - - Refers to item: Line (location: source ID 5, line 509, chars 17200-17433, hits: 0) -- IC 5494 -> Item 303 - - Refers to item: Statement (location: source ID 5, line 509, chars 17200-17433, hits: 0) -- IC 4248 -> Item 304 - - Refers to item: Function "_deriveConsiderationHash" (location: source ID 5, line 524, chars 17597-18511, hits: 0) -- IC 4251 -> Item 305 - - Refers to item: Line (location: source ID 5, line 527, chars 17726-17770, hits: 0) -- IC 4251 -> Item 306 - - Refers to item: Statement (location: source ID 5, line 527, chars 17726-17770, hits: 0) -- IC 4258 -> Item 307 - - Refers to item: Line (location: source ID 5, line 528, chars 17780-17847, hits: 0) -- IC 4258 -> Item 308 - - Refers to item: Statement (location: source ID 5, line 528, chars 17780-17847, hits: 0) -- IC 4260 -> Item 309 - - Refers to item: Statement (location: source ID 5, line 528, chars 17819-17847, hits: 0) -- IC 4335 -> Item 310 - - Refers to item: Line (location: source ID 5, line 529, chars 17862-17871, hits: 0) -- IC 4335 -> Item 311 - - Refers to item: Statement (location: source ID 5, line 529, chars 17862-17871, hits: 0) -- IC 4338 -> Item 312 - - Refers to item: Statement (location: source ID 5, line 529, chars 17873-17890, hits: 0) -- IC 4644 -> Item 313 - - Refers to item: Statement (location: source ID 5, line 529, chars 17892-17895, hits: 0) -- IC 4383 -> Item 314 - - Refers to item: Line (location: source ID 5, line 530, chars 17911-18282, hits: 0) -- IC 4383 -> Item 315 - - Refers to item: Statement (location: source ID 5, line 530, chars 17911-18282, hits: 0) -- IC 4763 -> Item 316 - - Refers to item: Line (location: source ID 5, line 541, chars 18302-18504, hits: 0) -- IC 4763 -> Item 317 - - Refers to item: Statement (location: source ID 5, line 541, chars 18302-18504, hits: 0) -- IC 6011 -> Item 318 - - Refers to item: Function "_everyElementExists" (location: source ID 5, line 557, chars 18752-20028, hits: 0) -- IC 6014 -> Item 319 - - Refers to item: Line (location: source ID 5, line 562, chars 18954-18988, hits: 0) -- IC 6014 -> Item 320 - - Refers to item: Statement (location: source ID 5, line 562, chars 18954-18988, hits: 0) -- IC 6019 -> Item 321 - - Refers to item: Line (location: source ID 5, line 563, chars 18998-19032, hits: 0) -- IC 6019 -> Item 322 - - Refers to item: Statement (location: source ID 5, line 563, chars 18998-19032, hits: 0) -- IC 6027 -> Item 323 - - Refers to item: Line (location: source ID 5, line 567, chars 19171-19194, hits: 0) -- IC 6027 -> Item 324 - - Refers to item: Statement (location: source ID 5, line 567, chars 19171-19194, hits: 0) -- IC 6035 -> Item 325 - - Refers to item: Branch (branch: 14, path: 0) (location: source ID 5, line 567, chars 19167-19233, hits: 0) -- IC 6045 -> Item 326 - - Refers to item: Branch (branch: 14, path: 1) (location: source ID 5, line 567, chars 19167-19233, hits: 0) -- IC 6035 -> Item 327 - - Refers to item: Line (location: source ID 5, line 568, chars 19210-19222, hits: 0) -- IC 6035 -> Item 328 - - Refers to item: Statement (location: source ID 5, line 568, chars 19210-19222, hits: 0) -- IC 6046 -> Item 329 - - Refers to item: Line (location: source ID 5, line 572, chars 19305-19318, hits: 0) -- IC 6046 -> Item 330 - - Refers to item: Statement (location: source ID 5, line 572, chars 19305-19318, hits: 0) -- IC 6049 -> Item 331 - - Refers to item: Statement (location: source ID 5, line 572, chars 19320-19334, hits: 0) -- IC 6057 -> Item 332 - - Refers to item: Line (location: source ID 5, line 573, chars 19352-19370, hits: 0) -- IC 6057 -> Item 333 - - Refers to item: Statement (location: source ID 5, line 573, chars 19352-19370, hits: 0) -- IC 6059 -> Item 334 - - Refers to item: Line (location: source ID 5, line 574, chars 19384-19408, hits: 0) -- IC 6059 -> Item 335 - - Refers to item: Statement (location: source ID 5, line 574, chars 19384-19408, hits: 0) -- IC 6089 -> Item 336 - - Refers to item: Line (location: source ID 5, line 575, chars 19427-19440, hits: 0) -- IC 6089 -> Item 337 - - Refers to item: Statement (location: source ID 5, line 575, chars 19427-19440, hits: 0) -- IC 6092 -> Item 338 - - Refers to item: Statement (location: source ID 5, line 575, chars 19442-19456, hits: 0) -- IC 6100 -> Item 339 - - Refers to item: Line (location: source ID 5, line 576, chars 19482-19499, hits: 0) -- IC 6100 -> Item 340 - - Refers to item: Statement (location: source ID 5, line 576, chars 19482-19499, hits: 0) -- IC 6132 -> Item 341 - - Refers to item: Branch (branch: 15, path: 0) (location: source ID 5, line 576, chars 19478-19644, hits: 0) -- IC 6140 -> Item 342 - - Refers to item: Branch (branch: 15, path: 1) (location: source ID 5, line 576, chars 19478-19644, hits: 0) -- IC 6132 -> Item 343 - - Refers to item: Line (location: source ID 5, line 578, chars 19586-19598, hits: 0) -- IC 6132 -> Item 344 - - Refers to item: Statement (location: source ID 5, line 578, chars 19586-19598, hits: 0) -- IC 6136 -> Item 345 - - Refers to item: Line (location: source ID 5, line 579, chars 19620-19625, hits: 0) -- IC 6136 -> Item 346 - - Refers to item: Statement (location: source ID 5, line 579, chars 19620-19625, hits: 0) -- IC 6141 -> Item 347 - - Refers to item: Line (location: source ID 5, line 582, chars 19693-19696, hits: 0) -- IC 6141 -> Item 348 - - Refers to item: Statement (location: source ID 5, line 582, chars 19693-19696, hits: 0) -- IC 6155 -> Item 349 - - Refers to item: Line (location: source ID 5, line 585, chars 19746-19752, hits: 0) -- IC 6155 -> Item 350 - - Refers to item: Statement (location: source ID 5, line 585, chars 19746-19752, hits: 0) -- IC 6160 -> Item 351 - - Refers to item: Branch (branch: 16, path: 0) (location: source ID 5, line 585, chars 19742-19879, hits: 0) -- IC 6173 -> Item 352 - - Refers to item: Branch (branch: 16, path: 1) (location: source ID 5, line 585, chars 19742-19879, hits: 0) -- IC 6160 -> Item 353 - - Refers to item: Line (location: source ID 5, line 587, chars 19852-19864, hits: 0) -- IC 6160 -> Item 354 - - Refers to item: Statement (location: source ID 5, line 587, chars 19852-19864, hits: 0) -- IC 6174 -> Item 355 - - Refers to item: Line (location: source ID 5, line 590, chars 19920-19923, hits: 0) -- IC 6174 -> Item 356 - - Refers to item: Statement (location: source ID 5, line 590, chars 19920-19923, hits: 0) -- IC 6190 -> Item 357 - - Refers to item: Line (location: source ID 5, line 595, chars 20010-20021, hits: 0) -- IC 6190 -> Item 358 - - Refers to item: Statement (location: source ID 5, line 595, chars 20010-20021, hits: 0) -- IC 185 -> Item 359 - - Refers to item: Function "supportsInterface" (location: source ID 5, line 598, chars 20034-20288, hits: 0) -- IC 540 -> Item 360 - - Refers to item: Line (location: source ID 5, line 601, chars 20164-20281, hits: 0) -- IC 540 -> Item 361 - - Refers to item: Statement (location: source ID 5, line 601, chars 20164-20281, hits: 0) - -Anchors for Contract "MockOffchainSource" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 149): -- IC 181 -> Item 0 - - Refers to item: Function "setIsReady" (location: source ID 149, line 11, chars 263-338, hits: 6) -- IC 362 -> Item 1 - - Refers to item: Line (location: source ID 149, line 12, chars 315-331, hits: 6) -- IC 362 -> Item 2 - - Refers to item: Statement (location: source ID 149, line 12, chars 315-331, hits: 6) -- IC 209 -> Item 3 - - Refers to item: Function "requestOffchainRandom" (location: source ID 149, line 15, chars 344-488, hits: 6) -- IC 393 -> Item 4 - - Refers to item: Line (location: source ID 149, line 16, chars 463-481, hits: 6) -- IC 393 -> Item 5 - - Refers to item: Statement (location: source ID 149, line 16, chars 463-481, hits: 6) -- IC 239 -> Item 6 - - Refers to item: Function "getOffchainRandom" (location: source ID 149, line 19, chars 494-764, hits: 6) -- IC 422 -> Item 7 - - Refers to item: Line (location: source ID 149, line 20, chars 638-646, hits: 6) -- IC 422 -> Item 8 - - Refers to item: Statement (location: source ID 149, line 20, chars 638-646, hits: 6) -- IC 442 -> Item 9 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 149, line 20, chars 634-695, hits: 0) -- IC 491 -> Item 10 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 149, line 20, chars 634-695, hits: 6) -- IC 442 -> Item 11 - - Refers to item: Line (location: source ID 149, line 21, chars 662-684, hits: 0) -- IC 442 -> Item 12 - - Refers to item: Statement (location: source ID 149, line 21, chars 662-684, hits: 0) -- IC 492 -> Item 13 - - Refers to item: Line (location: source ID 149, line 23, chars 704-757, hits: 6) -- IC 492 -> Item 14 - - Refers to item: Statement (location: source ID 149, line 23, chars 704-757, hits: 6) -- IC 103 -> Item 15 - - Refers to item: Function "isOffchainRandomReady" (location: source ID 149, line 26, chars 770-893, hits: 2) -- IC 320 -> Item 16 - - Refers to item: Line (location: source ID 149, line 27, chars 872-886, hits: 2) -- IC 320 -> Item 17 - - Refers to item: Statement (location: source ID 149, line 27, chars 872-886, hits: 2) - -Anchors for Contract "MockMarketplace" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 6): -- IC 286 -> Item 220 - - Refers to item: Function "executeTransfer" (location: source ID 6, line 16, chars 421-565, hits: 0) -- IC 1235 -> Item 221 - - Refers to item: Line (location: source ID 6, line 17, chars 500-558, hits: 0) -- IC 1235 -> Item 222 - - Refers to item: Statement (location: source ID 6, line 17, chars 500-558, hits: 0) -- IC 118 -> Item 223 - - Refers to item: Function "executeTransferFrom" (location: source ID 6, line 20, chars 571-713, hits: 0) -- IC 868 -> Item 224 - - Refers to item: Line (location: source ID 6, line 21, chars 661-706, hits: 0) -- IC 868 -> Item 225 - - Refers to item: Statement (location: source ID 6, line 21, chars 661-706, hits: 0) -- IC 245 -> Item 226 - - Refers to item: Function "executeApproveForAll" (location: source ID 6, line 24, chars 719-856, hits: 0) -- IC 1090 -> Item 227 - - Refers to item: Line (location: source ID 6, line 25, chars 799-849, hits: 0) -- IC 1090 -> Item 228 - - Refers to item: Statement (location: source ID 6, line 25, chars 799-849, hits: 0) -- IC 90 -> Item 229 - - Refers to item: Function "executeTransferRoyalties" (location: source ID 6, line 28, chars 862-1355, hits: 0) -- IC 328 -> Item 230 - - Refers to item: Line (location: source ID 6, line 29, chars 987-1040, hits: 0) -- IC 328 -> Item 231 - - Refers to item: Statement (location: source ID 6, line 29, chars 987-1040, hits: 0) -- IC 335 -> Item 232 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 6, line 29, chars 987-1040, hits: 0) -- IC 393 -> Item 233 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 6, line 29, chars 987-1040, hits: 0) -- IC 394 -> Item 234 - - Refers to item: Line (location: source ID 6, line 30, chars 1050-1137, hits: 0) -- IC 394 -> Item 235 - - Refers to item: Statement (location: source ID 6, line 30, chars 1050-1137, hits: 0) -- IC 397 -> Item 236 - - Refers to item: Statement (location: source ID 6, line 30, chars 1094-1137, hits: 0) -- IC 558 -> Item 237 - - Refers to item: Line (location: source ID 6, line 31, chars 1147-1192, hits: 0) -- IC 558 -> Item 238 - - Refers to item: Statement (location: source ID 6, line 31, chars 1147-1192, hits: 0) -- IC 560 -> Item 239 - - Refers to item: Statement (location: source ID 6, line 31, chars 1167-1192, hits: 0) -- IC 574 -> Item 240 - - Refers to item: Line (location: source ID 6, line 32, chars 1202-1243, hits: 0) -- IC 574 -> Item 241 - - Refers to item: Statement (location: source ID 6, line 32, chars 1202-1243, hits: 0) -- IC 645 -> Item 242 - - Refers to item: Line (location: source ID 6, line 33, chars 1253-1286, hits: 0) -- IC 645 -> Item 243 - - Refers to item: Statement (location: source ID 6, line 33, chars 1253-1286, hits: 0) -- IC 716 -> Item 244 - - Refers to item: Line (location: source ID 6, line 34, chars 1296-1348, hits: 0) -- IC 716 -> Item 245 - - Refers to item: Statement (location: source ID 6, line 34, chars 1296-1348, hits: 0) - -Anchors for Contract "ImmutableERC721" (solc 0.8.19+commit.7dd6d404.Darwin.appleclang, source ID 25): -- IC 1510 -> Item 531 - - Refers to item: Function "mint" (location: source ID 25, line 49, chars 1728-1841, hits: 0) -- IC 4395 -> Item 532 - - Refers to item: Line (location: source ID 25, line 50, chars 1812-1834, hits: 0) -- IC 4395 -> Item 533 - - Refers to item: Statement (location: source ID 25, line 50, chars 1812-1834, hits: 0) -- IC 2210 -> Item 534 - - Refers to item: Function "safeMint" (location: source ID 25, line 57, chars 2054-2175, hits: 0) -- IC 5750 -> Item 535 - - Refers to item: Line (location: source ID 25, line 58, chars 2142-2168, hits: 0) -- IC 5750 -> Item 536 - - Refers to item: Statement (location: source ID 25, line 58, chars 2142-2168, hits: 0) -- IC 2668 -> Item 537 - - Refers to item: Function "mintByQuantity" (location: source ID 25, line 65, chars 2386-2517, hits: 0) -- IC 6958 -> Item 538 - - Refers to item: Line (location: source ID 25, line 66, chars 2481-2510, hits: 0) -- IC 6958 -> Item 539 - - Refers to item: Statement (location: source ID 25, line 66, chars 2481-2510, hits: 0) -- IC 1698 -> Item 540 - - Refers to item: Function "safeMintByQuantity" (location: source ID 25, line 74, chars 2758-2897, hits: 0) -- IC 4688 -> Item 541 - - Refers to item: Line (location: source ID 25, line 75, chars 2857-2890, hits: 0) -- IC 4688 -> Item 542 - - Refers to item: Statement (location: source ID 25, line 75, chars 2857-2890, hits: 0) -- IC 2506 -> Item 543 - - Refers to item: Function "mintBatchByQuantity" (location: source ID 25, line 81, chars 3113-3240, hits: 0) -- IC 6641 -> Item 544 - - Refers to item: Line (location: source ID 25, line 82, chars 3206-3233, hits: 0) -- IC 6641 -> Item 545 - - Refers to item: Statement (location: source ID 25, line 82, chars 3206-3233, hits: 0) -- IC 1308 -> Item 546 - - Refers to item: Function "safeMintBatchByQuantity" (location: source ID 25, line 88, chars 3461-3596, hits: 0) -- IC 3851 -> Item 547 - - Refers to item: Line (location: source ID 25, line 89, chars 3558-3589, hits: 0) -- IC 3851 -> Item 548 - - Refers to item: Statement (location: source ID 25, line 89, chars 3558-3589, hits: 0) -- IC 2154 -> Item 549 - - Refers to item: Function "mintBatch" (location: source ID 25, line 96, chars 3886-4009, hits: 0) -- IC 5552 -> Item 550 - - Refers to item: Line (location: source ID 25, line 97, chars 3971-4002, hits: 0) -- IC 5552 -> Item 551 - - Refers to item: Statement (location: source ID 25, line 97, chars 3971-4002, hits: 0) -- IC 1125 -> Item 552 - - Refers to item: Function "safeMintBatch" (location: source ID 25, line 104, chars 4299-4430, hits: 0) -- IC 3187 -> Item 553 - - Refers to item: Line (location: source ID 25, line 105, chars 4388-4423, hits: 0) -- IC 3187 -> Item 554 - - Refers to item: Statement (location: source ID 25, line 105, chars 4388-4423, hits: 0) -- IC 1908 -> Item 555 - - Refers to item: Function "safeBurnBatch" (location: source ID 25, line 111, chars 4605-4700, hits: 0) -- IC 5009 -> Item 556 - - Refers to item: Line (location: source ID 25, line 112, chars 4672-4693, hits: 0) -- IC 5009 -> Item 557 - - Refers to item: Statement (location: source ID 25, line 112, chars 4672-4693, hits: 0) -- IC 865 -> Item 558 - - Refers to item: Function "safeTransferFromBatch" (location: source ID 25, line 119, chars 4935-5269, hits: 0) -- IC 2697 -> Item 559 - - Refers to item: Line (location: source ID 25, line 120, chars 5018-5053, hits: 0) -- IC 2697 -> Item 560 - - Refers to item: Statement (location: source ID 25, line 120, chars 5018-5053, hits: 0) -- IC 2738 -> Item 561 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 25, line 120, chars 5014-5130, hits: 0) -- IC 2787 -> Item 562 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 25, line 120, chars 5014-5130, hits: 0) -- IC 2738 -> Item 563 - - Refers to item: Line (location: source ID 25, line 121, chars 5069-5119, hits: 0) -- IC 2738 -> Item 564 - - Refers to item: Statement (location: source ID 25, line 121, chars 5069-5119, hits: 0) -- IC 2788 -> Item 565 - - Refers to item: Line (location: source ID 25, line 124, chars 5145-5155, hits: 0) -- IC 2788 -> Item 566 - - Refers to item: Statement (location: source ID 25, line 124, chars 5145-5155, hits: 0) -- IC 2791 -> Item 567 - - Refers to item: Statement (location: source ID 25, line 124, chars 5157-5179, hits: 0) -- IC 2937 -> Item 568 - - Refers to item: Statement (location: source ID 25, line 124, chars 5181-5184, hits: 0) -- IC 2816 -> Item 569 - - Refers to item: Line (location: source ID 25, line 125, chars 5200-5252, hits: 0) -- IC 2816 -> Item 570 - - Refers to item: Statement (location: source ID 25, line 125, chars 5200-5252, hits: 0) -- IC 1482 -> Item 58 - - Refers to item: Function "grantMinterRole" (location: source ID 22, line 15, chars 511-631, hits: 0) -- IC 4307 -> Item 59 - - Refers to item: Line (location: source ID 22, line 16, chars 596-624, hits: 0) -- IC 4307 -> Item 60 - - Refers to item: Statement (location: source ID 22, line 16, chars 596-624, hits: 0) -- IC 1774 -> Item 61 - - Refers to item: Function "revokeMinterRole" (location: source ID 22, line 22, chars 780-902, hits: 0) -- IC 4766 -> Item 62 - - Refers to item: Line (location: source ID 22, line 23, chars 866-895, hits: 0) -- IC 4766 -> Item 63 - - Refers to item: Statement (location: source ID 22, line 23, chars 866-895, hits: 0) -- IC 1394 -> Item 64 - - Refers to item: Function "getAdmins" (location: source ID 22, line 27, chars 980-1319, hits: 0) -- IC 3926 -> Item 65 - - Refers to item: Line (location: source ID 22, line 28, chars 1050-1109, hits: 0) -- IC 3926 -> Item 66 - - Refers to item: Statement (location: source ID 22, line 28, chars 1050-1109, hits: 0) -- IC 3928 -> Item 67 - - Refers to item: Statement (location: source ID 22, line 28, chars 1071-1109, hits: 0) -- IC 3942 -> Item 68 - - Refers to item: Line (location: source ID 22, line 29, chars 1119-1170, hits: 0) -- IC 3942 -> Item 69 - - Refers to item: Statement (location: source ID 22, line 29, chars 1119-1170, hits: 0) -- IC 3944 -> Item 70 - - Refers to item: Statement (location: source ID 22, line 29, chars 1145-1170, hits: 0) -- IC 4019 -> Item 71 - - Refers to item: Line (location: source ID 22, line 30, chars 1185-1194, hits: 0) -- IC 4019 -> Item 72 - - Refers to item: Statement (location: source ID 22, line 30, chars 1185-1194, hits: 0) -- IC 4022 -> Item 73 - - Refers to item: Statement (location: source ID 22, line 30, chars 1196-1210, hits: 0) -- IC 4120 -> Item 74 - - Refers to item: Statement (location: source ID 22, line 30, chars 1212-1215, hits: 0) -- IC 4030 -> Item 75 - - Refers to item: Line (location: source ID 22, line 31, chars 1231-1279, hits: 0) -- IC 4030 -> Item 76 - - Refers to item: Statement (location: source ID 22, line 31, chars 1231-1279, hits: 0) -- IC 4140 -> Item 77 - - Refers to item: Line (location: source ID 22, line 33, chars 1299-1312, hits: 0) -- IC 4140 -> Item 78 - - Refers to item: Statement (location: source ID 22, line 33, chars 1299-1312, hits: 0) -- IC 893 -> Item 571 - - Refers to item: Function "supportsInterface" (location: source ID 21, line 51, chars 2034-2324, hits: 0) -- IC 2962 -> Item 572 - - Refers to item: Line (location: source ID 21, line 60, chars 2274-2317, hits: 0) -- IC 2962 -> Item 573 - - Refers to item: Statement (location: source ID 21, line 60, chars 2274-2317, hits: 0) -- IC 18471 -> Item 574 - - Refers to item: Function "_baseURI" (location: source ID 21, line 64, chars 2384-2490, hits: 0) -- IC 18474 -> Item 575 - - Refers to item: Line (location: source ID 21, line 65, chars 2469-2483, hits: 0) -- IC 18474 -> Item 576 - - Refers to item: Statement (location: source ID 21, line 65, chars 2469-2483, hits: 0) -- IC 1670 -> Item 577 - - Refers to item: Function "setBaseURI" (location: source ID 21, line 71, chars 2597-2712, hits: 0) -- IC 4626 -> Item 578 - - Refers to item: Line (location: source ID 21, line 72, chars 2687-2705, hits: 0) -- IC 4626 -> Item 579 - - Refers to item: Statement (location: source ID 21, line 72, chars 2687-2705, hits: 0) -- IC 2096 -> Item 580 - - Refers to item: Function "setContractURI" (location: source ID 21, line 79, chars 2877-3008, hits: 0) -- IC 5475 -> Item 581 - - Refers to item: Line (location: source ID 21, line 80, chars 2975-3001, hits: 0) -- IC 5475 -> Item 582 - - Refers to item: Statement (location: source ID 21, line 80, chars 2975-3001, hits: 0) -- IC 2268 -> Item 583 - - Refers to item: Function "setApprovalForAll" (location: source ID 21, line 87, chars 3126-3333, hits: 0) -- IC 6291 -> Item 584 - - Refers to item: Line (location: source ID 21, line 91, chars 3283-3326, hits: 0) -- IC 6291 -> Item 585 - - Refers to item: Statement (location: source ID 21, line 91, chars 3283-3326, hits: 0) -- IC 12944 -> Item 586 - - Refers to item: Function "_approve" (location: source ID 21, line 98, chars 3453-3605, hits: 0) -- IC 13464 -> Item 587 - - Refers to item: Line (location: source ID 21, line 99, chars 3571-3598, hits: 0) -- IC 13464 -> Item 588 - - Refers to item: Statement (location: source ID 21, line 99, chars 3571-3598, hits: 0) -- IC 13844 -> Item 589 - - Refers to item: Function "_transfer" (location: source ID 21, line 106, chars 3740-3956, hits: 0) -- IC 14644 -> Item 590 - - Refers to item: Line (location: source ID 21, line 111, chars 3915-3949, hits: 0) -- IC 14644 -> Item 591 - - Refers to item: Statement (location: source ID 21, line 111, chars 3915-3949, hits: 0) -- IC 1972 -> Item 592 - - Refers to item: Function "setDefaultRoyaltyReceiver" (location: source ID 21, line 119, chars 4245-4414, hits: 0) -- IC 5294 -> Item 593 - - Refers to item: Line (location: source ID 21, line 120, chars 4365-4407, hits: 0) -- IC 5294 -> Item 594 - - Refers to item: Statement (location: source ID 21, line 120, chars 4365-4407, hits: 0) -- IC 1594 -> Item 595 - - Refers to item: Function "setNFTRoyaltyReceiver" (location: source ID 21, line 129, chars 4776-4988, hits: 0) -- IC 4578 -> Item 596 - - Refers to item: Line (location: source ID 21, line 134, chars 4932-4981, hits: 0) -- IC 4578 -> Item 597 - - Refers to item: Statement (location: source ID 21, line 134, chars 4932-4981, hits: 0) -- IC 2296 -> Item 598 - - Refers to item: Function "setNFTRoyaltyReceiverBatch" (location: source ID 21, line 143, chars 5356-5656, hits: 0) -- IC 6348 -> Item 599 - - Refers to item: Line (location: source ID 21, line 148, chars 5534-5544, hits: 0) -- IC 6348 -> Item 600 - - Refers to item: Statement (location: source ID 21, line 148, chars 5534-5544, hits: 0) -- IC 6351 -> Item 601 - - Refers to item: Statement (location: source ID 21, line 148, chars 5546-5565, hits: 0) -- IC 6398 -> Item 602 - - Refers to item: Statement (location: source ID 21, line 148, chars 5567-5570, hits: 0) -- IC 6362 -> Item 603 - - Refers to item: Line (location: source ID 21, line 149, chars 5586-5639, hits: 0) -- IC 6362 -> Item 604 - - Refers to item: Statement (location: source ID 21, line 149, chars 5586-5639, hits: 0) -- IC 16724 -> Item 897 - - Refers to item: Function "_burn" (location: source ID 24, line 31, chars 760-1065, hits: 0) -- IC 16725 -> Item 898 - - Refers to item: Line (location: source ID 24, line 32, chars 819-850, hits: 0) -- IC 16725 -> Item 899 - - Refers to item: Statement (location: source ID 24, line 32, chars 819-850, hits: 0) -- IC 16727 -> Item 900 - - Refers to item: Statement (location: source ID 24, line 32, chars 834-850, hits: 0) -- IC 16738 -> Item 901 - - Refers to item: Line (location: source ID 24, line 33, chars 860-911, hits: 0) -- IC 16738 -> Item 902 - - Refers to item: Statement (location: source ID 24, line 33, chars 860-911, hits: 0) -- IC 16752 -> Item 903 - - Refers to item: Line (location: source ID 24, line 34, chars 921-946, hits: 0) -- IC 16752 -> Item 904 - - Refers to item: Statement (location: source ID 24, line 34, chars 921-946, hits: 0) -- IC 16772 -> Item 905 - - Refers to item: Line (location: source ID 24, line 36, chars 957-997, hits: 0) -- IC 16772 -> Item 906 - - Refers to item: Statement (location: source ID 24, line 36, chars 957-997, hits: 0) -- IC 16864 -> Item 907 - - Refers to item: Line (location: source ID 24, line 38, chars 1008-1058, hits: 0) -- IC 16864 -> Item 908 - - Refers to item: Statement (location: source ID 24, line 38, chars 1008-1058, hits: 0) -- IC 16942 -> Item 909 - - Refers to item: Function "_exists" (location: source ID 24, line 49, chars 1368-1571, hits: 0) -- IC 16945 -> Item 910 - - Refers to item: Line (location: source ID 24, line 50, chars 1462-1487, hits: 0) -- IC 16945 -> Item 911 - - Refers to item: Statement (location: source ID 24, line 50, chars 1462-1487, hits: 0) -- IC 16970 -> Item 912 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 24, line 50, chars 1458-1526, hits: 0) -- IC 16978 -> Item 913 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 24, line 50, chars 1458-1526, hits: 0) -- IC 16970 -> Item 914 - - Refers to item: Line (location: source ID 24, line 51, chars 1503-1515, hits: 0) -- IC 16970 -> Item 915 - - Refers to item: Statement (location: source ID 24, line 51, chars 1503-1515, hits: 0) -- IC 16979 -> Item 916 - - Refers to item: Line (location: source ID 24, line 53, chars 1535-1564, hits: 0) -- IC 16979 -> Item 917 - - Refers to item: Statement (location: source ID 24, line 53, chars 1535-1564, hits: 0) -- IC 8001 -> Item 918 - - Refers to item: Function "totalSupply" (location: source ID 24, line 59, chars 1642-1762, hits: 0) -- IC 8004 -> Item 919 - - Refers to item: Line (location: source ID 24, line 60, chars 1722-1755, hits: 0) -- IC 8004 -> Item 920 - - Refers to item: Statement (location: source ID 24, line 60, chars 1722-1755, hits: 0) -- IC 13478 -> Item 921 - - Refers to item: Function "_burned" (location: source ID 24, line 66, chars 1828-2170, hits: 0) -- IC 13481 -> Item 922 - - Refers to item: Line (location: source ID 24, line 67, chars 1896-1938, hits: 0) -- IC 13481 -> Item 923 - - Refers to item: Statement (location: source ID 24, line 67, chars 1896-1938, hits: 0) -- IC 13482 -> Item 924 - - Refers to item: Statement (location: source ID 24, line 67, chars 1918-1938, hits: 0) -- IC 13496 -> Item 925 - - Refers to item: Line (location: source ID 24, line 68, chars 1948-1994, hits: 0) -- IC 13496 -> Item 926 - - Refers to item: Statement (location: source ID 24, line 68, chars 1948-1994, hits: 0) -- IC 13498 -> Item 927 - - Refers to item: Statement (location: source ID 24, line 68, chars 1969-1994, hits: 0) -- IC 13524 -> Item 928 - - Refers to item: Line (location: source ID 24, line 70, chars 2010-2033, hits: 0) -- IC 13524 -> Item 929 - - Refers to item: Statement (location: source ID 24, line 70, chars 2010-2033, hits: 0) -- IC 13530 -> Item 930 - - Refers to item: Statement (location: source ID 24, line 70, chars 2035-2049, hits: 0) -- IC 13585 -> Item 931 - - Refers to item: Statement (location: source ID 24, line 70, chars 2051-2054, hits: 0) -- IC 13538 -> Item 932 - - Refers to item: Line (location: source ID 24, line 71, chars 2070-2112, hits: 0) -- IC 13538 -> Item 933 - - Refers to item: Statement (location: source ID 24, line 71, chars 2070-2112, hits: 0) -- IC 13540 -> Item 934 - - Refers to item: Statement (location: source ID 24, line 71, chars 2087-2112, hits: 0) -- IC 13562 -> Item 935 - - Refers to item: Line (location: source ID 24, line 72, chars 2126-2153, hits: 0) -- IC 13562 -> Item 936 - - Refers to item: Statement (location: source ID 24, line 72, chars 2126-2153, hits: 0) -- IC 19641 -> Item 937 - - Refers to item: Function "_popcount" (location: source ID 24, line 79, chars 2232-2393, hits: 0) -- IC 19645 -> Item 940 - - Refers to item: Statement (location: source ID 24, line 81, chars 2349-2355, hits: 0) -- IC 19661 -> Item 941 - - Refers to item: Statement (location: source ID 24, line 81, chars 2357-2364, hits: 0) -- IC 19653 -> Item 942 - - Refers to item: Statement (location: source ID 24, line 81, chars 2366-2376, hits: 0) -- IC 1880 -> Item 91 - - Refers to item: Function "permit" (location: source ID 17, line 46, chars 1738-1899, hits: 0) -- IC 4991 -> Item 92 - - Refers to item: Line (location: source ID 17, line 47, chars 1852-1892, hits: 0) -- IC 4991 -> Item 93 - - Refers to item: Statement (location: source ID 17, line 47, chars 1852-1892, hits: 0) -- IC 1047 -> Item 94 - - Refers to item: Function "nonces" (location: source ID 17, line 55, chars 2107-2212, hits: 0) -- IC 3090 -> Item 95 - - Refers to item: Line (location: source ID 17, line 56, chars 2182-2205, hits: 0) -- IC 3090 -> Item 96 - - Refers to item: Statement (location: source ID 17, line 56, chars 2182-2205, hits: 0) -- IC 1424 -> Item 97 - - Refers to item: Function "DOMAIN_SEPARATOR" (location: source ID 17, line 63, chars 2395-2508, hits: 0) -- IC 4150 -> Item 98 - - Refers to item: Line (location: source ID 17, line 64, chars 2474-2501, hits: 0) -- IC 4150 -> Item 99 - - Refers to item: Statement (location: source ID 17, line 64, chars 2474-2501, hits: 0) -- IC 6972 -> Item 100 - - Refers to item: Function "supportsInterface" (location: source ID 17, line 72, chars 2819-3076, hits: 0) -- IC 6975 -> Item 101 - - Refers to item: Line (location: source ID 17, line 73, chars 2943-3069, hits: 0) -- IC 6975 -> Item 102 - - Refers to item: Statement (location: source ID 17, line 73, chars 2943-3069, hits: 0) -- IC 20295 -> Item 103 - - Refers to item: Function "_transfer" (location: source ID 17, line 84, chars 3419-3600, hits: 0) -- IC 20296 -> Item 104 - - Refers to item: Line (location: source ID 17, line 85, chars 3531-3549, hits: 0) -- IC 20296 -> Item 105 - - Refers to item: Statement (location: source ID 17, line 85, chars 3531-3549, hits: 0) -- IC 20337 -> Item 106 - - Refers to item: Line (location: source ID 17, line 86, chars 3559-3593, hits: 0) -- IC 20337 -> Item 107 - - Refers to item: Statement (location: source ID 17, line 86, chars 3559-3593, hits: 0) -- IC 10270 -> Item 108 - - Refers to item: Function "_permit" (location: source ID 17, line 89, chars 3606-4760, hits: 0) -- IC 10271 -> Item 109 - - Refers to item: Line (location: source ID 17, line 90, chars 3724-3750, hits: 0) -- IC 10271 -> Item 110 - - Refers to item: Statement (location: source ID 17, line 90, chars 3724-3750, hits: 0) -- IC 10279 -> Item 111 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 17, line 90, chars 3720-3799, hits: 0) -- IC 10328 -> Item 112 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 17, line 90, chars 3720-3799, hits: 0) -- IC 10279 -> Item 113 - - Refers to item: Line (location: source ID 17, line 91, chars 3766-3788, hits: 0) -- IC 10279 -> Item 114 - - Refers to item: Statement (location: source ID 17, line 91, chars 3766-3788, hits: 0) -- IC 10329 -> Item 115 - - Refers to item: Line (location: source ID 17, line 94, chars 3809-3872, hits: 0) -- IC 10329 -> Item 116 - - Refers to item: Statement (location: source ID 17, line 94, chars 3809-3872, hits: 0) -- IC 10331 -> Item 117 - - Refers to item: Statement (location: source ID 17, line 94, chars 3826-3872, hits: 0) -- IC 10344 -> Item 118 - - Refers to item: Line (location: source ID 17, line 97, chars 3941-3996, hits: 0) -- IC 10344 -> Item 119 - - Refers to item: Statement (location: source ID 17, line 97, chars 3941-3996, hits: 0) -- IC 10368 -> Item 120 - - Refers to item: Branch (branch: 1, path: 0) (location: source ID 17, line 97, chars 3937-4069, hits: 0) -- IC 10383 -> Item 121 - - Refers to item: Branch (branch: 1, path: 1) (location: source ID 17, line 97, chars 3937-4069, hits: 0) -- IC 10368 -> Item 122 - - Refers to item: Line (location: source ID 17, line 98, chars 4012-4038, hits: 0) -- IC 10368 -> Item 123 - - Refers to item: Statement (location: source ID 17, line 98, chars 4012-4038, hits: 0) -- IC 10378 -> Item 124 - - Refers to item: Line (location: source ID 17, line 99, chars 4052-4059, hits: 0) -- IC 10378 -> Item 125 - - Refers to item: Statement (location: source ID 17, line 99, chars 4052-4059, hits: 0) -- IC 10384 -> Item 126 - - Refers to item: Line (location: source ID 17, line 102, chars 4079-4102, hits: 0) -- IC 10384 -> Item 127 - - Refers to item: Statement (location: source ID 17, line 102, chars 4079-4102, hits: 0) -- IC 10386 -> Item 128 - - Refers to item: Line (location: source ID 17, line 105, chars 4153-4169, hits: 0) -- IC 10386 -> Item 129 - - Refers to item: Statement (location: source ID 17, line 105, chars 4153-4169, hits: 0) -- IC 10395 -> Item 130 - - Refers to item: Branch (branch: 2, path: 0) (location: source ID 17, line 105, chars 4149-4399, hits: 0) -- IC 10454 -> Item 131 - - Refers to item: Branch (branch: 2, path: 1) (location: source ID 17, line 105, chars 4149-4399, hits: 0) -- IC 10395 -> Item 132 - - Refers to item: Line (location: source ID 17, line 107, chars 4212-4388, hits: 0) -- IC 10395 -> Item 133 - - Refers to item: Statement (location: source ID 17, line 107, chars 4212-4388, hits: 0) -- IC 10455 -> Item 134 - - Refers to item: Line (location: source ID 17, line 112, chars 4409-4425, hits: 0) -- IC 10455 -> Item 135 - - Refers to item: Statement (location: source ID 17, line 112, chars 4409-4425, hits: 0) -- IC 10464 -> Item 136 - - Refers to item: Branch (branch: 3, path: 0) (location: source ID 17, line 112, chars 4405-4529, hits: 0) -- IC 10480 -> Item 137 - - Refers to item: Branch (branch: 3, path: 1) (location: source ID 17, line 112, chars 4405-4529, hits: 0) -- IC 10464 -> Item 138 - - Refers to item: Line (location: source ID 17, line 114, chars 4474-4518, hits: 0) -- IC 10464 -> Item 139 - - Refers to item: Statement (location: source ID 17, line 114, chars 4474-4518, hits: 0) -- IC 10481 -> Item 140 - - Refers to item: Line (location: source ID 17, line 116, chars 4549-4574, hits: 0) -- IC 10481 -> Item 141 - - Refers to item: Statement (location: source ID 17, line 116, chars 4549-4574, hits: 0) -- IC 10532 -> Item 142 - - Refers to item: Line (location: source ID 17, line 119, chars 4599-4645, hits: 0) -- IC 10532 -> Item 143 - - Refers to item: Statement (location: source ID 17, line 119, chars 4599-4645, hits: 0) -- IC 10547 -> Item 144 - - Refers to item: Branch (branch: 4, path: 0) (location: source ID 17, line 119, chars 4595-4698, hits: 0) -- IC 10561 -> Item 145 - - Refers to item: Branch (branch: 4, path: 1) (location: source ID 17, line 119, chars 4595-4698, hits: 0) -- IC 10547 -> Item 146 - - Refers to item: Line (location: source ID 17, line 120, chars 4661-4687, hits: 0) -- IC 10547 -> Item 147 - - Refers to item: Statement (location: source ID 17, line 120, chars 4661-4687, hits: 0) -- IC 10562 -> Item 148 - - Refers to item: Line (location: source ID 17, line 122, chars 4718-4743, hits: 0) -- IC 10562 -> Item 149 - - Refers to item: Statement (location: source ID 17, line 122, chars 4718-4743, hits: 0) -- IC 17195 -> Item 150 - - Refers to item: Function "_buildPermitDigest" (location: source ID 17, line 133, chars 5176-5415, hits: 0) -- IC 17198 -> Item 151 - - Refers to item: Line (location: source ID 17, line 134, chars 5298-5408, hits: 0) -- IC 17198 -> Item 152 - - Refers to item: Statement (location: source ID 17, line 134, chars 5298-5408, hits: 0) -- IC 18059 -> Item 153 - - Refers to item: Function "_isValidEOASignature" (location: source ID 17, line 143, chars 5726-5927, hits: 0) -- IC 18062 -> Item 154 - - Refers to item: Line (location: source ID 17, line 144, chars 5836-5920, hits: 0) -- IC 18062 -> Item 155 - - Refers to item: Statement (location: source ID 17, line 144, chars 5836-5920, hits: 0) -- IC 17316 -> Item 156 - - Refers to item: Function "_isValidERC1271Signature" (location: source ID 17, line 154, chars 6300-6825, hits: 0) -- IC 17319 -> Item 157 - - Refers to item: Line (location: source ID 17, line 155, chars 6423-6571, hits: 0) -- IC 17319 -> Item 158 - - Refers to item: Statement (location: source ID 17, line 155, chars 6423-6571, hits: 0) -- IC 17322 -> Item 159 - - Refers to item: Statement (location: source ID 17, line 155, chars 6458-6571, hits: 0) -- IC 17547 -> Item 160 - - Refers to item: Line (location: source ID 17, line 159, chars 6586-6613, hits: 0) -- IC 17547 -> Item 161 - - Refers to item: Statement (location: source ID 17, line 159, chars 6586-6613, hits: 0) -- IC 17666 -> Item 162 - - Refers to item: Branch (branch: 5, path: 0) (location: source ID 17, line 159, chars 6582-6796, hits: 0) -- IC 17677 -> Item 163 - - Refers to item: Branch (branch: 5, path: 1) (location: source ID 17, line 159, chars 6582-6796, hits: 0) -- IC 17566 -> Item 164 - - Refers to item: Line (location: source ID 17, line 160, chars 6629-6674, hits: 0) -- IC 17566 -> Item 165 - - Refers to item: Statement (location: source ID 17, line 160, chars 6629-6674, hits: 0) -- IC 17568 -> Item 166 - - Refers to item: Statement (location: source ID 17, line 160, chars 6649-6674, hits: 0) -- IC 17590 -> Item 167 - - Refers to item: Line (location: source ID 17, line 161, chars 6692-6740, hits: 0) -- IC 17590 -> Item 168 - - Refers to item: Statement (location: source ID 17, line 161, chars 6692-6740, hits: 0) -- IC 17666 -> Item 169 - - Refers to item: Branch (branch: 6, path: 0) (location: source ID 17, line 161, chars 6688-6786, hits: 0) -- IC 17677 -> Item 170 - - Refers to item: Branch (branch: 6, path: 1) (location: source ID 17, line 161, chars 6688-6786, hits: 0) -- IC 17666 -> Item 171 - - Refers to item: Line (location: source ID 17, line 162, chars 6760-6771, hits: 0) -- IC 17666 -> Item 172 - - Refers to item: Statement (location: source ID 17, line 162, chars 6760-6771, hits: 0) -- IC 17680 -> Item 173 - - Refers to item: Line (location: source ID 17, line 166, chars 6806-6818, hits: 0) -- IC 17680 -> Item 174 - - Refers to item: Statement (location: source ID 17, line 166, chars 6806-6818, hits: 0) -- IC 2562 -> Item 1523 - - Refers to item: Function "setOperatorAllowlistRegistry" (location: source ID 2, line 94, chars 3760-3928, hits: 0) -- IC 6741 -> Item 1524 - - Refers to item: Line (location: source ID 2, line 95, chars 3872-3921, hits: 0) -- IC 6741 -> Item 1525 - - Refers to item: Statement (location: source ID 2, line 95, chars 3872-3921, hits: 0) -- IC 26509 -> Item 1526 - - Refers to item: Function "supportsInterface" (location: source ID 2, line 102, chars 4071-4222, hits: 0) -- IC 26512 -> Item 1527 - - Refers to item: Line (location: source ID 2, line 103, chars 4172-4215, hits: 0) -- IC 26512 -> Item 1528 - - Refers to item: Statement (location: source ID 2, line 103, chars 4172-4215, hits: 0) -- IC 12322 -> Item 1529 - - Refers to item: Function "_setOperatorAllowlistRegistry" (location: source ID 2, line 110, chars 4419-4842, hits: 0) -- IC 12323 -> Item 1530 - - Refers to item: Line (location: source ID 2, line 111, chars 4509-4593, hits: 0) -- IC 12323 -> Item 1531 - - Refers to item: Statement (location: source ID 2, line 111, chars 4509-4593, hits: 0) -- IC 12481 -> Item 1532 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 2, line 111, chars 4505-4672, hits: 0) -- IC 12530 -> Item 1533 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 2, line 111, chars 4505-4672, hits: 0) -- IC 12481 -> Item 1534 - - Refers to item: Line (location: source ID 2, line 112, chars 4609-4661, hits: 0) -- IC 12481 -> Item 1535 - - Refers to item: Statement (location: source ID 2, line 112, chars 4609-4661, hits: 0) -- IC 12531 -> Item 1536 - - Refers to item: Line (location: source ID 2, line 115, chars 4682-4767, hits: 0) -- IC 12531 -> Item 1537 - - Refers to item: Statement (location: source ID 2, line 115, chars 4682-4767, hits: 0) -- IC 12622 -> Item 1538 - - Refers to item: Line (location: source ID 2, line 116, chars 4777-4835, hits: 0) -- IC 12622 -> Item 1539 - - Refers to item: Statement (location: source ID 2, line 116, chars 4777-4835, hits: 0) -- IC 2534 -> Item 990 - - Refers to item: Function "burnBatch" (location: source ID 16, line 60, chars 1977-2135, hits: 0) -- IC 6656 -> Item 991 - - Refers to item: Line (location: source ID 16, line 61, chars 2049-2059, hits: 0) -- IC 6656 -> Item 992 - - Refers to item: Statement (location: source ID 16, line 61, chars 2049-2059, hits: 0) -- IC 6659 -> Item 993 - - Refers to item: Statement (location: source ID 16, line 61, chars 2061-2080, hits: 0) -- IC 6704 -> Item 994 - - Refers to item: Statement (location: source ID 16, line 61, chars 2082-2085, hits: 0) -- IC 6670 -> Item 995 - - Refers to item: Line (location: source ID 16, line 62, chars 2101-2118, hits: 0) -- IC 6670 -> Item 996 - - Refers to item: Statement (location: source ID 16, line 62, chars 2101-2118, hits: 0) -- IC 1566 -> Item 997 - - Refers to item: Function "burn" (location: source ID 16, line 69, chars 2246-2455, hits: 0) -- IC 4442 -> Item 998 - - Refers to item: Line (location: source ID 16, line 70, chars 2306-2348, hits: 0) -- IC 4442 -> Item 999 - - Refers to item: Statement (location: source ID 16, line 70, chars 2306-2348, hits: 0) -- IC 4463 -> Item 1000 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 16, line 70, chars 2302-2425, hits: 0) -- IC 4523 -> Item 1001 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 16, line 70, chars 2302-2425, hits: 0) -- IC 4463 -> Item 1002 - - Refers to item: Line (location: source ID 16, line 71, chars 2364-2414, hits: 0) -- IC 4463 -> Item 1003 - - Refers to item: Statement (location: source ID 16, line 71, chars 2364-2414, hits: 0) -- IC 4524 -> Item 1004 - - Refers to item: Line (location: source ID 16, line 73, chars 2434-2448, hits: 0) -- IC 4524 -> Item 1005 - - Refers to item: Statement (location: source ID 16, line 73, chars 2434-2448, hits: 0) -- IC 2182 -> Item 1006 - - Refers to item: Function "safeBurn" (location: source ID 16, line 80, chars 2656-2928, hits: 0) -- IC 5567 -> Item 1007 - - Refers to item: Line (location: source ID 16, line 81, chars 2731-2770, hits: 0) -- IC 5567 -> Item 1008 - - Refers to item: Statement (location: source ID 16, line 81, chars 2731-2770, hits: 0) -- IC 5569 -> Item 1009 - - Refers to item: Statement (location: source ID 16, line 81, chars 2754-2770, hits: 0) -- IC 5580 -> Item 1010 - - Refers to item: Line (location: source ID 16, line 82, chars 2784-2805, hits: 0) -- IC 5580 -> Item 1011 - - Refers to item: Statement (location: source ID 16, line 82, chars 2784-2805, hits: 0) -- IC 5631 -> Item 1012 - - Refers to item: Branch (branch: 1, path: 0) (location: source ID 16, line 82, chars 2780-2898, hits: 0) -- IC 5693 -> Item 1013 - - Refers to item: Branch (branch: 1, path: 1) (location: source ID 16, line 82, chars 2780-2898, hits: 0) -- IC 5631 -> Item 1014 - - Refers to item: Line (location: source ID 16, line 83, chars 2821-2887, hits: 0) -- IC 5631 -> Item 1015 - - Refers to item: Statement (location: source ID 16, line 83, chars 2821-2887, hits: 0) -- IC 5694 -> Item 1016 - - Refers to item: Line (location: source ID 16, line 86, chars 2908-2921, hits: 0) -- IC 5694 -> Item 1017 - - Refers to item: Statement (location: source ID 16, line 86, chars 2908-2921, hits: 0) -- IC 1364 -> Item 1018 - - Refers to item: Function "mintBatchByQuantityThreshold" (location: source ID 16, line 92, chars 3053-3163, hits: 0) -- IC 3901 -> Item 1019 - - Refers to item: Line (location: source ID 16, line 93, chars 3141-3156, hits: 0) -- IC 3901 -> Item 1020 - - Refers to item: Statement (location: source ID 16, line 93, chars 3141-3156, hits: 0) -- IC 1622 -> Item 1021 - - Refers to item: Function "exists" (location: source ID 16, line 99, chars 3300-3408, hits: 0) -- IC 4597 -> Item 1022 - - Refers to item: Line (location: source ID 16, line 100, chars 3378-3401, hits: 0) -- IC 4597 -> Item 1023 - - Refers to item: Statement (location: source ID 16, line 100, chars 3378-3401, hits: 0) -- IC 1832 -> Item 1024 - - Refers to item: Function "balanceOf" (location: source ID 16, line 106, chars 3592-3765, hits: 0) -- IC 4956 -> Item 1025 - - Refers to item: Line (location: source ID 16, line 107, chars 3699-3758, hits: 0) -- IC 4956 -> Item 1026 - - Refers to item: Statement (location: source ID 16, line 107, chars 3699-3758, hits: 0) -- IC 1095 -> Item 1027 - - Refers to item: Function "totalSupply" (location: source ID 16, line 113, chars 3948-4105, hits: 0) -- IC 3119 -> Item 1028 - - Refers to item: Line (location: source ID 16, line 114, chars 4039-4098, hits: 0) -- IC 3119 -> Item 1029 - - Refers to item: Statement (location: source ID 16, line 114, chars 4039-4098, hits: 0) -- IC 1726 -> Item 1030 - - Refers to item: Function "ownerOf" (location: source ID 16, line 118, chars 4163-4423, hits: 0) -- IC 4705 -> Item 1031 - - Refers to item: Line (location: source ID 16, line 119, chars 4277-4317, hits: 0) -- IC 4705 -> Item 1032 - - Refers to item: Statement (location: source ID 16, line 119, chars 4277-4317, hits: 0) -- IC 4720 -> Item 1033 - - Refers to item: Branch (branch: 2, path: 0) (location: source ID 16, line 119, chars 4273-4374, hits: 0) -- IC 4735 -> Item 1034 - - Refers to item: Branch (branch: 2, path: 1) (location: source ID 16, line 119, chars 4273-4374, hits: 0) -- IC 4720 -> Item 1035 - - Refers to item: Line (location: source ID 16, line 120, chars 4333-4363, hits: 0) -- IC 4720 -> Item 1036 - - Refers to item: Statement (location: source ID 16, line 120, chars 4333-4363, hits: 0) -- IC 4736 -> Item 1037 - - Refers to item: Line (location: source ID 16, line 122, chars 4383-4416, hits: 0) -- IC 4736 -> Item 1038 - - Refers to item: Statement (location: source ID 16, line 122, chars 4383-4416, hits: 0) -- IC 2352 -> Item 1039 - - Refers to item: Function "tokenURI" (location: source ID 16, line 132, chars 4648-4803, hits: 0) -- IC 6478 -> Item 1040 - - Refers to item: Line (location: source ID 16, line 133, chars 4765-4796, hits: 0) -- IC 6478 -> Item 1041 - - Refers to item: Statement (location: source ID 16, line 133, chars 4765-4796, hits: 0) -- IC 941 -> Item 1042 - - Refers to item: Function "name" (location: source ID 16, line 139, chars 4851-4976, hits: 0) -- IC 2980 -> Item 1043 - - Refers to item: Line (location: source ID 16, line 140, chars 4949-4969, hits: 0) -- IC 2980 -> Item 1044 - - Refers to item: Statement (location: source ID 16, line 140, chars 4949-4969, hits: 0) -- IC 2124 -> Item 1045 - - Refers to item: Function "symbol" (location: source ID 16, line 146, chars 5024-5153, hits: 0) -- IC 5497 -> Item 1046 - - Refers to item: Line (location: source ID 16, line 147, chars 5124-5146, hits: 0) -- IC 5497 -> Item 1047 - - Refers to item: Statement (location: source ID 16, line 147, chars 5124-5146, hits: 0) -- IC 12851 -> Item 1048 - - Refers to item: Function "supportsInterface" (location: source ID 16, line 153, chars 5201-5372, hits: 0) -- IC 12854 -> Item 1049 - - Refers to item: Line (location: source ID 16, line 154, chars 5321-5365, hits: 0) -- IC 12854 -> Item 1050 - - Refers to item: Statement (location: source ID 16, line 154, chars 5321-5365, hits: 0) -- IC 11888 -> Item 1051 - - Refers to item: Function "setApprovalForAll" (location: source ID 16, line 160, chars 5420-5591, hits: 0) -- IC 11889 -> Item 1052 - - Refers to item: Line (location: source ID 16, line 161, chars 5533-5584, hits: 0) -- IC 11889 -> Item 1053 - - Refers to item: Statement (location: source ID 16, line 161, chars 5533-5584, hits: 0) -- IC 1538 -> Item 1054 - - Refers to item: Function "safeTransferFrom" (location: source ID 16, line 167, chars 5639-5807, hits: 0) -- IC 4410 -> Item 1055 - - Refers to item: Line (location: source ID 16, line 168, chars 5761-5800, hits: 0) -- IC 4410 -> Item 1056 - - Refers to item: Statement (location: source ID 16, line 168, chars 5761-5800, hits: 0) -- IC 2324 -> Item 1057 - - Refers to item: Function "safeTransferFrom" (location: source ID 16, line 172, chars 5861-6243, hits: 0) -- IC 6425 -> Item 1058 - - Refers to item: Line (location: source ID 16, line 178, chars 6045-6085, hits: 0) -- IC 6425 -> Item 1059 - - Refers to item: Statement (location: source ID 16, line 178, chars 6045-6085, hits: 0) -- IC 6440 -> Item 1060 - - Refers to item: Branch (branch: 3, path: 0) (location: source ID 16, line 178, chars 6041-6168, hits: 0) -- IC 6456 -> Item 1061 - - Refers to item: Branch (branch: 3, path: 1) (location: source ID 16, line 178, chars 6041-6168, hits: 0) -- IC 6440 -> Item 1062 - - Refers to item: Line (location: source ID 16, line 179, chars 6101-6157, hits: 0) -- IC 6440 -> Item 1063 - - Refers to item: Statement (location: source ID 16, line 179, chars 6101-6157, hits: 0) -- IC 6457 -> Item 1064 - - Refers to item: Line (location: source ID 16, line 181, chars 6177-6236, hits: 0) -- IC 6457 -> Item 1065 - - Refers to item: Statement (location: source ID 16, line 181, chars 6177-6236, hits: 0) -- IC 2620 -> Item 1066 - - Refers to item: Function "isApprovedForAll" (location: source ID 16, line 185, chars 6297-6505, hits: 0) -- IC 6898 -> Item 1067 - - Refers to item: Line (location: source ID 16, line 189, chars 6451-6498, hits: 0) -- IC 6898 -> Item 1068 - - Refers to item: Statement (location: source ID 16, line 189, chars 6451-6498, hits: 0) -- IC 971 -> Item 1069 - - Refers to item: Function "getApproved" (location: source ID 16, line 193, chars 6559-6831, hits: 0) -- IC 2995 -> Item 1070 - - Refers to item: Line (location: source ID 16, line 194, chars 6677-6717, hits: 0) -- IC 2995 -> Item 1071 - - Refers to item: Statement (location: source ID 16, line 194, chars 6677-6717, hits: 0) -- IC 3010 -> Item 1072 - - Refers to item: Branch (branch: 4, path: 0) (location: source ID 16, line 194, chars 6673-6778, hits: 0) -- IC 3025 -> Item 1073 - - Refers to item: Branch (branch: 4, path: 1) (location: source ID 16, line 194, chars 6673-6778, hits: 0) -- IC 3010 -> Item 1074 - - Refers to item: Line (location: source ID 16, line 195, chars 6733-6767, hits: 0) -- IC 3010 -> Item 1075 - - Refers to item: Statement (location: source ID 16, line 195, chars 6733-6767, hits: 0) -- IC 3026 -> Item 1076 - - Refers to item: Line (location: source ID 16, line 197, chars 6787-6824, hits: 0) -- IC 3026 -> Item 1077 - - Refers to item: Statement (location: source ID 16, line 197, chars 6787-6824, hits: 0) -- IC 1019 -> Item 1078 - - Refers to item: Function "approve" (location: source ID 16, line 201, chars 6885-7142, hits: 0) -- IC 3043 -> Item 1079 - - Refers to item: Line (location: source ID 16, line 202, chars 6988-7028, hits: 0) -- IC 3043 -> Item 1080 - - Refers to item: Statement (location: source ID 16, line 202, chars 6988-7028, hits: 0) -- IC 3058 -> Item 1081 - - Refers to item: Branch (branch: 5, path: 0) (location: source ID 16, line 202, chars 6984-7089, hits: 0) -- IC 3072 -> Item 1082 - - Refers to item: Branch (branch: 5, path: 1) (location: source ID 16, line 202, chars 6984-7089, hits: 0) -- IC 3058 -> Item 1083 - - Refers to item: Line (location: source ID 16, line 203, chars 7044-7078, hits: 0) -- IC 3058 -> Item 1084 - - Refers to item: Statement (location: source ID 16, line 203, chars 7044-7078, hits: 0) -- IC 3073 -> Item 1085 - - Refers to item: Line (location: source ID 16, line 205, chars 7098-7135, hits: 0) -- IC 3073 -> Item 1086 - - Refers to item: Statement (location: source ID 16, line 205, chars 7098-7135, hits: 0) -- IC 1153 -> Item 1087 - - Refers to item: Function "transferFrom" (location: source ID 16, line 209, chars 7196-7494, hits: 0) -- IC 3202 -> Item 1088 - - Refers to item: Line (location: source ID 16, line 210, chars 7318-7358, hits: 0) -- IC 3202 -> Item 1089 - - Refers to item: Statement (location: source ID 16, line 210, chars 7318-7358, hits: 0) -- IC 3217 -> Item 1090 - - Refers to item: Branch (branch: 6, path: 0) (location: source ID 16, line 210, chars 7314-7430, hits: 0) -- IC 3232 -> Item 1091 - - Refers to item: Branch (branch: 6, path: 1) (location: source ID 16, line 210, chars 7314-7430, hits: 0) -- IC 3217 -> Item 1092 - - Refers to item: Line (location: source ID 16, line 211, chars 7374-7419, hits: 0) -- IC 3217 -> Item 1093 - - Refers to item: Statement (location: source ID 16, line 211, chars 7374-7419, hits: 0) -- IC 3233 -> Item 1094 - - Refers to item: Line (location: source ID 16, line 213, chars 7439-7487, hits: 0) -- IC 3233 -> Item 1095 - - Refers to item: Statement (location: source ID 16, line 213, chars 7439-7487, hits: 0) -- IC 12837 -> Item 1096 - - Refers to item: Function "_mintByQuantity" (location: source ID 16, line 220, chars 7687-7797, hits: 0) -- IC 12838 -> Item 1097 - - Refers to item: Line (location: source ID 16, line 221, chars 7761-7790, hits: 0) -- IC 12838 -> Item 1098 - - Refers to item: Statement (location: source ID 16, line 221, chars 7761-7790, hits: 0) -- IC 9660 -> Item 1099 - - Refers to item: Function "_safeMintByQuantity" (location: source ID 16, line 228, chars 7995-8113, hits: 0) -- IC 9661 -> Item 1100 - - Refers to item: Line (location: source ID 16, line 229, chars 8073-8106, hits: 0) -- IC 9661 -> Item 1101 - - Refers to item: Statement (location: source ID 16, line 229, chars 8073-8106, hits: 0) -- IC 12223 -> Item 1102 - - Refers to item: Function "_mintBatchByQuantity" (location: source ID 16, line 235, chars 8272-8488, hits: 0) -- IC 12224 -> Item 1103 - - Refers to item: Line (location: source ID 16, line 236, chars 8349-8359, hits: 0) -- IC 12224 -> Item 1104 - - Refers to item: Statement (location: source ID 16, line 236, chars 8349-8359, hits: 0) -- IC 12227 -> Item 1105 - - Refers to item: Statement (location: source ID 16, line 236, chars 8361-8377, hits: 0) -- IC 12299 -> Item 1106 - - Refers to item: Statement (location: source ID 16, line 236, chars 8379-8382, hits: 0) -- IC 12238 -> Item 1107 - - Refers to item: Line (location: source ID 16, line 237, chars 8398-8424, hits: 0) -- IC 12238 -> Item 1108 - - Refers to item: Statement (location: source ID 16, line 237, chars 8398-8424, hits: 0) -- IC 12266 -> Item 1109 - - Refers to item: Line (location: source ID 16, line 238, chars 8438-8471, hits: 0) -- IC 12266 -> Item 1110 - - Refers to item: Statement (location: source ID 16, line 238, chars 8438-8471, hits: 0) -- IC 8378 -> Item 1111 - - Refers to item: Function "_safeMintBatchByQuantity" (location: source ID 16, line 245, chars 8652-8876, hits: 0) -- IC 8379 -> Item 1112 - - Refers to item: Line (location: source ID 16, line 246, chars 8733-8743, hits: 0) -- IC 8379 -> Item 1113 - - Refers to item: Statement (location: source ID 16, line 246, chars 8733-8743, hits: 0) -- IC 8382 -> Item 1114 - - Refers to item: Statement (location: source ID 16, line 246, chars 8745-8761, hits: 0) -- IC 8454 -> Item 1115 - - Refers to item: Statement (location: source ID 16, line 246, chars 8763-8766, hits: 0) -- IC 8393 -> Item 1116 - - Refers to item: Line (location: source ID 16, line 247, chars 8782-8808, hits: 0) -- IC 8393 -> Item 1117 - - Refers to item: Statement (location: source ID 16, line 247, chars 8782-8808, hits: 0) -- IC 8421 -> Item 1118 - - Refers to item: Line (location: source ID 16, line 248, chars 8822-8859, hits: 0) -- IC 8421 -> Item 1119 - - Refers to item: Statement (location: source ID 16, line 248, chars 8822-8859, hits: 0) -- IC 8772 -> Item 1120 - - Refers to item: Function "_mintByID" (location: source ID 16, line 257, chars 9087-9471, hits: 0) -- IC 8773 -> Item 1121 - - Refers to item: Line (location: source ID 16, line 258, chars 9158-9199, hits: 0) -- IC 8773 -> Item 1122 - - Refers to item: Statement (location: source ID 16, line 258, chars 9158-9199, hits: 0) -- IC 8787 -> Item 1123 - - Refers to item: Branch (branch: 7, path: 0) (location: source ID 16, line 258, chars 9154-9274, hits: 0) -- IC 8847 -> Item 1124 - - Refers to item: Branch (branch: 7, path: 1) (location: source ID 16, line 258, chars 9154-9274, hits: 0) -- IC 8787 -> Item 1125 - - Refers to item: Line (location: source ID 16, line 259, chars 9215-9263, hits: 0) -- IC 8787 -> Item 1126 - - Refers to item: Statement (location: source ID 16, line 259, chars 9215-9263, hits: 0) -- IC 8848 -> Item 1127 - - Refers to item: Line (location: source ID 16, line 262, chars 9288-9314, hits: 0) -- IC 8848 -> Item 1128 - - Refers to item: Statement (location: source ID 16, line 262, chars 9288-9314, hits: 0) -- IC 8873 -> Item 1129 - - Refers to item: Branch (branch: 8, path: 0) (location: source ID 16, line 262, chars 9284-9391, hits: 0) -- IC 8933 -> Item 1130 - - Refers to item: Branch (branch: 8, path: 1) (location: source ID 16, line 262, chars 9284-9391, hits: 0) -- IC 8873 -> Item 1131 - - Refers to item: Line (location: source ID 16, line 263, chars 9330-9380, hits: 0) -- IC 8873 -> Item 1132 - - Refers to item: Statement (location: source ID 16, line 263, chars 9330-9380, hits: 0) -- IC 8934 -> Item 1133 - - Refers to item: Line (location: source ID 16, line 266, chars 9409-9429, hits: 0) -- IC 8934 -> Item 1134 - - Refers to item: Statement (location: source ID 16, line 266, chars 9409-9429, hits: 0) -- IC 8958 -> Item 1135 - - Refers to item: Line (location: source ID 16, line 267, chars 9439-9464, hits: 0) -- IC 8958 -> Item 1136 - - Refers to item: Statement (location: source ID 16, line 267, chars 9439-9464, hits: 0) -- IC 11689 -> Item 1137 - - Refers to item: Function "_safeMintByID" (location: source ID 16, line 274, chars 9676-10064, hits: 0) -- IC 11690 -> Item 1138 - - Refers to item: Line (location: source ID 16, line 275, chars 9751-9792, hits: 0) -- IC 11690 -> Item 1139 - - Refers to item: Statement (location: source ID 16, line 275, chars 9751-9792, hits: 0) -- IC 11704 -> Item 1140 - - Refers to item: Branch (branch: 9, path: 0) (location: source ID 16, line 275, chars 9747-9867, hits: 0) -- IC 11764 -> Item 1141 - - Refers to item: Branch (branch: 9, path: 1) (location: source ID 16, line 275, chars 9747-9867, hits: 0) -- IC 11704 -> Item 1142 - - Refers to item: Line (location: source ID 16, line 276, chars 9808-9856, hits: 0) -- IC 11704 -> Item 1143 - - Refers to item: Statement (location: source ID 16, line 276, chars 9808-9856, hits: 0) -- IC 11765 -> Item 1144 - - Refers to item: Line (location: source ID 16, line 279, chars 9881-9907, hits: 0) -- IC 11765 -> Item 1145 - - Refers to item: Statement (location: source ID 16, line 279, chars 9881-9907, hits: 0) -- IC 11790 -> Item 1146 - - Refers to item: Branch (branch: 10, path: 0) (location: source ID 16, line 279, chars 9877-9984, hits: 0) -- IC 11850 -> Item 1147 - - Refers to item: Branch (branch: 10, path: 1) (location: source ID 16, line 279, chars 9877-9984, hits: 0) -- IC 11790 -> Item 1148 - - Refers to item: Line (location: source ID 16, line 280, chars 9923-9973, hits: 0) -- IC 11790 -> Item 1149 - - Refers to item: Statement (location: source ID 16, line 280, chars 9923-9973, hits: 0) -- IC 11851 -> Item 1150 - - Refers to item: Line (location: source ID 16, line 283, chars 9994-10014, hits: 0) -- IC 11851 -> Item 1151 - - Refers to item: Statement (location: source ID 16, line 283, chars 9994-10014, hits: 0) -- IC 11875 -> Item 1152 - - Refers to item: Line (location: source ID 16, line 284, chars 10024-10053, hits: 0) -- IC 11875 -> Item 1153 - - Refers to item: Statement (location: source ID 16, line 284, chars 10024-10053, hits: 0) -- IC 18294 -> Item 1154 - - Refers to item: Function "_mintBatchByID" (location: source ID 16, line 291, chars 10252-10436, hits: 0) -- IC 18295 -> Item 1155 - - Refers to item: Line (location: source ID 16, line 292, chars 10341-10351, hits: 0) -- IC 18295 -> Item 1156 - - Refers to item: Statement (location: source ID 16, line 292, chars 10341-10351, hits: 0) -- IC 18298 -> Item 1157 - - Refers to item: Statement (location: source ID 16, line 292, chars 10353-10372, hits: 0) -- IC 18344 -> Item 1158 - - Refers to item: Statement (location: source ID 16, line 292, chars 10374-10377, hits: 0) -- IC 18309 -> Item 1159 - - Refers to item: Line (location: source ID 16, line 293, chars 10393-10419, hits: 0) -- IC 18309 -> Item 1160 - - Refers to item: Statement (location: source ID 16, line 293, chars 10393-10419, hits: 0) -- IC 13770 -> Item 1161 - - Refers to item: Function "_safeMintBatchByID" (location: source ID 16, line 301, chars 10630-10822, hits: 0) -- IC 13771 -> Item 1162 - - Refers to item: Line (location: source ID 16, line 302, chars 10723-10733, hits: 0) -- IC 13771 -> Item 1163 - - Refers to item: Statement (location: source ID 16, line 302, chars 10723-10733, hits: 0) -- IC 13774 -> Item 1164 - - Refers to item: Statement (location: source ID 16, line 302, chars 10735-10754, hits: 0) -- IC 13820 -> Item 1165 - - Refers to item: Statement (location: source ID 16, line 302, chars 10756-10759, hits: 0) -- IC 13785 -> Item 1166 - - Refers to item: Line (location: source ID 16, line 303, chars 10775-10805, hits: 0) -- IC 13785 -> Item 1167 - - Refers to item: Statement (location: source ID 16, line 303, chars 10775-10805, hits: 0) -- IC 11567 -> Item 1168 - - Refers to item: Function "_mintBatchByIDToMultiple" (location: source ID 16, line 310, chars 10970-11193, hits: 0) -- IC 11568 -> Item 1169 - - Refers to item: Line (location: source ID 16, line 311, chars 11053-11063, hits: 0) -- IC 11568 -> Item 1170 - - Refers to item: Statement (location: source ID 16, line 311, chars 11053-11063, hits: 0) -- IC 11571 -> Item 1171 - - Refers to item: Statement (location: source ID 16, line 311, chars 11065-11081, hits: 0) -- IC 11666 -> Item 1172 - - Refers to item: Statement (location: source ID 16, line 311, chars 11083-11086, hits: 0) -- IC 11582 -> Item 1173 - - Refers to item: Line (location: source ID 16, line 312, chars 11102-11130, hits: 0) -- IC 11582 -> Item 1174 - - Refers to item: Statement (location: source ID 16, line 312, chars 11102-11130, hits: 0) -- IC 11622 -> Item 1175 - - Refers to item: Line (location: source ID 16, line 313, chars 11144-11176, hits: 0) -- IC 11622 -> Item 1176 - - Refers to item: Statement (location: source ID 16, line 313, chars 11144-11176, hits: 0) -- IC 8054 -> Item 1177 - - Refers to item: Function "_safeMintBatchByIDToMultiple" (location: source ID 16, line 320, chars 11346-11577, hits: 0) -- IC 8055 -> Item 1178 - - Refers to item: Line (location: source ID 16, line 321, chars 11433-11443, hits: 0) -- IC 8055 -> Item 1179 - - Refers to item: Statement (location: source ID 16, line 321, chars 11433-11443, hits: 0) -- IC 8058 -> Item 1180 - - Refers to item: Statement (location: source ID 16, line 321, chars 11445-11461, hits: 0) -- IC 8153 -> Item 1181 - - Refers to item: Statement (location: source ID 16, line 321, chars 11463-11466, hits: 0) -- IC 8069 -> Item 1182 - - Refers to item: Line (location: source ID 16, line 322, chars 11482-11510, hits: 0) -- IC 8069 -> Item 1183 - - Refers to item: Statement (location: source ID 16, line 322, chars 11482-11510, hits: 0) -- IC 8109 -> Item 1184 - - Refers to item: Line (location: source ID 16, line 323, chars 11524-11560, hits: 0) -- IC 8109 -> Item 1185 - - Refers to item: Statement (location: source ID 16, line 323, chars 11524-11560, hits: 0) -- IC 10620 -> Item 1186 - - Refers to item: Function "_safeBurnBatch" (location: source ID 16, line 330, chars 11741-12031, hits: 0) -- IC 10621 -> Item 1187 - - Refers to item: Line (location: source ID 16, line 331, chars 11814-11824, hits: 0) -- IC 10621 -> Item 1188 - - Refers to item: Statement (location: source ID 16, line 331, chars 11814-11824, hits: 0) -- IC 10624 -> Item 1189 - - Refers to item: Statement (location: source ID 16, line 331, chars 11826-11842, hits: 0) -- IC 10791 -> Item 1190 - - Refers to item: Statement (location: source ID 16, line 331, chars 11844-11847, hits: 0) -- IC 10635 -> Item 1191 - - Refers to item: Line (location: source ID 16, line 332, chars 11863-11891, hits: 0) -- IC 10635 -> Item 1192 - - Refers to item: Statement (location: source ID 16, line 332, chars 11863-11891, hits: 0) -- IC 10675 -> Item 1193 - - Refers to item: Line (location: source ID 16, line 333, chars 11910-11920, hits: 0) -- IC 10675 -> Item 1194 - - Refers to item: Statement (location: source ID 16, line 333, chars 11910-11920, hits: 0) -- IC 10678 -> Item 1195 - - Refers to item: Statement (location: source ID 16, line 333, chars 11922-11943, hits: 0) -- IC 10770 -> Item 1196 - - Refers to item: Statement (location: source ID 16, line 333, chars 11945-11948, hits: 0) -- IC 10703 -> Item 1197 - - Refers to item: Line (location: source ID 16, line 334, chars 11968-12000, hits: 0) -- IC 10703 -> Item 1198 - - Refers to item: Statement (location: source ID 16, line 334, chars 11968-12000, hits: 0) -- IC 23261 -> Item 1199 - - Refers to item: Function "_transfer" (location: source ID 16, line 340, chars 12085-12383, hits: 0) -- IC 23262 -> Item 1200 - - Refers to item: Line (location: source ID 16, line 341, chars 12206-12246, hits: 0) -- IC 23262 -> Item 1201 - - Refers to item: Statement (location: source ID 16, line 341, chars 12206-12246, hits: 0) -- IC 23277 -> Item 1202 - - Refers to item: Branch (branch: 11, path: 0) (location: source ID 16, line 341, chars 12202-12308, hits: 0) -- IC 23292 -> Item 1203 - - Refers to item: Branch (branch: 11, path: 1) (location: source ID 16, line 341, chars 12202-12308, hits: 0) -- IC 23277 -> Item 1204 - - Refers to item: Line (location: source ID 16, line 342, chars 12262-12297, hits: 0) -- IC 23277 -> Item 1205 - - Refers to item: Statement (location: source ID 16, line 342, chars 12262-12297, hits: 0) -- IC 23293 -> Item 1206 - - Refers to item: Line (location: source ID 16, line 344, chars 12328-12366, hits: 0) -- IC 23293 -> Item 1207 - - Refers to item: Statement (location: source ID 16, line 344, chars 12328-12366, hits: 0) -- IC 9024 -> Item 1208 - - Refers to item: Function "_burn" (location: source ID 16, line 352, chars 12644-12974, hits: 0) -- IC 9025 -> Item 1209 - - Refers to item: Line (location: source ID 16, line 353, chars 12743-12783, hits: 0) -- IC 9025 -> Item 1210 - - Refers to item: Statement (location: source ID 16, line 353, chars 12743-12783, hits: 0) -- IC 9040 -> Item 1211 - - Refers to item: Branch (branch: 12, path: 0) (location: source ID 16, line 353, chars 12739-12905, hits: 0) -- IC 9097 -> Item 1212 - - Refers to item: Branch (branch: 12, path: 1) (location: source ID 16, line 353, chars 12739-12905, hits: 0) -- IC 9040 -> Item 1213 - - Refers to item: Line (location: source ID 16, line 354, chars 12799-12820, hits: 0) -- IC 9040 -> Item 1214 - - Refers to item: Statement (location: source ID 16, line 354, chars 12799-12820, hits: 0) -- IC 9049 -> Item 1215 - - Refers to item: Line (location: source ID 16, line 355, chars 12834-12860, hits: 0) -- IC 9049 -> Item 1216 - - Refers to item: Statement (location: source ID 16, line 355, chars 12834-12860, hits: 0) -- IC 9069 -> Item 1217 - - Refers to item: Line (location: source ID 16, line 356, chars 12874-12894, hits: 0) -- IC 9069 -> Item 1218 - - Refers to item: Statement (location: source ID 16, line 356, chars 12874-12894, hits: 0) -- IC 9098 -> Item 1219 - - Refers to item: Line (location: source ID 16, line 358, chars 12925-12957, hits: 0) -- IC 9098 -> Item 1220 - - Refers to item: Statement (location: source ID 16, line 358, chars 12925-12957, hits: 0) -- IC 19564 -> Item 1221 - - Refers to item: Function "_approve" (location: source ID 16, line 363, chars 13028-13290, hits: 0) -- IC 19565 -> Item 1222 - - Refers to item: Line (location: source ID 16, line 364, chars 13134-13174, hits: 0) -- IC 19565 -> Item 1223 - - Refers to item: Statement (location: source ID 16, line 364, chars 13134-13174, hits: 0) -- IC 19580 -> Item 1224 - - Refers to item: Branch (branch: 13, path: 0) (location: source ID 16, line 364, chars 13130-13236, hits: 0) -- IC 19594 -> Item 1225 - - Refers to item: Branch (branch: 13, path: 1) (location: source ID 16, line 364, chars 13130-13236, hits: 0) -- IC 19580 -> Item 1226 - - Refers to item: Line (location: source ID 16, line 365, chars 13190-13225, hits: 0) -- IC 19580 -> Item 1227 - - Refers to item: Statement (location: source ID 16, line 365, chars 13190-13225, hits: 0) -- IC 19595 -> Item 1228 - - Refers to item: Line (location: source ID 16, line 367, chars 13245-13283, hits: 0) -- IC 19595 -> Item 1229 - - Refers to item: Statement (location: source ID 16, line 367, chars 13245-13283, hits: 0) -- IC 18420 -> Item 1230 - - Refers to item: Function "_safeTransfer" (location: source ID 16, line 371, chars 13344-13719, hits: 0) -- IC 18421 -> Item 1231 - - Refers to item: Line (location: source ID 16, line 377, chars 13527-13567, hits: 0) -- IC 18421 -> Item 1232 - - Refers to item: Statement (location: source ID 16, line 377, chars 13527-13567, hits: 0) -- IC 18436 -> Item 1233 - - Refers to item: Branch (branch: 14, path: 0) (location: source ID 16, line 377, chars 13523-13647, hits: 0) -- IC 18452 -> Item 1234 - - Refers to item: Branch (branch: 14, path: 1) (location: source ID 16, line 377, chars 13523-13647, hits: 0) -- IC 18436 -> Item 1235 - - Refers to item: Line (location: source ID 16, line 378, chars 13583-13636, hits: 0) -- IC 18436 -> Item 1236 - - Refers to item: Statement (location: source ID 16, line 378, chars 13583-13636, hits: 0) -- IC 18453 -> Item 1237 - - Refers to item: Line (location: source ID 16, line 380, chars 13656-13712, hits: 0) -- IC 18453 -> Item 1238 - - Refers to item: Statement (location: source ID 16, line 380, chars 13656-13712, hits: 0) -- IC 21760 -> Item 1242 - - Refers to item: Function "_safeMint" (location: source ID 16, line 398, chars 14511-14676, hits: 0) -- IC 21761 -> Item 1243 - - Refers to item: Line (location: source ID 16, line 399, chars 14634-14669, hits: 0) -- IC 21761 -> Item 1244 - - Refers to item: Statement (location: source ID 16, line 399, chars 14634-14669, hits: 0) -- IC 26495 -> Item 1245 - - Refers to item: Function "_mint" (location: source ID 16, line 405, chars 14867-14997, hits: 0) -- IC 26496 -> Item 1246 - - Refers to item: Line (location: source ID 16, line 406, chars 14966-14990, hits: 0) -- IC 26496 -> Item 1247 - - Refers to item: Statement (location: source ID 16, line 406, chars 14966-14990, hits: 0) -- IC 8971 -> Item 1248 - - Refers to item: Function "_isApprovedOrOwner" (location: source ID 16, line 410, chars 15051-15400, hits: 0) -- IC 8974 -> Item 1249 - - Refers to item: Line (location: source ID 16, line 414, chars 15214-15254, hits: 0) -- IC 8974 -> Item 1250 - - Refers to item: Statement (location: source ID 16, line 414, chars 15214-15254, hits: 0) -- IC 8989 -> Item 1251 - - Refers to item: Branch (branch: 15, path: 0) (location: source ID 16, line 414, chars 15210-15331, hits: 0) -- IC 9005 -> Item 1252 - - Refers to item: Branch (branch: 15, path: 1) (location: source ID 16, line 414, chars 15210-15331, hits: 0) -- IC 8989 -> Item 1253 - - Refers to item: Line (location: source ID 16, line 415, chars 15270-15320, hits: 0) -- IC 8989 -> Item 1254 - - Refers to item: Statement (location: source ID 16, line 415, chars 15270-15320, hits: 0) -- IC 9006 -> Item 1255 - - Refers to item: Line (location: source ID 16, line 417, chars 15340-15393, hits: 0) -- IC 9006 -> Item 1256 - - Refers to item: Statement (location: source ID 16, line 417, chars 15340-15393, hits: 0) -- IC 9533 -> Item 1257 - - Refers to item: Function "_exists" (location: source ID 16, line 421, chars 15454-15777, hits: 0) -- IC 9536 -> Item 1258 - - Refers to item: Line (location: source ID 16, line 422, chars 15575-15615, hits: 0) -- IC 9536 -> Item 1259 - - Refers to item: Statement (location: source ID 16, line 422, chars 15575-15615, hits: 0) -- IC 9614 -> Item 1260 - - Refers to item: Branch (branch: 16, path: 0) (location: source ID 16, line 422, chars 15571-15720, hits: 0) -- IC 9636 -> Item 1261 - - Refers to item: Branch (branch: 16, path: 1) (location: source ID 16, line 422, chars 15571-15720, hits: 0) -- IC 9551 -> Item 1262 - - Refers to item: Line (location: source ID 16, line 423, chars 15631-15709, hits: 0) -- IC 9551 -> Item 1263 - - Refers to item: Statement (location: source ID 16, line 423, chars 15631-15709, hits: 0) -- IC 9644 -> Item 1264 - - Refers to item: Line (location: source ID 16, line 425, chars 15729-15770, hits: 0) -- IC 9644 -> Item 1265 - - Refers to item: Statement (location: source ID 16, line 425, chars 15729-15770, hits: 0) -- IC 17170 -> Item 1266 - - Refers to item: Function "_startTokenId" (location: source ID 16, line 429, chars 15876-16015, hits: 0) -- IC 17173 -> Item 1267 - - Refers to item: Line (location: source ID 16, line 430, chars 15971-16008, hits: 0) -- IC 17173 -> Item 1268 - - Refers to item: Statement (location: source ID 16, line 430, chars 15971-16008, hits: 0) -- IC 17185 -> Item 1275 - - Refers to item: Function "_nextTokenId" (location: source ID 23, line 72, chars 2499-2600, hits: 0) -- IC 17188 -> Item 1276 - - Refers to item: Line (location: source ID 23, line 73, chars 2573-2593, hits: 0) -- IC 17188 -> Item 1277 - - Refers to item: Statement (location: source ID 23, line 73, chars 2573-2593, hits: 0) -- IC 13609 -> Item 1278 - - Refers to item: Function "_totalMinted" (location: source ID 23, line 79, chars 2693-2812, hits: 0) -- IC 13612 -> Item 1279 - - Refers to item: Line (location: source ID 23, line 80, chars 2767-2805, hits: 0) -- IC 13612 -> Item 1280 - - Refers to item: Statement (location: source ID 23, line 80, chars 2767-2805, hits: 0) -- IC 22665 -> Item 1281 - - Refers to item: Function "supportsInterface" (location: source ID 23, line 86, chars 2879-3179, hits: 0) -- IC 22668 -> Item 1282 - - Refers to item: Line (location: source ID 23, line 87, chars 2997-3172, hits: 0) -- IC 22668 -> Item 1283 - - Refers to item: Statement (location: source ID 23, line 87, chars 2997-3172, hits: 0) -- IC 9832 -> Item 1284 - - Refers to item: Function "balanceOf" (location: source ID 23, line 96, chars 3238-3663, hits: 0) -- IC 9835 -> Item 1285 - - Refers to item: Line (location: source ID 23, line 97, chars 3326-3403, hits: 0) -- IC 9835 -> Item 1286 - - Refers to item: Statement (location: source ID 23, line 97, chars 3326-3403, hits: 0) -- IC 9886 -> Item 1287 - - Refers to item: Branch (branch: 0, path: 0) (location: source ID 23, line 97, chars 3326-3403, hits: 0) -- IC 9944 -> Item 1288 - - Refers to item: Branch (branch: 0, path: 1) (location: source ID 23, line 97, chars 3326-3403, hits: 0) -- IC 9945 -> Item 1289 - - Refers to item: Line (location: source ID 23, line 99, chars 3414-3424, hits: 0) -- IC 9945 -> Item 1290 - - Refers to item: Statement (location: source ID 23, line 99, chars 3414-3424, hits: 0) -- IC 9947 -> Item 1291 - - Refers to item: Line (location: source ID 23, line 100, chars 3439-3463, hits: 0) -- IC 9947 -> Item 1292 - - Refers to item: Statement (location: source ID 23, line 100, chars 3439-3463, hits: 0) -- IC 9948 -> Item 1293 - - Refers to item: Statement (location: source ID 23, line 100, chars 3448-3463, hits: 0) -- IC 9959 -> Item 1294 - - Refers to item: Statement (location: source ID 23, line 100, chars 3465-3483, hits: 0) -- IC 10061 -> Item 1295 - - Refers to item: Statement (location: source ID 23, line 100, chars 3485-3488, hits: 0) -- IC 9974 -> Item 1296 - - Refers to item: Line (location: source ID 23, line 101, chars 3508-3518, hits: 0) -- IC 9974 -> Item 1297 - - Refers to item: Statement (location: source ID 23, line 101, chars 3508-3518, hits: 0) -- IC 10047 -> Item 1298 - - Refers to item: Branch (branch: 1, path: 0) (location: source ID 23, line 101, chars 3504-3625, hits: 0) -- IC 10059 -> Item 1299 - - Refers to item: Branch (branch: 1, path: 1) (location: source ID 23, line 101, chars 3504-3625, hits: 0) -- IC 9988 -> Item 1300 - - Refers to item: Line (location: source ID 23, line 102, chars 3542-3561, hits: 0) -- IC 9988 -> Item 1301 - - Refers to item: Statement (location: source ID 23, line 102, chars 3542-3561, hits: 0) -- IC 10047 -> Item 1302 - - Refers to item: Branch (branch: 2, path: 0) (location: source ID 23, line 102, chars 3538-3611, hits: 0) -- IC 10059 -> Item 1303 - - Refers to item: Branch (branch: 2, path: 1) (location: source ID 23, line 102, chars 3538-3611, hits: 0) -- IC 10047 -> Item 1304 - - Refers to item: Line (location: source ID 23, line 103, chars 3585-3592, hits: 0) -- IC 10047 -> Item 1305 - - Refers to item: Statement (location: source ID 23, line 103, chars 3585-3592, hits: 0) -- IC 10079 -> Item 1306 - - Refers to item: Line (location: source ID 23, line 107, chars 3644-3656, hits: 0) -- IC 10079 -> Item 1307 - - Refers to item: Statement (location: source ID 23, line 107, chars 3644-3656, hits: 0) -- IC 9808 -> Item 1308 - - Refers to item: Function "ownerOf" (location: source ID 23, line 113, chars 3720-3889, hits: 0) -- IC 9811 -> Item 1309 - - Refers to item: Line (location: source ID 23, line 114, chars 3811-3860, hits: 0) -- IC 9811 -> Item 1310 - - Refers to item: Statement (location: source ID 23, line 114, chars 3811-3860, hits: 0) -- IC 9812 -> Item 1311 - - Refers to item: Statement (location: source ID 23, line 114, chars 3831-3860, hits: 0) -- IC 9824 -> Item 1312 - - Refers to item: Line (location: source ID 23, line 115, chars 3870-3882, hits: 0) -- IC 9824 -> Item 1313 - - Refers to item: Statement (location: source ID 23, line 115, chars 3870-3882, hits: 0) -- IC 17025 -> Item 1314 - - Refers to item: Function "_ownerAndBatchHeadOf" (location: source ID 23, line 118, chars 3895-4190, hits: 0) -- IC 17029 -> Item 1315 - - Refers to item: Line (location: source ID 23, line 119, chars 4016-4089, hits: 0) -- IC 17029 -> Item 1316 - - Refers to item: Statement (location: source ID 23, line 119, chars 4016-4089, hits: 0) -- IC 17042 -> Item 1317 - - Refers to item: Branch (branch: 3, path: 0) (location: source ID 23, line 119, chars 4016-4089, hits: 0) -- IC 17100 -> Item 1318 - - Refers to item: Branch (branch: 3, path: 1) (location: source ID 23, line 119, chars 4016-4089, hits: 0) -- IC 17101 -> Item 1319 - - Refers to item: Line (location: source ID 23, line 120, chars 4099-4140, hits: 0) -- IC 17101 -> Item 1320 - - Refers to item: Statement (location: source ID 23, line 120, chars 4099-4140, hits: 0) -- IC 17112 -> Item 1321 - - Refers to item: Line (location: source ID 23, line 121, chars 4150-4183, hits: 0) -- IC 17112 -> Item 1322 - - Refers to item: Statement (location: source ID 23, line 121, chars 4150-4183, hits: 0) -- IC 7722 -> Item 1342 - - Refers to item: Function "approve" (location: source ID 23, line 160, chars 5296-5696, hits: 0) -- IC 7723 -> Item 1343 - - Refers to item: Line (location: source ID 23, line 161, chars 5376-5408, hits: 0) -- IC 7723 -> Item 1344 - - Refers to item: Statement (location: source ID 23, line 161, chars 5376-5408, hits: 0) -- IC 7725 -> Item 1345 - - Refers to item: Statement (location: source ID 23, line 161, chars 5392-5408, hits: 0) -- IC 7736 -> Item 1346 - - Refers to item: Line (location: source ID 23, line 162, chars 5418-5478, hits: 0) -- IC 7736 -> Item 1347 - - Refers to item: Statement (location: source ID 23, line 162, chars 5418-5478, hits: 0) -- IC 7787 -> Item 1348 - - Refers to item: Branch (branch: 5, path: 0) (location: source ID 23, line 162, chars 5418-5478, hits: 0) -- IC 7845 -> Item 1349 - - Refers to item: Branch (branch: 5, path: 1) (location: source ID 23, line 162, chars 5418-5478, hits: 0) -- IC 7846 -> Item 1350 - - Refers to item: Line (location: source ID 23, line 164, chars 5489-5657, hits: 0) -- IC 7846 -> Item 1351 - - Refers to item: Statement (location: source ID 23, line 164, chars 5489-5657, hits: 0) -- IC 7928 -> Item 1352 - - Refers to item: Branch (branch: 6, path: 0) (location: source ID 23, line 164, chars 5489-5657, hits: 0) -- IC 7986 -> Item 1353 - - Refers to item: Branch (branch: 6, path: 1) (location: source ID 23, line 164, chars 5489-5657, hits: 0) -- IC 7987 -> Item 1354 - - Refers to item: Line (location: source ID 23, line 169, chars 5668-5689, hits: 0) -- IC 7987 -> Item 1355 - - Refers to item: Statement (location: source ID 23, line 169, chars 5668-5689, hits: 0) -- IC 7310 -> Item 1356 - - Refers to item: Function "getApproved" (location: source ID 23, line 175, chars 5757-5977, hits: 0) -- IC 7313 -> Item 1357 - - Refers to item: Line (location: source ID 23, line 176, chars 5852-5928, hits: 0) -- IC 7313 -> Item 1358 - - Refers to item: Statement (location: source ID 23, line 176, chars 5852-5928, hits: 0) -- IC 7326 -> Item 1359 - - Refers to item: Branch (branch: 7, path: 0) (location: source ID 23, line 176, chars 5852-5928, hits: 0) -- IC 7384 -> Item 1360 - - Refers to item: Branch (branch: 7, path: 1) (location: source ID 23, line 176, chars 5852-5928, hits: 0) -- IC 7385 -> Item 1361 - - Refers to item: Line (location: source ID 23, line 178, chars 5939-5970, hits: 0) -- IC 7385 -> Item 1362 - - Refers to item: Statement (location: source ID 23, line 178, chars 5939-5970, hits: 0) -- IC 8272 -> Item 1375 - - Refers to item: Function "transferFrom" (location: source ID 23, line 201, chars 6627-6930, hits: 0) -- IC 8273 -> Item 1376 - - Refers to item: Line (location: source ID 23, line 203, chars 6778-6884, hits: 0) -- IC 8273 -> Item 1377 - - Refers to item: Statement (location: source ID 23, line 203, chars 6778-6884, hits: 0) -- IC 8294 -> Item 1378 - - Refers to item: Branch (branch: 9, path: 0) (location: source ID 23, line 203, chars 6778-6884, hits: 0) -- IC 8352 -> Item 1379 - - Refers to item: Branch (branch: 9, path: 1) (location: source ID 23, line 203, chars 6778-6884, hits: 0) -- IC 8353 -> Item 1380 - - Refers to item: Line (location: source ID 23, line 205, chars 6895-6923, hits: 0) -- IC 8353 -> Item 1381 - - Refers to item: Statement (location: source ID 23, line 205, chars 6895-6923, hits: 0) -- IC 12000 -> Item 1385 - - Refers to item: Function "safeTransferFrom" (location: source ID 23, line 218, chars 7211-7496, hits: 0) -- IC 12001 -> Item 1386 - - Refers to item: Line (location: source ID 23, line 219, chars 7334-7440, hits: 0) -- IC 12001 -> Item 1387 - - Refers to item: Statement (location: source ID 23, line 219, chars 7334-7440, hits: 0) -- IC 12022 -> Item 1388 - - Refers to item: Branch (branch: 10, path: 0) (location: source ID 23, line 219, chars 7334-7440, hits: 0) -- IC 12080 -> Item 1389 - - Refers to item: Branch (branch: 10, path: 1) (location: source ID 23, line 219, chars 7334-7440, hits: 0) -- IC 12081 -> Item 1390 - - Refers to item: Line (location: source ID 23, line 220, chars 7450-7489, hits: 0) -- IC 12081 -> Item 1391 - - Refers to item: Statement (location: source ID 23, line 220, chars 7450-7489, hits: 0) -- IC 22232 -> Item 1392 - - Refers to item: Function "_safeTransfer" (location: source ID 23, line 241, chars 8358-8667, hits: 0) -- IC 22233 -> Item 1393 - - Refers to item: Line (location: source ID 23, line 242, chars 8471-8499, hits: 0) -- IC 22233 -> Item 1394 - - Refers to item: Statement (location: source ID 23, line 242, chars 8471-8499, hits: 0) -- IC 22244 -> Item 1395 - - Refers to item: Line (location: source ID 23, line 243, chars 8509-8660, hits: 0) -- IC 22244 -> Item 1396 - - Refers to item: Statement (location: source ID 23, line 243, chars 8509-8660, hits: 0) -- IC 22262 -> Item 1397 - - Refers to item: Branch (branch: 11, path: 0) (location: source ID 23, line 243, chars 8509-8660, hits: 0) -- IC 22320 -> Item 1398 - - Refers to item: Branch (branch: 11, path: 1) (location: source ID 23, line 243, chars 8509-8660, hits: 0) -- IC 20948 -> Item 1399 - - Refers to item: Function "_exists" (location: source ID 23, line 256, chars 8913-9062, hits: 0) -- IC 20951 -> Item 1400 - - Refers to item: Line (location: source ID 23, line 257, chars 8994-9055, hits: 0) -- IC 20951 -> Item 1401 - - Refers to item: Statement (location: source ID 23, line 257, chars 8994-9055, hits: 0) -- IC 16106 -> Item 1402 - - Refers to item: Function "_isApprovedOrOwner" (location: source ID 23, line 267, chars 9220-9560, hits: 0) -- IC 16109 -> Item 1403 - - Refers to item: Line (location: source ID 23, line 268, chars 9329-9405, hits: 0) -- IC 16109 -> Item 1404 - - Refers to item: Statement (location: source ID 23, line 268, chars 9329-9405, hits: 0) -- IC 16122 -> Item 1405 - - Refers to item: Branch (branch: 12, path: 0) (location: source ID 23, line 268, chars 9329-9405, hits: 0) -- IC 16180 -> Item 1406 - - Refers to item: Branch (branch: 12, path: 1) (location: source ID 23, line 268, chars 9329-9405, hits: 0) -- IC 16181 -> Item 1407 - - Refers to item: Line (location: source ID 23, line 269, chars 9415-9447, hits: 0) -- IC 16181 -> Item 1408 - - Refers to item: Statement (location: source ID 23, line 269, chars 9415-9447, hits: 0) -- IC 16183 -> Item 1409 - - Refers to item: Statement (location: source ID 23, line 269, chars 9431-9447, hits: 0) -- IC 16194 -> Item 1410 - - Refers to item: Line (location: source ID 23, line 270, chars 9457-9553, hits: 0) -- IC 16194 -> Item 1411 - - Refers to item: Statement (location: source ID 23, line 270, chars 9457-9553, hits: 0) -- IC 16995 -> Item 1412 - - Refers to item: Function "_safeMint" (location: source ID 23, line 283, chars 9911-10031, hits: 0) -- IC 16996 -> Item 1413 - - Refers to item: Line (location: source ID 23, line 284, chars 9987-10024, hits: 0) -- IC 16996 -> Item 1414 - - Refers to item: Statement (location: source ID 23, line 284, chars 9987-10024, hits: 0) -- IC 20986 -> Item 1415 - - Refers to item: Function "_safeMint" (location: source ID 23, line 287, chars 10037-10534, hits: 0) -- IC 20987 -> Item 1416 - - Refers to item: Line (location: source ID 23, line 288, chars 10133-10169, hits: 0) -- IC 20987 -> Item 1417 - - Refers to item: Statement (location: source ID 23, line 288, chars 10133-10169, hits: 0) -- IC 20989 -> Item 1418 - - Refers to item: Statement (location: source ID 23, line 288, chars 10155-10169, hits: 0) -- IC 20999 -> Item 1419 - - Refers to item: Line (location: source ID 23, line 291, chars 10320-10349, hits: 0) -- IC 20999 -> Item 1420 - - Refers to item: Statement (location: source ID 23, line 291, chars 10320-10349, hits: 0) -- IC 21009 -> Item 1421 - - Refers to item: Line (location: source ID 23, line 292, chars 10359-10527, hits: 0) -- IC 21009 -> Item 1422 - - Refers to item: Statement (location: source ID 23, line 292, chars 10359-10527, hits: 0) -- IC 21027 -> Item 1423 - - Refers to item: Branch (branch: 13, path: 0) (location: source ID 23, line 292, chars 10359-10527, hits: 0) -- IC 21085 -> Item 1424 - - Refers to item: Branch (branch: 13, path: 1) (location: source ID 23, line 292, chars 10359-10527, hits: 0) -- IC 18840 -> Item 1425 - - Refers to item: Function "_mint" (location: source ID 23, line 298, chars 10540-12535, hits: 0) -- IC 18841 -> Item 1426 - - Refers to item: Line (location: source ID 23, line 299, chars 10612-10648, hits: 0) -- IC 18841 -> Item 1427 - - Refers to item: Statement (location: source ID 23, line 299, chars 10612-10648, hits: 0) -- IC 18843 -> Item 1428 - - Refers to item: Statement (location: source ID 23, line 299, chars 10634-10648, hits: 0) -- IC 18853 -> Item 1429 - - Refers to item: Line (location: source ID 23, line 301, chars 10659-10721, hits: 0) -- IC 18853 -> Item 1430 - - Refers to item: Statement (location: source ID 23, line 301, chars 10659-10721, hits: 0) -- IC 18861 -> Item 1431 - - Refers to item: Branch (branch: 14, path: 0) (location: source ID 23, line 301, chars 10659-10721, hits: 0) -- IC 18919 -> Item 1432 - - Refers to item: Branch (branch: 14, path: 1) (location: source ID 23, line 301, chars 10659-10721, hits: 0) -- IC 18920 -> Item 1433 - - Refers to item: Line (location: source ID 23, line 302, chars 10731-10795, hits: 0) -- IC 18920 -> Item 1434 - - Refers to item: Statement (location: source ID 23, line 302, chars 10731-10795, hits: 0) -- IC 18972 -> Item 1435 - - Refers to item: Branch (branch: 15, path: 0) (location: source ID 23, line 302, chars 10731-10795, hits: 0) -- IC 19030 -> Item 1436 - - Refers to item: Branch (branch: 15, path: 1) (location: source ID 23, line 302, chars 10731-10795, hits: 0) -- IC 19031 -> Item 1437 - - Refers to item: Line (location: source ID 23, line 304, chars 10806-10866, hits: 0) -- IC 19031 -> Item 1438 - - Refers to item: Statement (location: source ID 23, line 304, chars 10806-10866, hits: 0) -- IC 19044 -> Item 1439 - - Refers to item: Line (location: source ID 23, line 305, chars 10876-10901, hits: 0) -- IC 19044 -> Item 1440 - - Refers to item: Statement (location: source ID 23, line 305, chars 10876-10901, hits: 0) -- IC 19069 -> Item 1441 - - Refers to item: Line (location: source ID 23, line 306, chars 10911-10936, hits: 0) -- IC 19069 -> Item 1442 - - Refers to item: Statement (location: source ID 23, line 306, chars 10911-10936, hits: 0) -- IC 19151 -> Item 1443 - - Refers to item: Line (location: source ID 23, line 307, chars 10946-10973, hits: 0) -- IC 19151 -> Item 1444 - - Refers to item: Statement (location: source ID 23, line 307, chars 10946-10973, hits: 0) -- IC 19171 -> Item 1445 - - Refers to item: Line (location: source ID 23, line 309, chars 10984-11000, hits: 0) -- IC 19171 -> Item 1446 - - Refers to item: Statement (location: source ID 23, line 309, chars 10984-11000, hits: 0) -- IC 19173 -> Item 1447 - - Refers to item: Line (location: source ID 23, line 310, chars 11010-11046, hits: 0) -- IC 19173 -> Item 1448 - - Refers to item: Statement (location: source ID 23, line 310, chars 11010-11046, hits: 0) -- IC 19174 -> Item 1449 - - Refers to item: Statement (location: source ID 23, line 310, chars 11024-11046, hits: 0) -- IC 19188 -> Item 1450 - - Refers to item: Line (location: source ID 23, line 318, chars 11503-11540, hits: 0) -- IC 19188 -> Item 1451 - - Refers to item: Statement (location: source ID 23, line 318, chars 11503-11540, hits: 0) -- IC 19319 -> Item 1452 - - Refers to item: Line (location: source ID 23, line 342, chars 12469-12528, hits: 0) -- IC 19319 -> Item 1453 - - Refers to item: Statement (location: source ID 23, line 342, chars 12469-12528, hits: 0) -- IC 25699 -> Item 1454 - - Refers to item: Function "_transfer" (location: source ID 23, line 356, chars 12859-13793, hits: 0) -- IC 25700 -> Item 1455 - - Refers to item: Line (location: source ID 23, line 357, chars 12948-13021, hits: 0) -- IC 25700 -> Item 1456 - - Refers to item: Statement (location: source ID 23, line 357, chars 12948-13021, hits: 0) -- IC 25703 -> Item 1457 - - Refers to item: Statement (location: source ID 23, line 357, chars 12992-13021, hits: 0) -- IC 25716 -> Item 1458 - - Refers to item: Line (location: source ID 23, line 359, chars 13032-13102, hits: 0) -- IC 25716 -> Item 1459 - - Refers to item: Statement (location: source ID 23, line 359, chars 13032-13102, hits: 0) -- IC 25767 -> Item 1460 - - Refers to item: Branch (branch: 16, path: 0) (location: source ID 23, line 359, chars 13032-13102, hits: 0) -- IC 25825 -> Item 1461 - - Refers to item: Branch (branch: 16, path: 1) (location: source ID 23, line 359, chars 13032-13102, hits: 0) -- IC 25826 -> Item 1462 - - Refers to item: Line (location: source ID 23, line 360, chars 13112-13180, hits: 0) -- IC 25826 -> Item 1463 - - Refers to item: Statement (location: source ID 23, line 360, chars 13112-13180, hits: 0) -- IC 25878 -> Item 1464 - - Refers to item: Branch (branch: 17, path: 0) (location: source ID 23, line 360, chars 13112-13180, hits: 0) -- IC 25936 -> Item 1465 - - Refers to item: Branch (branch: 17, path: 1) (location: source ID 23, line 360, chars 13112-13180, hits: 0) -- IC 25937 -> Item 1466 - - Refers to item: Line (location: source ID 23, line 362, chars 13191-13234, hits: 0) -- IC 25937 -> Item 1467 - - Refers to item: Statement (location: source ID 23, line 362, chars 13191-13234, hits: 0) -- IC 25950 -> Item 1468 - - Refers to item: Line (location: source ID 23, line 365, chars 13296-13325, hits: 0) -- IC 25950 -> Item 1469 - - Refers to item: Statement (location: source ID 23, line 365, chars 13296-13325, hits: 0) -- IC 25961 -> Item 1470 - - Refers to item: Line (location: source ID 23, line 367, chars 13336-13375, hits: 0) -- IC 25961 -> Item 1471 - - Refers to item: Statement (location: source ID 23, line 367, chars 13336-13375, hits: 0) -- IC 25963 -> Item 1472 - - Refers to item: Statement (location: source ID 23, line 367, chars 13364-13375, hits: 0) -- IC 25978 -> Item 1473 - - Refers to item: Line (location: source ID 23, line 369, chars 13390-13462, hits: 0) -- IC 25978 -> Item 1474 - - Refers to item: Statement (location: source ID 23, line 369, chars 13390-13462, hits: 0) -- IC 26022 -> Item 1475 - - Refers to item: Branch (branch: 18, path: 0) (location: source ID 23, line 369, chars 13386-13569, hits: 0) -- IC 26124 -> Item 1476 - - Refers to item: Branch (branch: 18, path: 1) (location: source ID 23, line 369, chars 13386-13569, hits: 0) -- IC 26022 -> Item 1477 - - Refers to item: Line (location: source ID 23, line 370, chars 13478-13511, hits: 0) -- IC 26022 -> Item 1478 - - Refers to item: Statement (location: source ID 23, line 370, chars 13478-13511, hits: 0) -- IC 26104 -> Item 1479 - - Refers to item: Line (location: source ID 23, line 371, chars 13525-13558, hits: 0) -- IC 26104 -> Item 1480 - - Refers to item: Statement (location: source ID 23, line 371, chars 13525-13558, hits: 0) -- IC 26125 -> Item 1481 - - Refers to item: Line (location: source ID 23, line 374, chars 13579-13600, hits: 0) -- IC 26125 -> Item 1482 - - Refers to item: Statement (location: source ID 23, line 374, chars 13579-13600, hits: 0) -- IC 26207 -> Item 1483 - - Refers to item: Line (location: source ID 23, line 375, chars 13614-13641, hits: 0) -- IC 26207 -> Item 1484 - - Refers to item: Statement (location: source ID 23, line 375, chars 13614-13641, hits: 0) -- IC 26214 -> Item 1485 - - Refers to item: Branch (branch: 19, path: 0) (location: source ID 23, line 375, chars 13610-13691, hits: 0) -- IC 26234 -> Item 1486 - - Refers to item: Branch (branch: 19, path: 1) (location: source ID 23, line 375, chars 13610-13691, hits: 0) -- IC 26214 -> Item 1487 - - Refers to item: Line (location: source ID 23, line 376, chars 13657-13680, hits: 0) -- IC 26214 -> Item 1488 - - Refers to item: Statement (location: source ID 23, line 376, chars 13657-13680, hits: 0) -- IC 26235 -> Item 1489 - - Refers to item: Line (location: source ID 23, line 379, chars 13701-13733, hits: 0) -- IC 26235 -> Item 1490 - - Refers to item: Statement (location: source ID 23, line 379, chars 13701-13733, hits: 0) -- IC 26326 -> Item 1491 - - Refers to item: Line (location: source ID 23, line 381, chars 13744-13786, hits: 0) -- IC 26326 -> Item 1492 - - Refers to item: Statement (location: source ID 23, line 381, chars 13744-13786, hits: 0) -- IC 23076 -> Item 1493 - - Refers to item: Function "_approve" (location: source ID 23, line 389, chars 13904-14068, hits: 0) -- IC 23077 -> Item 1494 - - Refers to item: Line (location: source ID 23, line 390, chars 13978-14007, hits: 0) -- IC 23077 -> Item 1495 - - Refers to item: Statement (location: source ID 23, line 390, chars 13978-14007, hits: 0) -- IC 23159 -> Item 1496 - - Refers to item: Line (location: source ID 23, line 391, chars 14017-14061, hits: 0) -- IC 23159 -> Item 1497 - - Refers to item: Statement (location: source ID 23, line 391, chars 14017-14061, hits: 0) -- IC 23344 -> Item 1498 - - Refers to item: Function "_checkOnERC721Received" (location: source ID 23, line 405, chars 14709-15724, hits: 0) -- IC 23347 -> Item 1499 - - Refers to item: Line (location: source ID 23, line 412, chars 14912-14927, hits: 0) -- IC 23347 -> Item 1500 - - Refers to item: Statement (location: source ID 23, line 412, chars 14912-14927, hits: 0) -- IC 23679 -> Item 1501 - - Refers to item: Branch (branch: 20, path: 0) (location: source ID 23, line 412, chars 14908-15676, hits: 0) -- IC 23752 -> Item 1502 - - Refers to item: Branch (branch: 20, path: 1) (location: source ID 23, line 412, chars 14908-15676, hits: 0) -- IC 23383 -> Item 1503 - - Refers to item: Line (location: source ID 23, line 413, chars 14943-14951, hits: 0) -- IC 23383 -> Item 1504 - - Refers to item: Statement (location: source ID 23, line 413, chars 14943-14951, hits: 0) -- IC 23387 -> Item 1505 - - Refers to item: Line (location: source ID 23, line 414, chars 14970-15000, hits: 0) -- IC 23387 -> Item 1506 - - Refers to item: Statement (location: source ID 23, line 414, chars 14970-15000, hits: 0) -- IC 23393 -> Item 1507 - - Refers to item: Statement (location: source ID 23, line 414, chars 15002-15035, hits: 0) -- IC 23756 -> Item 1508 - - Refers to item: Statement (location: source ID 23, line 414, chars 15037-15046, hits: 0) -- IC 23412 -> Item 1509 - - Refers to item: Line (location: source ID 23, line 415, chars 15070-15142, hits: 0) -- IC 23412 -> Item 1510 - - Refers to item: Statement (location: source ID 23, line 415, chars 15070-15142, hits: 0) -- IC 23776 -> Item 1511 - - Refers to item: Line (location: source ID 23, line 427, chars 15657-15665, hits: 0) -- IC 23776 -> Item 1512 - - Refers to item: Statement (location: source ID 23, line 427, chars 15657-15665, hits: 0) -- IC 23781 -> Item 1513 - - Refers to item: Line (location: source ID 23, line 429, chars 15696-15707, hits: 0) -- IC 23781 -> Item 1514 - - Refers to item: Statement (location: source ID 23, line 429, chars 15696-15707, hits: 0) -- IC 21091 -> Item 1515 - - Refers to item: Function "_getBatchHead" (location: source ID 23, line 433, chars 15730-15886, hits: 0) -- IC 21094 -> Item 1516 - - Refers to item: Line (location: source ID 23, line 434, chars 15829-15879, hits: 0) -- IC 21094 -> Item 1517 - - Refers to item: Statement (location: source ID 23, line 434, chars 15829-15879, hits: 0) -- IC 20752 -> Item 1521 - - Refers to item: Function "_beforeTokenTransfers" (location: source ID 23, line 453, chars 16465-16581, hits: 0) -- IC 20851 -> Item 1522 - - Refers to item: Function "_afterTokenTransfers" (location: source ID 23, line 467, chars 16979-17094, hits: 0) - -Anchors for Contract "Minting" (solc 0.8.20+commit.a1b79de6.Darwin.appleclang, source ID 15): - From 58eca568711c878c9076ac4ccaa494affa483322 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 16 Jan 2024 14:02:18 +1000 Subject: [PATCH 055/100] Improve documentation --- contracts/random/README.md | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/contracts/random/README.md b/contracts/random/README.md index fbb4da94..697eeb4a 100644 --- a/contracts/random/README.md +++ b/contracts/random/README.md @@ -1,6 +1,23 @@ # Random Number Generation -This directory contains contracts that provide random number generation. +This directory contains contracts that provide random number generation capability using on-chain and off-chain sources. + +The reason for using these contracts is that: + +* Leverage the design created by Immutable's cryptographers. +* Have a single API to build against. +* The quality of the random numbers generated will improve as new capabilities are added to the platform. + +# Status + +Latest contract audit: Not audited yet. + +Deployments: + +| Location | Version Deployed | Address | +|-----------|------------------|---------| +| Testnet | Not deployed | | +| Mainnet | Not deployed | | ## Architecture @@ -34,4 +51,6 @@ The ```_requestRandomValueCreation``` returns a value ```_randomRequestId```. Th * The game contract calls ```_fetchRandom```, passing in the ```_randomRequestId```. The random seed is returned to the RandomValue.sol, which then customises the value prior returning it to the game. -Diagram source here: https://sequencediagram.org/index.html#initialData=title%20Random%20Number%20Generation%0A%0Aparticipant%20%22Game.sol%22%20as%20Game%0Aparticipant%20%22RandomValue.sol%22%20as%20RV%0Aparticipant%20%22RandomSeedProvider.sol%22%20as%20RM%0A%0Agroup%20Player%20purchases%20a%20random%20action%0AGame-%3ERV%3A%20_requestRandomValueCreation()%0ARV-%3ERM%3A%20requestRandomSeed()%0ARV%3C--RM%3A%20_seedRequestId%2C%20_source%0AGame%3C--RV%3A%20_randomRequestId%0Aend%0A%0Anote%20over%20Game%2CRM%3AWait%20for%20a%20block%20to%20be%20produced%20or%20an%20off-chain%20random%20to%20be%20delivered.%0A%0Agroup%20Check%20random%20value%20is%20ready%0AGame-%3ERV%3A%20isRandomValueReady(_randomRequestId)%0ARV-%3ERM%3A%20isRandomSeedReady(%5Cn_seedRequestId%2C%20_source)%0ARV%3C--RM%3A%20true%0AGame%3C--RV%3A%20true%0Aend%0A%0Agroup%20Game%20delivers%20%2F%20reveals%20random%20action%0AGame-%3ERV%3A%20fetchRandom(_randomRequestId)%0ARV-%3ERM%3A%20getRandomSeed(%5Cn_seedRequestId%2C%20_source)%0ARV%3C--RM%3A%20_randomSeed%0ARV-%3ERV%3A%20Personalise%20random%20number%20%5Cnby%20game%2C%20player%2C%20and%20request%5Cnnumber.%0AGame%3C--RV%3A%20_randomValue%0Aend%0A%0A%0A%0A%0A%0A \ No newline at end of file +# Notes + +Sequence diagram source [here](https://sequencediagram.org/index.html#initialData=title%20Random%20Number%20Generation%0A%0Aparticipant%20%22Game.sol%22%20as%20Game%0Aparticipant%20%22RandomValue.sol%22%20as%20RV%0Aparticipant%20%22RandomSeedProvider.sol%22%20as%20RM%0A%0Agroup%20Player%20purchases%20a%20random%20action%0AGame-%3ERV%3A%20_requestRandomValueCreation()%0ARV-%3ERM%3A%20requestRandomSeed()%0ARV%3C--RM%3A%20_seedRequestId%2C%20_source%0AGame%3C--RV%3A%20_randomRequestId%0Aend%0A%0Anote%20over%20Game%2CRM%3AWait%20for%20a%20block%20to%20be%20produced%20or%20an%20off-chain%20random%20to%20be%20delivered.%0A%0Agroup%20Check%20random%20value%20is%20ready%0AGame-%3ERV%3A%20isRandomValueReady(_randomRequestId)%0ARV-%3ERM%3A%20isRandomSeedReady(%5Cn_seedRequestId%2C%20_source)%0ARV%3C--RM%3A%20true%0AGame%3C--RV%3A%20true%0Aend%0A%0Agroup%20Game%20delivers%20%2F%20reveals%20random%20action%0AGame-%3ERV%3A%20fetchRandom(_randomRequestId)%0ARV-%3ERM%3A%20getRandomSeed(%5Cn_seedRequestId%2C%20_source)%0ARV%3C--RM%3A%20_randomSeed%0ARV-%3ERV%3A%20Personalise%20random%20number%20%5Cnby%20game%2C%20player%2C%20and%20request%5Cnnumber.%0AGame%3C--RV%3A%20_randomValue%0Aend%0A%0A%0A%0A%0A%0A). \ No newline at end of file From 36ec087c0da19a52070243d7ffa9b09fa0f20220 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 16 Jan 2024 16:24:28 +1000 Subject: [PATCH 056/100] Improve documentation --- contracts/random/README.md | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/contracts/random/README.md b/contracts/random/README.md index 697eeb4a..e9aa9809 100644 --- a/contracts/random/README.md +++ b/contracts/random/README.md @@ -2,22 +2,27 @@ This directory contains contracts that provide random number generation capability using on-chain and off-chain sources. -The reason for using these contracts is that: +The reasons for using these contracts are that: -* Leverage the design created by Immutable's cryptographers. -* Have a single API to build against. -* The quality of the random numbers generated will improve as new capabilities are added to the platform. +* Enables you to leverage Immutable's cryptographers' design for random number generation. +* Allows you to build your game against an API that won't change. +* The quality of the random numbers generated will improve as new capabilities are added to the platform. That is, the migration from ```block.hash``` to ```block.prevrandao``` when the BFT fork occurs will be seemless. +* For off-chain random, allows you to leverage the random number provider that Immutable has agreements with. # Status -Latest contract audit: Not audited yet. +Contract audits: + +| Description | Date |Version Audited | Link to Report | +|---------------------------|------------------|-----------------|----------------| +| Not audited | - | - | - | Deployments: -| Location | Version Deployed | Address | -|-----------|------------------|---------| -| Testnet | Not deployed | | -| Mainnet | Not deployed | | +| Location | Version Deployed | Address | +|---------------------------|------------------|---------| +| Immutable zkEVM Testnet | Not deployed | - | +| Immutable zkEVM Mainnet | Not deployed | - | ## Architecture From e17ea3d78926297611a9728a5b5f8ce7440998c9 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 16 Jan 2024 17:42:18 +1000 Subject: [PATCH 057/100] Added initial version of Supra source adaptor --- ...ourceAdaptor.sol => SourceAdaptorBase.sol} | 43 ++++++----------- .../chainlink/ChainlinkSourceAdaptor.sol | 46 +++++++++++++++++++ .../VRFCoordinatorV2Interface.sol | 0 .../offchainsources/supra/ISupraRouter.sol | 12 +++++ .../supra/SupraSourceAdaptor.sol | 25 ++++++++++ 5 files changed, 97 insertions(+), 29 deletions(-) rename contracts/random/offchainsources/{ChainlinkSourceAdaptor.sol => SourceAdaptorBase.sol} (58%) create mode 100644 contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol rename contracts/random/offchainsources/{ => chainlink}/VRFCoordinatorV2Interface.sol (100%) create mode 100644 contracts/random/offchainsources/supra/ISupraRouter.sol create mode 100644 contracts/random/offchainsources/supra/SupraSourceAdaptor.sol diff --git a/contracts/random/offchainsources/ChainlinkSourceAdaptor.sol b/contracts/random/offchainsources/SourceAdaptorBase.sol similarity index 58% rename from contracts/random/offchainsources/ChainlinkSourceAdaptor.sol rename to contracts/random/offchainsources/SourceAdaptorBase.sol index 815afbf6..52925d68 100644 --- a/contracts/random/offchainsources/ChainlinkSourceAdaptor.sol +++ b/contracts/random/offchainsources/SourceAdaptorBase.sol @@ -3,18 +3,16 @@ pragma solidity 0.8.19; import {AccessControlEnumerable} from "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; -import "@chainlink/contracts/src/v0.8/vrf/VRFConsumerBaseV2.sol"; -import "./VRFCoordinatorV2Interface.sol"; import "../IOffchainRandomSource.sol"; /** - * @notice Fetch random numbers from the Chainlink Verifiable Random - * @notice Function (VRF). + * @notice All Verifiable Random Function (VRF) source adaptors derive from this contract. * @dev This contract is NOT upgradeable. If there is an issue with this code, deploy a new * version of the code and have the random seed provider point to the new version. */ -contract ChainlinkSourceAdaptor is VRFConsumerBaseV2, AccessControlEnumerable, IOffchainRandomSource { +abstract contract SourceAdaptorBase is AccessControlEnumerable, IOffchainRandomSource { + error NotVrfContract(); event UnexpectedRandomWordsLength(uint256 _length); @@ -26,39 +24,27 @@ contract ChainlinkSourceAdaptor is VRFConsumerBaseV2, AccessControlEnumerable, I // We only need one word, and can expand that word in this system of contracts. uint32 public constant NUM_WORDS = 1; - VRFCoordinatorV2Interface private immutable vrfCoordinator; - - bytes32 public keyHash; - uint64 public subId; - uint32 public callbackGasLimit; - + // The values returned by the VRF. mapping (uint256 => bytes32) private randomOutput; + // VRF contract. + address internal vrfCoordinator; + - constructor(address _roleAdmin, address _configAdmin, address _vrfCoordinator, bytes32 _keyHash, - uint64 _subId, uint32 _callbackGasLimit) VRFConsumerBaseV2(_vrfCoordinator) { + constructor(address _roleAdmin, address _configAdmin, address _vrfCoordinator) { _grantRole(DEFAULT_ADMIN_ROLE, _roleAdmin); _grantRole(CONFIG_ADMIN_ROLE, _configAdmin); - vrfCoordinator = VRFCoordinatorV2Interface(_vrfCoordinator); - - keyHash = _keyHash; - subId = _subId; - callbackGasLimit = _callbackGasLimit; - } - - function configureRequests(bytes32 _keyHash, uint64 _subId, uint32 _callbackGasLimit) external onlyRole(CONFIG_ADMIN_ROLE) { - keyHash = _keyHash; - subId = _subId; - callbackGasLimit = _callbackGasLimit; + vrfCoordinator = _vrfCoordinator; } - function requestOffchainRandom() external returns(uint256 _requestId) { - return vrfCoordinator.requestRandomWords(keyHash, subId, MIN_CONFIRMATIONS, callbackGasLimit, NUM_WORDS); - } // Call back - function fulfillRandomWords(uint256 _requestId, uint256[] memory _randomWords) internal virtual override { + function _fulfillRandomWords(uint256 _requestId, uint256[] memory _randomWords) internal { + if (msg.sender != address(vrfCoordinator)) { + revert NotVrfContract(); + } + // NOTE: This function call is not allowed to fail. // Only one word should be returned.... if (_randomWords.length != 1) { @@ -80,5 +66,4 @@ contract ChainlinkSourceAdaptor is VRFConsumerBaseV2, AccessControlEnumerable, I function isOffchainRandomReady(uint256 _fulfillmentIndex) external view returns(bool) { return randomOutput[_fulfillmentIndex] != bytes32(0); } - } \ No newline at end of file diff --git a/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol b/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol new file mode 100644 index 00000000..3cb82241 --- /dev/null +++ b/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol @@ -0,0 +1,46 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache 2 +pragma solidity 0.8.19; + +import "@chainlink/contracts/src/v0.8/vrf/VRFConsumerBaseV2.sol"; +import "./VRFCoordinatorV2Interface.sol"; +import "../SourceAdaptorBase.sol"; + +/** + * @notice Fetch random numbers from the Chainlink Verifiable Random + * @notice Function (VRF). + * @dev This contract is NOT upgradeable. If there is an issue with this code, deploy a new + * version of the code and have the random seed provider point to the new version. + */ +contract ChainlinkSourceAdaptor is VRFConsumerBaseV2, SourceAdaptorBase { + + bytes32 public keyHash; + uint64 public subId; + uint32 public callbackGasLimit; + + + constructor(address _roleAdmin, address _configAdmin, address _vrfCoordinator, bytes32 _keyHash, + uint64 _subId, uint32 _callbackGasLimit) + VRFConsumerBaseV2(_vrfCoordinator) + SourceAdaptorBase(_roleAdmin, _configAdmin, _vrfCoordinator) { + keyHash = _keyHash; + subId = _subId; + callbackGasLimit = _callbackGasLimit; + } + + function configureRequests(bytes32 _keyHash, uint64 _subId, uint32 _callbackGasLimit) external onlyRole(CONFIG_ADMIN_ROLE) { + keyHash = _keyHash; + subId = _subId; + callbackGasLimit = _callbackGasLimit; + } + + function requestOffchainRandom() external returns(uint256 _requestId) { + return VRFCoordinatorV2Interface(vrfCoordinator).requestRandomWords(keyHash, subId, MIN_CONFIRMATIONS, callbackGasLimit, NUM_WORDS); + } + + +// Call back + function fulfillRandomWords(uint256 _requestId, uint256[] memory _randomWords) internal virtual override { + _fulfillRandomWords(_requestId, _randomWords); + } +} \ No newline at end of file diff --git a/contracts/random/offchainsources/VRFCoordinatorV2Interface.sol b/contracts/random/offchainsources/chainlink/VRFCoordinatorV2Interface.sol similarity index 100% rename from contracts/random/offchainsources/VRFCoordinatorV2Interface.sol rename to contracts/random/offchainsources/chainlink/VRFCoordinatorV2Interface.sol diff --git a/contracts/random/offchainsources/supra/ISupraRouter.sol b/contracts/random/offchainsources/supra/ISupraRouter.sol new file mode 100644 index 00000000..98f7460b --- /dev/null +++ b/contracts/random/offchainsources/supra/ISupraRouter.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.19; + +/** + * API for interacting with Supra's Verifiable Random Function. + * + */ + +interface ISupraRouter { + function generateRequest(string memory _functionSig , uint8 _rngCount, uint256 _numConfirmations, uint256 _clientSeed,address _clientWalletAddress) external returns(uint256); + function generateRequest(string memory _functionSig , uint8 _rngCount, uint256 _numConfirmations, address _clientWalletAddress) external returns(uint256); +} diff --git a/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol b/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol new file mode 100644 index 00000000..f294d199 --- /dev/null +++ b/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol @@ -0,0 +1,25 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2023 +// SPDX-License-Identifier: Apache 2 +pragma solidity 0.8.19; + +import "./ISupraRouter.sol"; +import "../SourceAdaptorBase.sol"; + + +contract SupraSourceAdaptor is SourceAdaptorBase { + address public subscriptionAccount; + + constructor(address _roleAdmin, address _configAdmin, address _vrfCoordinator, address _subscription) + SourceAdaptorBase(_roleAdmin, _configAdmin, _vrfCoordinator) { + subscriptionAccount = _subscription; + } + + function requestOffchainRandom() external returns(uint256 _requestId) { + return ISupraRouter(vrfCoordinator).generateRequest("fulfillRandomWords(uint256,uint256[])", + uint8(NUM_WORDS), MIN_CONFIRMATIONS, 123, subscriptionAccount); + } + + function fulfillRandomWords(uint256 _requestId, uint256[] calldata _randomWords) external { + _fulfillRandomWords(_requestId, _randomWords); + } +} \ No newline at end of file From a0aadd73f7fad3775b0535f50c7e9ff5e0771164 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 17 Jan 2024 16:56:58 +1000 Subject: [PATCH 058/100] Add initial chainlink tests --- .../offchainsources/SourceAdaptorBase.sol | 8 +-- .../supra/SupraSourceAdaptor.sol | 7 +++ test/random/RandomSeedProvider.t.sol | 6 -- .../chainlink/ChainlinkSource.t.sol | 57 +++++++++++++++++++ .../chainlink/MockCoordinator.sol | 56 ++++++++++++++++++ 5 files changed, 121 insertions(+), 13 deletions(-) create mode 100644 test/random/offchainsources/chainlink/ChainlinkSource.t.sol create mode 100644 test/random/offchainsources/chainlink/MockCoordinator.sol diff --git a/contracts/random/offchainsources/SourceAdaptorBase.sol b/contracts/random/offchainsources/SourceAdaptorBase.sol index 52925d68..19052ce4 100644 --- a/contracts/random/offchainsources/SourceAdaptorBase.sol +++ b/contracts/random/offchainsources/SourceAdaptorBase.sol @@ -11,8 +11,6 @@ import "../IOffchainRandomSource.sol"; * version of the code and have the random seed provider point to the new version. */ abstract contract SourceAdaptorBase is AccessControlEnumerable, IOffchainRandomSource { - - error NotVrfContract(); event UnexpectedRandomWordsLength(uint256 _length); @@ -28,7 +26,7 @@ abstract contract SourceAdaptorBase is AccessControlEnumerable, IOffchainRandomS mapping (uint256 => bytes32) private randomOutput; // VRF contract. - address internal vrfCoordinator; + address public vrfCoordinator; constructor(address _roleAdmin, address _configAdmin, address _vrfCoordinator) { @@ -41,10 +39,6 @@ abstract contract SourceAdaptorBase is AccessControlEnumerable, IOffchainRandomS // Call back function _fulfillRandomWords(uint256 _requestId, uint256[] memory _randomWords) internal { - if (msg.sender != address(vrfCoordinator)) { - revert NotVrfContract(); - } - // NOTE: This function call is not allowed to fail. // Only one word should be returned.... if (_randomWords.length != 1) { diff --git a/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol b/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol index f294d199..9a95a0f5 100644 --- a/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol +++ b/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol @@ -7,6 +7,8 @@ import "../SourceAdaptorBase.sol"; contract SupraSourceAdaptor is SourceAdaptorBase { + error NotVrfContract(); + address public subscriptionAccount; constructor(address _roleAdmin, address _configAdmin, address _vrfCoordinator, address _subscription) @@ -20,6 +22,11 @@ contract SupraSourceAdaptor is SourceAdaptorBase { } function fulfillRandomWords(uint256 _requestId, uint256[] calldata _randomWords) external { + if (msg.sender != address(vrfCoordinator)) { + revert NotVrfContract(); + } + + _fulfillRandomWords(_requestId, _randomWords); } } \ No newline at end of file diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index aabf5f44..9062cb10 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -72,12 +72,6 @@ contract UninitializedRandomSeedProviderTest is Test { assertTrue(randomSeedProvider1.hasRole(RANDOM_ADMIN_ROLE, randomAdmin)); } - // This test does nothing, except call initialize, which has been called in the setUp - // function and tested in various functions. - function testInit2() public virtual { - } - - function testReinit() public { vm.expectRevert(); randomSeedProvider.initialize(roleAdmin, randomAdmin, true); diff --git a/test/random/offchainsources/chainlink/ChainlinkSource.t.sol b/test/random/offchainsources/chainlink/ChainlinkSource.t.sol new file mode 100644 index 00000000..376dafcd --- /dev/null +++ b/test/random/offchainsources/chainlink/ChainlinkSource.t.sol @@ -0,0 +1,57 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.19; + +import "forge-std/Test.sol"; + +import {MockCoordinator} from "./MockCoordinator.sol"; +import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; +import {IOffchainRandomSource} from "contracts/random/IOffchainRandomSource.sol"; +import {ChainlinkSourceAdaptor} from "contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol"; +import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; + +contract ChainlinkSourceTest is Test { + bytes32 public constant KEY_HASH = bytes32(uint256(1)); + uint64 public constant SUB_ID = uint64(4); + uint32 public constant CALLBACK_GAS_LIMIT = uint32(200000); + + TransparentUpgradeableProxy public proxy; + RandomSeedProvider public impl; + RandomSeedProvider public randomSeedProvider; + + MockCoordinator public mockChainlinkCoordinator; + ChainlinkSourceAdaptor public chainlinkSourceAdaptor; + + address public proxyAdmin; + address public roleAdmin; + address public randomAdmin; + address public configAdmin; + + function setUp() public virtual { + proxyAdmin = makeAddr("proxyAdmin"); + roleAdmin = makeAddr("roleAdmin"); + randomAdmin = makeAddr("randomAdmin"); + configAdmin = makeAddr("configAdmin"); + impl = new RandomSeedProvider(); + proxy = new TransparentUpgradeableProxy(address(impl), proxyAdmin, + abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, false)); + randomSeedProvider = RandomSeedProvider(address(proxy)); + + mockChainlinkCoordinator = new MockCoordinator(); + chainlinkSourceAdaptor = new ChainlinkSourceAdaptor( + roleAdmin, configAdmin, address(mockChainlinkCoordinator), KEY_HASH, SUB_ID, CALLBACK_GAS_LIMIT); + + // Ensure we are on a new block number when we start the tests. In particular, don't + // be on the same block number as when the contracts were deployed. + vm.roll(block.number + 1); + } + + function testInit() public { + mockChainlinkCoordinator = new MockCoordinator(); + chainlinkSourceAdaptor = new ChainlinkSourceAdaptor( + roleAdmin, configAdmin, address(mockChainlinkCoordinator), KEY_HASH, SUB_ID, CALLBACK_GAS_LIMIT); + + assertEq(address(chainlinkSourceAdaptor.vrfCoordinator()), address(mockChainlinkCoordinator), "vrfCoord not set correctly"); + } +} + + diff --git a/test/random/offchainsources/chainlink/MockCoordinator.sol b/test/random/offchainsources/chainlink/MockCoordinator.sol new file mode 100644 index 00000000..9bf3a49e --- /dev/null +++ b/test/random/offchainsources/chainlink/MockCoordinator.sol @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.19; + +import {VRFCoordinatorV2Interface} from "../../../../contracts/random/offchainsources/chainlink/VRFCoordinatorV2Interface.sol"; +import {ChainlinkSourceAdaptor} from "../../../../contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol"; + +contract MockCoordinator is VRFCoordinatorV2Interface { + event RequestId(uint256 _requestId); + + ChainlinkSourceAdaptor public adaptor; + uint256 public nextIndex = 1000; + + + function setAdaptor(address _adaptor) external { + adaptor = ChainlinkSourceAdaptor(_adaptor); + } + + function sendFulfill(uint256 _requestId) external { + uint256[] memory randomWords = new uint256[](1); + randomWords[0] = _requestId + 1; + adaptor.rawFulfillRandomWords(_requestId, randomWords); + } + + + function requestRandomWords(bytes32,uint64,uint16,uint32,uint32) external returns (uint256 requestId) { + requestId = nextIndex++; + emit RequestId(requestId); + } + + + // Unused functions + + function getRequestConfig() external pure returns (uint16, uint32, bytes32[] memory) { + bytes32[] memory a; + return (uint16(0), uint32(0), a); + } + + function createSubscription() external pure returns (uint64 subId) { + return (uint64(0)); + } + + function getSubscription(uint64) external pure + returns (uint96 balance, uint64 reqCount, address owner, address[] memory consumers) { + return (uint96(0), uint64(0), address(0), consumers); + } + + function requestSubscriptionOwnerTransfer(uint64, address) external {} + function acceptSubscriptionOwnerTransfer(uint64) external {} + function addConsumer(uint64, address) external {} + function removeConsumer(uint64, address) external{} + function cancelSubscription(uint64, address) external{} + function pendingRequestExists(uint64) external pure returns (bool) { + return false; + } +} + From 6110ec2df559b6c428a64c677590fd0aa79e02dd Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 18 Jan 2024 14:52:04 +1000 Subject: [PATCH 059/100] Run prettier --- .solhint.json | 59 +++- contracts/bridge/x/Core.sol | 98 +----- contracts/bridge/x/Registration.sol | 4 +- contracts/random/IOffchainRandomSource.sol | 20 +- contracts/random/RandomSeedProvider.sol | 85 +++-- contracts/random/RandomValues.sol | 54 ++-- .../offchainsources/SourceAdaptorBase.sol | 24 +- .../chainlink/ChainlinkSourceAdaptor.sol | 74 ++++- .../chainlink/VRFCoordinatorV2Interface.sol | 200 ++++++------ .../offchainsources/supra/ISupraRouter.sol | 17 +- .../supra/SupraSourceAdaptor.sol | 28 +- .../erc1155/abstract/ImmutableERC1155Base.sol | 40 +-- .../erc1155/preset/draft-ImmutableERC1155.sol | 13 +- .../token/erc721/abstract/ERC721Hybrid.sol | 36 +-- .../token/erc721/abstract/ERC721Permit.sol | 88 ++--- contracts/token/erc721/abstract/IERC4494.sol | 32 +- .../erc721/abstract/ImmutableERC721Base.sol | 22 +- .../abstract/ImmutableERC721HybridBase.sol | 25 +- .../erc721/abstract/MintingAccessControl.sol | 5 +- .../token/erc721/preset/ImmutableERC721.sol | 6 +- .../erc721/preset/ImmutableERC721MintByID.sol | 12 +- contracts/token/erc721/x/Asset.sol | 12 +- contracts/token/erc721/x/IMintable.sol | 8 +- contracts/token/erc721/x/Mintable.sol | 20 +- contracts/token/erc721/x/utils/Bytes.sol | 8 +- contracts/token/erc721/x/utils/Minting.sol | 10 +- .../trading/seaport/ImmutableSeaport.sol | 95 ++---- .../seaport/conduit/ConduitController.sol | 2 +- .../validators/ReadOnlyOrderValidator.sol | 2 +- .../seaport/validators/SeaportValidator.sol | 2 +- .../validators/SeaportValidatorHelper.sol | 2 +- .../seaport/zones/ImmutableSignedZone.sol | 174 +++------- .../zones/interfaces/SIP5Interface.sol | 7 +- .../zones/interfaces/SIP7EventsAndErrors.sol | 18 +- package-lock.json | 300 ++++++++++++++++-- package.json | 7 +- test/random/README.md | 2 +- .../chainlink/ChainlinkSource.t.sol | 6 + yarn.lock | 90 ++++-- 39 files changed, 897 insertions(+), 810 deletions(-) diff --git a/.solhint.json b/.solhint.json index 7ede96e3..84828ef4 100644 --- a/.solhint.json +++ b/.solhint.json @@ -1,9 +1,56 @@ { - "extends": "solhint:recommended", + "plugins": ["prettier"], + "rules": { - "prettier/prettier": "error", - "compiler-version": ["error", "^0.8.0"], - "func-visibility": ["warn", { "ignoreConstructors": true }] - }, - "plugins": ["prettier"] + "code-complexity": ["warn", 7], + "custom-errors": "error", + "explicit-types": ["error"], + "function-max-lines": ["off", 50], + "max-line-length": ["off", 120], + "max-states-count": ["off", 15], + "no-console": "error", + "no-empty-blocks": "warn", + "no-global-import": "warn", + "no-unused-import": "warn", + "no-unused-vars": "warn", + "one-contract-per-file": "warn", + "payable-fallback": "warn", + "reason-string": ["warn", {"maxLength": 32}], + "constructor-syntax": "warn", + + "comprehensive-interface": "off", + "quotes": ["error", "double"], + + "const-name-snakecase": "warn", + "foundry-test-functions": ["off", ["setUp"]], + "func-name-mixedcase": "warn", + "modifier-name-mixedcase": "warn", + "named-parameters-mapping": "warn", + "named-return-values": "off", + "private-vars-leading-underscore": ["off", {"strict": false}], + "use-forbidden-name": "warn", + "var-name-mixedcase": "warn", + "imports-on-top": "warn", + "visibility-modifier-order": "warn", + + "avoid-call-value": "error", + "avoid-low-level-calls": "error", + "avoid-sha3": "error", + "avoid-suicide": "error", + "avoid-throw": "error", + "avoid-tx-origin": "error", + "check-send-result": "error", + "compiler-version": ["error", "0.8.19"], + "func-visibility": ["error", {"ignoreConstructors": true}], + "multiple-sends": "warn", + "no-complex-fallback": "warn", + "no-inline-assembly": "warn", + "not-rely-on-block-hash": "warn", + "not-rely-on-time": "warn", + "reentrancy": "warn", + "state-visibility": "warn", + + "prettier/prettier": "error" + } } + diff --git a/contracts/bridge/x/Core.sol b/contracts/bridge/x/Core.sol index 85cacf62..52b8d787 100644 --- a/contracts/bridge/x/Core.sol +++ b/contracts/bridge/x/Core.sol @@ -2,7 +2,6 @@ pragma solidity ^0.8.11; interface Core { - function announceAvailabilityVerifierRemovalIntent(address) external; function announceVerifierRemovalIntent(address) external; function getRegisteredAvailabilityVerifiers() external; @@ -84,12 +83,7 @@ interface Core { uint256 vaultId ) external view returns (uint256 balance); - function depositNft( - uint256 starkKey, - uint256 assetType, - uint256 vaultId, - uint256 tokenId - ) external; + function depositNft(uint256 starkKey, uint256 assetType, uint256 vaultId, uint256 tokenId) external; function getCancellationRequest( uint256 starkKey, @@ -97,50 +91,19 @@ interface Core { uint256 vaultId ) external view returns (uint256 request); - function depositERC20( - uint256 starkKey, - uint256 assetType, - uint256 vaultId, - uint256 quantizedAmount - ) external; + function depositERC20(uint256 starkKey, uint256 assetType, uint256 vaultId, uint256 quantizedAmount) external; - function depositEth( - uint256 starkKey, - uint256 assetType, - uint256 vaultId - ) external payable; + function depositEth(uint256 starkKey, uint256 assetType, uint256 vaultId) external payable; - function deposit( - uint256 starkKey, - uint256 assetType, - uint256 vaultId, - uint256 quantizedAmount - ) external; + function deposit(uint256 starkKey, uint256 assetType, uint256 vaultId, uint256 quantizedAmount) external; - function deposit( - uint256 starkKey, - uint256 assetType, - uint256 vaultId - ) external payable; + function deposit(uint256 starkKey, uint256 assetType, uint256 vaultId) external payable; - function depositCancel( - uint256 starkKey, - uint256 assetId, - uint256 vaultId - ) external; + function depositCancel(uint256 starkKey, uint256 assetId, uint256 vaultId) external; - function depositReclaim( - uint256 starkKey, - uint256 assetId, - uint256 vaultId - ) external; + function depositReclaim(uint256 starkKey, uint256 assetId, uint256 vaultId) external; - function depositNftReclaim( - uint256 starkKey, - uint256 assetType, - uint256 vaultId, - uint256 tokenId - ) external; + function depositNftReclaim(uint256 starkKey, uint256 assetType, uint256 vaultId, uint256 tokenId) external; event LogWithdrawalPerformed( uint256 ownerKey, @@ -177,24 +140,13 @@ interface Core { event LogMintableWithdrawalAllowed(uint256 ownerKey, uint256 assetId, uint256 quantizedAmount); - function getWithdrawalBalance(uint256 ownerKey, uint256 assetId) - external - view - returns (uint256 balance); + function getWithdrawalBalance(uint256 ownerKey, uint256 assetId) external view returns (uint256 balance); function withdraw(uint256 ownerKey, uint256 assetType) external; - function withdrawNft( - uint256 ownerKey, - uint256 assetType, - uint256 tokenId - ) external ; + function withdrawNft(uint256 ownerKey, uint256 assetType, uint256 tokenId) external; - function withdrawAndMint( - uint256 ownerKey, - uint256 assetType, - bytes calldata mintingBlob - ) external; + function withdrawAndMint(uint256 ownerKey, uint256 assetType, bytes calldata mintingBlob) external; function getVaultRoot() external view returns (uint256 root); function getVaultTreeHeight() external view returns (uint256 height); @@ -224,12 +176,7 @@ interface Core { function getQuantum(uint256 presumedAssetType) external view returns (uint256 quantum); - function escape( - uint256 starkKey, - uint256 vaultId, - uint256 assetId, - uint256 quantizedAmount - ) external; + function escape(uint256 starkKey, uint256 vaultId, uint256 assetId, uint256 quantizedAmount) external; event LogFullWithdrawalRequest(uint256 starkKey, uint256 vaultId); @@ -237,26 +184,13 @@ interface Core { function freezeRequest(uint256 starkKey, uint256 vaultId) external; - event LogRootUpdate( - uint256 sequenceNumber, - uint256 batchId, - uint256 vaultRoot, - uint256 orderRoot - ); + event LogRootUpdate(uint256 sequenceNumber, uint256 batchId, uint256 vaultRoot, uint256 orderRoot); event LogStateTransitionFact(bytes32 stateTransitionFact); - event LogVaultBalanceChangeApplied( - address ethKey, - uint256 assetId, - uint256 vaultId, - int256 quantizedAmountChange - ); + event LogVaultBalanceChangeApplied(address ethKey, uint256 assetId, uint256 vaultId, int256 quantizedAmountChange); function updateState(uint256[] calldata publicInput, uint256[] calldata applicationData) external; - function getFullWithdrawalRequest(uint256 starkKey, uint256 vaultId) - external - view - returns (uint256 res); -} \ No newline at end of file + function getFullWithdrawalRequest(uint256 starkKey, uint256 vaultId) external view returns (uint256 res); +} diff --git a/contracts/bridge/x/Registration.sol b/contracts/bridge/x/Registration.sol index 70b0c2ee..819bf55a 100644 --- a/contracts/bridge/x/Registration.sol +++ b/contracts/bridge/x/Registration.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.11; -import { Core } from "./Core.sol"; +import {Core} from "./Core.sol"; contract Registration { Core public imx; @@ -80,4 +80,4 @@ contract Registration { function isRegistered(uint256 starkKey) public view returns (bool) { return imx.getEthKey(starkKey) != address(0); } -} \ No newline at end of file +} diff --git a/contracts/random/IOffchainRandomSource.sol b/contracts/random/IOffchainRandomSource.sol index 4d859f1e..566ba9a0 100644 --- a/contracts/random/IOffchainRandomSource.sol +++ b/contracts/random/IOffchainRandomSource.sol @@ -2,22 +2,30 @@ // SPDX-License-Identifier: Apache 2 pragma solidity 0.8.19; - /** * @notice Off-chain random source adaptors must implement this interface. */ interface IOffchainRandomSource { // The random seed value is not yet available. error WaitForRandom(); - - function requestOffchainRandom() external returns(uint256 _fulfilmentIndex); + + /** + * @notice Request that an offchain random value be generated. + * @return _fulfilmentIndex Value to be used to fetch the random value in getOffchainRandom. + */ + function requestOffchainRandom() external returns (uint256 _fulfilmentIndex); /** * @notice Fetch the latest off-chain generated random value. * @param _fulfillmentIndex Number previously given when requesting a ramdon value. * @return _randomValue The value generated off-chain. */ - function getOffchainRandom(uint256 _fulfillmentIndex) external view returns(bytes32 _randomValue); + function getOffchainRandom(uint256 _fulfillmentIndex) external view returns (bytes32 _randomValue); - function isOffchainRandomReady(uint256 _fulfillmentIndex) external view returns(bool); -} \ No newline at end of file + /** + * @notice Check to see if the random value is available yet. + * @param _fulfillmentIndex Number previously given when requesting a ramdon value. + * @return true if the value is available. + */ + function isOffchainRandomReady(uint256 _fulfillmentIndex) external view returns (bool); +} diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 6c461583..3ff40356 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -5,15 +5,14 @@ pragma solidity 0.8.19; import {AccessControlEnumerableUpgradeable} from "openzeppelin-contracts-upgradeable-4.9.3/access/AccessControlEnumerableUpgradeable.sol"; import {IOffchainRandomSource} from "./IOffchainRandomSource.sol"; - /** * @notice Contract to provide random seed values to game contracts on the chain. * @dev The expectation is that there will only be one RandomSeedProvider per chain. - * Game contracts will call this contract to obtain a seed value, from which + * Game contracts will call this contract to obtain a seed value, from which * they will generate random values. * - * The contract is upgradeable. It is expected to be operated behind an - * Open Zeppelin TransparentUpgradeProxy. + * The contract is upgradeable. It is expected to be operated behind an + * Open Zeppelin TransparentUpgradeProxy. */ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { // The random seed value is not yet available. @@ -38,9 +37,9 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { address public constant ONCHAIN = address(0); // When random seeds are requested, a request id is returned. The id - // relates to a certain future random seed. This map holds all of the + // relates to a certain future random seed. This map holds all of the // random seeds that have been produced. - mapping (uint256 => bytes32) public randomOutput; + mapping(uint256 requestId => bytes32 randomValue) public randomOutput; // The index of the next seed value to be produced. uint256 public nextRandomIndex; @@ -49,14 +48,14 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { uint256 public lastBlockRandomGenerated; // The block when the last offchain random request occurred. - // This is used to limit off-chain random requests to once per block. + // This is used to limit off-chain random requests to once per block. uint256 private lastBlockOffchainRequest; // The request id returned in the previous off-chain random request. - // This is used to limit off-chain random requests to once per block. + // This is used to limit off-chain random requests to once per block. uint256 private prevOffchainRandomRequest; - // @notice The source of new random numbers. This could be the special values for + // @notice The source of new random numbers. This could be the special values for // @notice TRADITIONAL or RANDAO or the address of a Offchain Random Source contract. // @dev This value is return with the request ids. This allows off-chain random sources // @dev to be switched without stopping in-flight random values from being retrieved. @@ -69,12 +68,11 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { // Indicates an address is allow listed for the offchain random provider. // Having an allow list prevents spammers from requesting one random number per block, // thus incurring cost on Immutable for no benefit. - mapping (address => bool) public approvedForOffchainRandom; - + mapping(address gameContract => bool approved) public approvedForOffchainRandom; /** * @notice Initialize the contract for use with a transparent proxy. - * @param _roleAdmin is the account that can add and remove addresses that have + * @param _roleAdmin is the account that can add and remove addresses that have * RANDOM_ADMIN_ROLE privilege. * @param _randomAdmin is the account that has RANDOM_ADMIN_ROLE privilege. * @param _ranDaoAvailable indicates if the chain supports the PRERANDAO opcode. @@ -104,7 +102,6 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { emit OffchainRandomSourceSet(_offchainRandomSource); } - /** * @notice Call this when the blockchain supports the PREVRANDAO opcode. * @dev Only RANDOM_ADMIN_ROLE can do this. @@ -119,7 +116,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * @dev Only RANDOM_ADMIN_ROLE can do this. * @param _consumer Game contract that inherits from RandomValues.sol that is authorised to use off-chain random. */ - function addOffchainRandomConsumer(address _consumer) external onlyRole(RANDOM_ADMIN_ROLE) { + function addOffchainRandomConsumer(address _consumer) external onlyRole(RANDOM_ADMIN_ROLE) { approvedForOffchainRandom[_consumer] = true; emit OffchainRandomConsumerAdded(_consumer); } @@ -129,12 +126,11 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * @dev Only RANDOM_ADMIN_ROLE can do this. * @param _consumer Game contract that inherits from RandomValues.sol that is no longer authorised to use off-chain random. */ - function removeOffchainRandomConsumer(address _consumer) external onlyRole(RANDOM_ADMIN_ROLE) { + function removeOffchainRandomConsumer(address _consumer) external onlyRole(RANDOM_ADMIN_ROLE) { approvedForOffchainRandom[_consumer] = false; emit OffchainRandomConsumerRemoved(_consumer); } - /** * @notice Request the index number to track when a random number will be produced. * @dev Note that the same _randomFulfillmentIndex will be returned to multiple games and even within @@ -143,10 +139,10 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * @return _randomFulfillmentIndex The index for the game contract to present to fetch the next random value. * @return _randomSource Indicates that an on-chain source was used, or is the address of an offchain source. */ - function requestRandomSeed() external returns(uint256 _randomFulfillmentIndex, address _randomSource) { + function requestRandomSeed() external returns (uint256 _randomFulfillmentIndex, address _randomSource) { if (randomSource == ONCHAIN || !approvedForOffchainRandom[msg.sender]) { - // Generate a value for this block if one has not been generated yet. This - // is required because there may have been calls to requestRandomSeed + // Generate a value for this block if one has not been generated yet. This + // is required because there may have been calls to requestRandomSeed // in previous blocks that are waiting for a random number to be produced. _generateNextRandomOnChain(); @@ -154,13 +150,11 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { _randomFulfillmentIndex = nextRandomIndex; _randomSource = ONCHAIN; - } - else { + } else { // Limit how often offchain random numbers are requested to a maximum of once per block. if (lastBlockOffchainRequest == block.number) { _randomFulfillmentIndex = prevOffchainRandomRequest; - } - else { + } else { _randomFulfillmentIndex = IOffchainRandomSource(randomSource).requestOffchainRandom(); prevOffchainRandomRequest = _randomFulfillmentIndex; lastBlockOffchainRequest = block.number; @@ -169,7 +163,6 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { } } - /** * @notice Fetches a random seed value that was requested using requestRandom. * @dev Note that the same _randomSeed will be returned to multiple games and even within @@ -177,18 +170,20 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { * and to the game player's request. * @return _randomSeed The value from with random values can be derived. */ - function getRandomSeed(uint256 _randomFulfillmentIndex, address _randomSource) external returns (bytes32 _randomSeed) { + function getRandomSeed( + uint256 _randomFulfillmentIndex, + address _randomSource + ) external returns (bytes32 _randomSeed) { if (_randomSource == ONCHAIN) { _generateNextRandomOnChain(); if (_randomFulfillmentIndex >= nextRandomIndex) { revert WaitForRandom(); } return randomOutput[_randomFulfillmentIndex]; - } - else { + } else { // If random source is not the address of a valid contract this will revert // with no revert information returned. - return IOffchainRandomSource(_randomSource).getOffchainRandom(_randomFulfillmentIndex); + return IOffchainRandomSource(_randomSource).getOffchainRandom(_randomFulfillmentIndex); } } @@ -200,19 +195,16 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { if (_randomSource == ONCHAIN) { if (lastBlockRandomGenerated == block.number) { return _randomFulfillmentIndex < nextRandomIndex; + } else { + return _randomFulfillmentIndex < nextRandomIndex + 1; } - else { - return _randomFulfillmentIndex < nextRandomIndex+1; - } - } - else { - return IOffchainRandomSource(randomSource).isOffchainRandomReady(_randomFulfillmentIndex); + } else { + return IOffchainRandomSource(randomSource).isOffchainRandomReady(_randomFulfillmentIndex); } } - /** - * @notice Generate a random value using on-chain methodologies. + * @notice Generate a random value using on-chain methodologies. */ function _generateNextRandomOnChain() private { // Onchain random values can only be generated once per block. @@ -223,22 +215,21 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { uint256 entropy; if (ranDaoAvailable) { // PrevRanDAO (previously known as DIFFICULTY) is the output of the RanDAO function - // used as a part of consensus. The value posted is the value revealed in the previous - // block, not in this block. In this way, all parties know the value prior to it being + // used as a part of consensus. The value posted is the value revealed in the previous + // block, not in this block. In this way, all parties know the value prior to it being // useable by applications. // - // The RanDAO value can be influenced by a block producer deciding to produce or - // not produce a block. This limits the block producer's influence to one of two + // The RanDAO value can be influenced by a block producer deciding to produce or + // not produce a block. This limits the block producer's influence to one of two // values. // - // Prior to the BFT fork (expected in 2024), this value will be a predictable value - // related to the block number. + // Prior to the BFT fork (expected in 2024), this value will be a predictable value + // related to the block number. entropy = block.prevrandao; - } - else { + } else { // Block hash will be different for each block and difficult for game players // to guess. However, game players can observe blocks as they are produced. - // The block producer could manipulate the block hash by crafting a + // The block producer could manipulate the block hash by crafting a // transaction that included a number that the block producer controls. A // malicious block producer could produce many candidate blocks, in an attempt // to produce a specific value. @@ -251,8 +242,6 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { lastBlockRandomGenerated = block.number; } - - // slither-disable-next-line unused-state,naming-convention uint256[100] private __gapRandomSeedProvider; -} \ No newline at end of file +} diff --git a/contracts/random/RandomValues.sol b/contracts/random/RandomValues.sol index aaedcbf5..fa92e384 100644 --- a/contracts/random/RandomValues.sol +++ b/contracts/random/RandomValues.sol @@ -5,27 +5,26 @@ pragma solidity 0.8.19; import {RandomSeedProvider} from "./RandomSeedProvider.sol"; /** - * @notice Game contracts that need random numbers should extend this contract. + * @notice Game contracts that need random numbers should extend this contract. * @dev This contract can be used with UPGRADEABLE or NON-UNGRADEABLE contracts. */ abstract contract RandomValues { - // Address of random seed provider contract. + // Address of random seed provider contract. // This value "immutable", and hence patched directly into bytecode when it is used. - // There will only ever be one random seed provider per chain. Hence, this value + // There will only ever be one random seed provider per chain. Hence, this value // does not need to be changed. RandomSeedProvider public immutable randomSeedProvider; - // Map of request id to fulfillment id. - mapping (uint256 => uint256) private randCreationRequests; - // Map of request id to random source. Retaining the source allows for upgrade + // Map of request id to fulfilment id. + mapping(uint256 requestId => uint256 fulfilmentId) private randCreationRequests; + // Map of request id to random source. Retaining the source allows for upgrade // of sources inside the random seed provider contract. - mapping (uint256 => address) private randCreationRequestsSource; + mapping(uint256 requestId => address randomSource) private randCreationRequestsSource; // Each request has a unique request id. The id is the current value // of nextNonce. nextNonce is incremented for each request. uint256 private nextNonce; - /** * @notice Set the address of the random seed provider. * @param _randomSeedProvider Address of random seed provider. @@ -33,11 +32,11 @@ abstract contract RandomValues { constructor(address _randomSeedProvider) { randomSeedProvider = RandomSeedProvider(_randomSeedProvider); } - + /** * @notice Register a request to generate a random value. This function should be called * when a game player has purchased an item the value of which is based on a random value. - * @return _randomRequestId A value that needs to be presented when fetching the random + * @return _randomRequestId A value that needs to be presented when fetching the random * value with fetchRandom. */ function _requestRandomValueCreation() internal returns (uint256 _randomRequestId) { @@ -49,16 +48,15 @@ abstract contract RandomValues { randCreationRequestsSource[_randomRequestId] = randomSource; } - /** * @notice Fetch a random value that was requested using _requestRandomValueCreation. * @dev The value is customised to this game, the game player, and the request by the game player. * This level of personalisation ensures that no two players end up with the same random value - * and no game player will have the same random value twice. + * and no game player will have the same random value twice. * @param _randomRequestId The value returned by _requestRandomValueCreation. * @return _randomValue The random number that the game can use. */ - function _fetchRandom(uint256 _randomRequestId) internal returns(bytes32 _randomValue) { + function _fetchRandom(uint256 _randomRequestId) internal returns (bytes32 _randomValue) { // Don't return the personalised seed directly. Otherwise there is a risk that // the seed will be revealed, which would then compromise the security of calls // to fetchRandomValues. @@ -70,12 +68,15 @@ abstract contract RandomValues { * @notice Fetch a set of random values that were requested using _requestRandomValueCreation. * @dev The values are customised to this game, the game player, and the request by the game player. * This level of personalisation ensures that no two players end up with the same random value - * and no game player will have the same random value twice. + * and no game player will have the same random value twice. * @param _randomRequestId The value returned by _requestRandomValueCreation. - * @param _size The size of the array to return. + * @param _size The size of the array to return. * @return _randomValues An array of random values derived from a single random value. */ - function _fetchRandomValues(uint256 _randomRequestId, uint256 _size) internal returns(bytes32[] memory _randomValues) { + function _fetchRandomValues( + uint256 _randomRequestId, + uint256 _size + ) internal returns (bytes32[] memory _randomValues) { bytes32 seed = _fetchPersonalisedSeed(_randomRequestId); _randomValues = new bytes32[](_size); @@ -90,27 +91,32 @@ abstract contract RandomValues { * @param _randomRequestId The value returned by _requestRandomValueCreation. * @return True when the random value is ready to be retrieved. */ - function _isRandomValueReady(uint256 _randomRequestId) internal view returns(bool) { - return randomSeedProvider.isRandomSeedReady( - randCreationRequests[_randomRequestId], randCreationRequestsSource[_randomRequestId]); + function _isRandomValueReady(uint256 _randomRequestId) internal view returns (bool) { + return + randomSeedProvider.isRandomSeedReady( + randCreationRequests[_randomRequestId], + randCreationRequestsSource[_randomRequestId] + ); } /** * @notice Fetch a seed from which random values can be generated, based on _requestRandomValueCreation. * @dev The value is customised to this game, the game player, and the request by the game player. * This level of personalisation ensures that no two players end up with the same random value - * and no game player will have the same random value twice. + * and no game player will have the same random value twice. * @param _randomRequestId The value returned by _requestRandomValueCreation. * @return _seed The seed value to base random numbers on. */ - function _fetchPersonalisedSeed(uint256 _randomRequestId) private returns(bytes32 _seed) { + function _fetchPersonalisedSeed(uint256 _randomRequestId) private returns (bytes32 _seed) { // Request the random seed. If not enough time has elapsed yet, this call will revert. bytes32 randomSeed = randomSeedProvider.getRandomSeed( - randCreationRequests[_randomRequestId], randCreationRequestsSource[_randomRequestId]); + randCreationRequests[_randomRequestId], + randCreationRequestsSource[_randomRequestId] + ); // Generate the personlised seed by combining: // address(this): personalises the random seed to this game. // msg.sender: personalises the random seed to the game player. - // _randomRequestId: Ensures that even if the game player has requested multiple random values, + // _randomRequestId: Ensures that even if the game player has requested multiple random values, // they will get a different value for each request. // randomSeed: Value returned by the RandomManager. _seed = keccak256(abi.encodePacked(address(this), msg.sender, _randomRequestId, randomSeed)); @@ -118,4 +124,4 @@ abstract contract RandomValues { // slither-disable-next-line unused-state,naming-convention uint256[100] private __gapRandomValues; -} \ No newline at end of file +} diff --git a/contracts/random/offchainsources/SourceAdaptorBase.sol b/contracts/random/offchainsources/SourceAdaptorBase.sol index 19052ce4..6cf091c3 100644 --- a/contracts/random/offchainsources/SourceAdaptorBase.sol +++ b/contracts/random/offchainsources/SourceAdaptorBase.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.19; import {AccessControlEnumerable} from "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; -import "../IOffchainRandomSource.sol"; +import {IOffchainRandomSource} from "../IOffchainRandomSource.sol"; /** * @notice All Verifiable Random Function (VRF) source adaptors derive from this contract. @@ -11,33 +11,28 @@ import "../IOffchainRandomSource.sol"; * version of the code and have the random seed provider point to the new version. */ abstract contract SourceAdaptorBase is AccessControlEnumerable, IOffchainRandomSource { - event UnexpectedRandomWordsLength(uint256 _length); - - bytes32 public constant CONFIG_ADMIN_ROLE = keccak256("CONFIG_ADMIN_ROLE"); + bytes32 private constant CONFIG_ADMIN_ROLE = keccak256("CONFIG_ADMIN_ROLE"); // Immutable zkEVM has instant finality, so a single block confirmation is fine. - uint16 public constant MIN_CONFIRMATIONS = 1; + uint16 private constant MIN_CONFIRMATIONS = 1; // We only need one word, and can expand that word in this system of contracts. - uint32 public constant NUM_WORDS = 1; + uint32 private constant NUM_WORDS = 1; // The values returned by the VRF. - mapping (uint256 => bytes32) private randomOutput; + mapping(uint256 _fulfilmentId => bytes32 randomValue) private randomOutput; // VRF contract. address public vrfCoordinator; - constructor(address _roleAdmin, address _configAdmin, address _vrfCoordinator) { _grantRole(DEFAULT_ADMIN_ROLE, _roleAdmin); _grantRole(CONFIG_ADMIN_ROLE, _configAdmin); vrfCoordinator = _vrfCoordinator; } - - -// Call back + // Call back function _fulfillRandomWords(uint256 _requestId, uint256[] memory _randomWords) internal { // NOTE: This function call is not allowed to fail. // Only one word should be returned.... @@ -48,8 +43,7 @@ abstract contract SourceAdaptorBase is AccessControlEnumerable, IOffchainRandomS randomOutput[_requestId] = bytes32(_randomWords[0]); } - - function getOffchainRandom(uint256 _fulfillmentIndex) external view returns(bytes32 _randomValue) { + function getOffchainRandom(uint256 _fulfillmentIndex) external view returns (bytes32 _randomValue) { bytes32 rand = randomOutput[_fulfillmentIndex]; if (rand == bytes32(0)) { revert WaitForRandom(); @@ -57,7 +51,7 @@ abstract contract SourceAdaptorBase is AccessControlEnumerable, IOffchainRandomS _randomValue = rand; } - function isOffchainRandomReady(uint256 _fulfillmentIndex) external view returns(bool) { + function isOffchainRandomReady(uint256 _fulfillmentIndex) external view returns (bool) { return randomOutput[_fulfillmentIndex] != bytes32(0); } -} \ No newline at end of file +} diff --git a/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol b/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol index 3cb82241..fa43b79f 100644 --- a/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol +++ b/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol @@ -2,45 +2,85 @@ // SPDX-License-Identifier: Apache 2 pragma solidity 0.8.19; -import "@chainlink/contracts/src/v0.8/vrf/VRFConsumerBaseV2.sol"; -import "./VRFCoordinatorV2Interface.sol"; -import "../SourceAdaptorBase.sol"; +import {VRFConsumerBaseV2} from "@chainlink/contracts/src/v0.8/vrf/VRFConsumerBaseV2.sol"; +import {VRFCoordinatorV2Interface} from "./VRFCoordinatorV2Interface.sol"; +import {SourceAdaptorBase} from "../SourceAdaptorBase.sol"; /** - * @notice Fetch random numbers from the Chainlink Verifiable Random + * @notice Fetch random numbers from the Chainlink Verifiable Random * @notice Function (VRF). * @dev This contract is NOT upgradeable. If there is an issue with this code, deploy a new * version of the code and have the random seed provider point to the new version. */ contract ChainlinkSourceAdaptor is VRFConsumerBaseV2, SourceAdaptorBase { - + // Relates to key that must sign the proof. bytes32 public keyHash; + + // Subscruption id. uint64 public subId; - uint32 public callbackGasLimit; + // Gas limit when executing the callback. + uint32 public callbackGasLimit; - constructor(address _roleAdmin, address _configAdmin, address _vrfCoordinator, bytes32 _keyHash, - uint64 _subId, uint32 _callbackGasLimit) - VRFConsumerBaseV2(_vrfCoordinator) - SourceAdaptorBase(_roleAdmin, _configAdmin, _vrfCoordinator) { + /** + * @param _roleAdmin Admin that can add and remove config admins. + * @param _configAdmin Admin that can change the configuration. + * @param _vrfCoordinator VRF coordinator contract address. + * @param _keyHash Related to the signing / verification key. + * @param _subId Subscription id. + * @param _callbackGasLimit Gas limit to pass when calling the callback. + */ + constructor( + address _roleAdmin, + address _configAdmin, + address _vrfCoordinator, + bytes32 _keyHash, + uint64 _subId, + uint32 _callbackGasLimit + ) VRFConsumerBaseV2(_vrfCoordinator) SourceAdaptorBase(_roleAdmin, _configAdmin, _vrfCoordinator) { keyHash = _keyHash; subId = _subId; callbackGasLimit = _callbackGasLimit; } - function configureRequests(bytes32 _keyHash, uint64 _subId, uint32 _callbackGasLimit) external onlyRole(CONFIG_ADMIN_ROLE) { + /** + * @notice Change the configuration. + * @param _keyHash Related to the signing / verification key. + * @param _subId Subscription id. + * @param _callbackGasLimit Gas limit to pass when calling the callback. + */ + function configureRequests( + bytes32 _keyHash, + uint64 _subId, + uint32 _callbackGasLimit + ) external onlyRole(CONFIG_ADMIN_ROLE) { keyHash = _keyHash; subId = _subId; callbackGasLimit = _callbackGasLimit; } - function requestOffchainRandom() external returns(uint256 _requestId) { - return VRFCoordinatorV2Interface(vrfCoordinator).requestRandomWords(keyHash, subId, MIN_CONFIRMATIONS, callbackGasLimit, NUM_WORDS); + /** + * @inheritdoc IOffchainRandomSource + */ + function requestOffchainRandom() external override(IOffchainRandomSource) returns (uint256 _requestId) { + return + VRFCoordinatorV2Interface(vrfCoordinator).requestRandomWords( + keyHash, + subId, + MIN_CONFIRMATIONS, + callbackGasLimit, + NUM_WORDS + ); } - -// Call back - function fulfillRandomWords(uint256 _requestId, uint256[] memory _randomWords) internal virtual override { + /** + * @inheritdoc VRFConsumerBaseV2 + */ + // solhint-disable-next-line private-vars-leading-underscore + function fulfillRandomWords( + uint256 _requestId, + uint256[] memory _randomWords + ) internal virtual override(VRFConsumerBaseV2) { _fulfillRandomWords(_requestId, _randomWords); } -} \ No newline at end of file +} diff --git a/contracts/random/offchainsources/chainlink/VRFCoordinatorV2Interface.sol b/contracts/random/offchainsources/chainlink/VRFCoordinatorV2Interface.sol index 48a6a4bc..4f93a76e 100644 --- a/contracts/random/offchainsources/chainlink/VRFCoordinatorV2Interface.sol +++ b/contracts/random/offchainsources/chainlink/VRFCoordinatorV2Interface.sol @@ -1,115 +1,115 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.19; -// Code from Chainlink's repo. This file is currently not installed when calling +// Code from Chainlink's repo. This file is currently not installed when calling // npm install @chainlink/contracts interface VRFCoordinatorV2Interface { - /** - * @notice Get configuration relevant for making requests - * @return minimumRequestConfirmations global min for request confirmations - * @return maxGasLimit global max for request gas limit - * @return s_provingKeyHashes list of registered key hashes - */ - function getRequestConfig() external view returns (uint16, uint32, bytes32[] memory); + /** + * @notice Get configuration relevant for making requests + * @return minimumRequestConfirmations global min for request confirmations + * @return maxGasLimit global max for request gas limit + * @return s_provingKeyHashes list of registered key hashes + */ + function getRequestConfig() external view returns (uint16, uint32, bytes32[] memory); - /** - * @notice Request a set of random words. - * @param keyHash - Corresponds to a particular oracle job which uses - * that key for generating the VRF proof. Different keyHash's have different gas price - * ceilings, so you can select a specific one to bound your maximum per request cost. - * @param subId - The ID of the VRF subscription. Must be funded - * with the minimum subscription balance required for the selected keyHash. - * @param minimumRequestConfirmations - How many blocks you'd like the - * oracle to wait before responding to the request. See SECURITY CONSIDERATIONS - * for why you may want to request more. The acceptable range is - * [minimumRequestBlockConfirmations, 200]. - * @param callbackGasLimit - How much gas you'd like to receive in your - * fulfillRandomWords callback. Note that gasleft() inside fulfillRandomWords - * may be slightly less than this amount because of gas used calling the function - * (argument decoding etc.), so you may need to request slightly more than you expect - * to have inside fulfillRandomWords. The acceptable range is - * [0, maxGasLimit] - * @param numWords - The number of uint256 random values you'd like to receive - * in your fulfillRandomWords callback. Note these numbers are expanded in a - * secure way by the VRFCoordinator from a single random value supplied by the oracle. - * @return requestId - A unique identifier of the request. Can be used to match - * a request to a response in fulfillRandomWords. - */ - function requestRandomWords( - bytes32 keyHash, - uint64 subId, - uint16 minimumRequestConfirmations, - uint32 callbackGasLimit, - uint32 numWords - ) external returns (uint256 requestId); + /** + * @notice Request a set of random words. + * @param keyHash - Corresponds to a particular oracle job which uses + * that key for generating the VRF proof. Different keyHash's have different gas price + * ceilings, so you can select a specific one to bound your maximum per request cost. + * @param subId - The ID of the VRF subscription. Must be funded + * with the minimum subscription balance required for the selected keyHash. + * @param minimumRequestConfirmations - How many blocks you'd like the + * oracle to wait before responding to the request. See SECURITY CONSIDERATIONS + * for why you may want to request more. The acceptable range is + * [minimumRequestBlockConfirmations, 200]. + * @param callbackGasLimit - How much gas you'd like to receive in your + * fulfillRandomWords callback. Note that gasleft() inside fulfillRandomWords + * may be slightly less than this amount because of gas used calling the function + * (argument decoding etc.), so you may need to request slightly more than you expect + * to have inside fulfillRandomWords. The acceptable range is + * [0, maxGasLimit] + * @param numWords - The number of uint256 random values you'd like to receive + * in your fulfillRandomWords callback. Note these numbers are expanded in a + * secure way by the VRFCoordinator from a single random value supplied by the oracle. + * @return requestId - A unique identifier of the request. Can be used to match + * a request to a response in fulfillRandomWords. + */ + function requestRandomWords( + bytes32 keyHash, + uint64 subId, + uint16 minimumRequestConfirmations, + uint32 callbackGasLimit, + uint32 numWords + ) external returns (uint256 requestId); - /** - * @notice Create a VRF subscription. - * @return subId - A unique subscription id. - * @dev You can manage the consumer set dynamically with addConsumer/removeConsumer. - * @dev Note to fund the subscription, use transferAndCall. For example - * @dev LINKTOKEN.transferAndCall( - * @dev address(COORDINATOR), - * @dev amount, - * @dev abi.encode(subId)); - */ - function createSubscription() external returns (uint64 subId); + /** + * @notice Create a VRF subscription. + * @return subId - A unique subscription id. + * @dev You can manage the consumer set dynamically with addConsumer/removeConsumer. + * @dev Note to fund the subscription, use transferAndCall. For example + * @dev LINKTOKEN.transferAndCall( + * @dev address(COORDINATOR), + * @dev amount, + * @dev abi.encode(subId)); + */ + function createSubscription() external returns (uint64 subId); - /** - * @notice Get a VRF subscription. - * @param subId - ID of the subscription - * @return balance - LINK balance of the subscription in juels. - * @return reqCount - number of requests for this subscription, determines fee tier. - * @return owner - owner of the subscription. - * @return consumers - list of consumer address which are able to use this subscription. - */ - function getSubscription( - uint64 subId - ) external view returns (uint96 balance, uint64 reqCount, address owner, address[] memory consumers); + /** + * @notice Get a VRF subscription. + * @param subId - ID of the subscription + * @return balance - LINK balance of the subscription in juels. + * @return reqCount - number of requests for this subscription, determines fee tier. + * @return owner - owner of the subscription. + * @return consumers - list of consumer address which are able to use this subscription. + */ + function getSubscription( + uint64 subId + ) external view returns (uint96 balance, uint64 reqCount, address owner, address[] memory consumers); - /** - * @notice Request subscription owner transfer. - * @param subId - ID of the subscription - * @param newOwner - proposed new owner of the subscription - */ - function requestSubscriptionOwnerTransfer(uint64 subId, address newOwner) external; + /** + * @notice Request subscription owner transfer. + * @param subId - ID of the subscription + * @param newOwner - proposed new owner of the subscription + */ + function requestSubscriptionOwnerTransfer(uint64 subId, address newOwner) external; - /** - * @notice Request subscription owner transfer. - * @param subId - ID of the subscription - * @dev will revert if original owner of subId has - * not requested that msg.sender become the new owner. - */ - function acceptSubscriptionOwnerTransfer(uint64 subId) external; + /** + * @notice Request subscription owner transfer. + * @param subId - ID of the subscription + * @dev will revert if original owner of subId has + * not requested that msg.sender become the new owner. + */ + function acceptSubscriptionOwnerTransfer(uint64 subId) external; - /** - * @notice Add a consumer to a VRF subscription. - * @param subId - ID of the subscription - * @param consumer - New consumer which can use the subscription - */ - function addConsumer(uint64 subId, address consumer) external; + /** + * @notice Add a consumer to a VRF subscription. + * @param subId - ID of the subscription + * @param consumer - New consumer which can use the subscription + */ + function addConsumer(uint64 subId, address consumer) external; - /** - * @notice Remove a consumer from a VRF subscription. - * @param subId - ID of the subscription - * @param consumer - Consumer to remove from the subscription - */ - function removeConsumer(uint64 subId, address consumer) external; + /** + * @notice Remove a consumer from a VRF subscription. + * @param subId - ID of the subscription + * @param consumer - Consumer to remove from the subscription + */ + function removeConsumer(uint64 subId, address consumer) external; - /** - * @notice Cancel a subscription - * @param subId - ID of the subscription - * @param to - Where to send the remaining LINK to - */ - function cancelSubscription(uint64 subId, address to) external; + /** + * @notice Cancel a subscription + * @param subId - ID of the subscription + * @param to - Where to send the remaining LINK to + */ + function cancelSubscription(uint64 subId, address to) external; - /* - * @notice Check to see if there exists a request commitment consumers - * for all consumers and keyhashes for a given sub. - * @param subId - ID of the subscription - * @return true if there exists at least one unfulfilled request for the subscription, false - * otherwise. - */ - function pendingRequestExists(uint64 subId) external view returns (bool); + /* + * @notice Check to see if there exists a request commitment consumers + * for all consumers and keyhashes for a given sub. + * @param subId - ID of the subscription + * @return true if there exists at least one unfulfilled request for the subscription, false + * otherwise. + */ + function pendingRequestExists(uint64 subId) external view returns (bool); } diff --git a/contracts/random/offchainsources/supra/ISupraRouter.sol b/contracts/random/offchainsources/supra/ISupraRouter.sol index 98f7460b..727b3888 100644 --- a/contracts/random/offchainsources/supra/ISupraRouter.sol +++ b/contracts/random/offchainsources/supra/ISupraRouter.sol @@ -3,10 +3,21 @@ pragma solidity 0.8.19; /** * API for interacting with Supra's Verifiable Random Function. - * + * */ interface ISupraRouter { - function generateRequest(string memory _functionSig , uint8 _rngCount, uint256 _numConfirmations, uint256 _clientSeed,address _clientWalletAddress) external returns(uint256); - function generateRequest(string memory _functionSig , uint8 _rngCount, uint256 _numConfirmations, address _clientWalletAddress) external returns(uint256); + function generateRequest( + string memory _functionSig, + uint8 _rngCount, + uint256 _numConfirmations, + uint256 _clientSeed, + address _clientWalletAddress + ) external returns (uint256); + function generateRequest( + string memory _functionSig, + uint8 _rngCount, + uint256 _numConfirmations, + address _clientWalletAddress + ) external returns (uint256); } diff --git a/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol b/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol index 9a95a0f5..5979a078 100644 --- a/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol +++ b/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol @@ -2,23 +2,32 @@ // SPDX-License-Identifier: Apache 2 pragma solidity 0.8.19; -import "./ISupraRouter.sol"; -import "../SourceAdaptorBase.sol"; - +import {ISupraRouter} from "./ISupraRouter.sol"; +import {SourceAdaptorBase} from "../SourceAdaptorBase.sol"; contract SupraSourceAdaptor is SourceAdaptorBase { error NotVrfContract(); address public subscriptionAccount; - constructor(address _roleAdmin, address _configAdmin, address _vrfCoordinator, address _subscription) - SourceAdaptorBase(_roleAdmin, _configAdmin, _vrfCoordinator) { + constructor( + address _roleAdmin, + address _configAdmin, + address _vrfCoordinator, + address _subscription + ) SourceAdaptorBase(_roleAdmin, _configAdmin, _vrfCoordinator) { subscriptionAccount = _subscription; } - function requestOffchainRandom() external returns(uint256 _requestId) { - return ISupraRouter(vrfCoordinator).generateRequest("fulfillRandomWords(uint256,uint256[])", - uint8(NUM_WORDS), MIN_CONFIRMATIONS, 123, subscriptionAccount); + function requestOffchainRandom() external returns (uint256 _requestId) { + return + ISupraRouter(vrfCoordinator).generateRequest( + "fulfillRandomWords(uint256,uint256[])", + uint8(NUM_WORDS), + MIN_CONFIRMATIONS, + 123, + subscriptionAccount + ); } function fulfillRandomWords(uint256 _requestId, uint256[] calldata _randomWords) external { @@ -26,7 +35,6 @@ contract SupraSourceAdaptor is SourceAdaptorBase { revert NotVrfContract(); } - _fulfillRandomWords(_requestId, _randomWords); } -} \ No newline at end of file +} diff --git a/contracts/token/erc1155/abstract/ImmutableERC1155Base.sol b/contracts/token/erc1155/abstract/ImmutableERC1155Base.sol index d4e818cd..ccf9c903 100644 --- a/contracts/token/erc1155/abstract/ImmutableERC1155Base.sol +++ b/contracts/token/erc1155/abstract/ImmutableERC1155Base.sol @@ -11,11 +11,7 @@ import "../../../allowlist/OperatorAllowlistEnforced.sol"; // Utils import "@openzeppelin/contracts/utils/structs/BitMaps.sol"; -abstract contract ImmutableERC1155Base is - OperatorAllowlistEnforced, - ERC1155Permit, - ERC2981 -{ +abstract contract ImmutableERC1155Base is OperatorAllowlistEnforced, ERC1155Permit, ERC2981 { /// @dev Contract level metadata string public contractURI; @@ -67,7 +63,7 @@ abstract contract ImmutableERC1155Base is * @param tokenId The token identifier to set the royalty receiver for. * @param receiver The address of the royalty receiver * @param feeNumerator The royalty fee numerator - */ + */ function setNFTRoyaltyReceiver( uint256 tokenId, address receiver, @@ -81,7 +77,7 @@ abstract contract ImmutableERC1155Base is * @param tokenIds The token identifiers to set the royalty receiver for. * @param receiver The address of the royalty receiver * @param feeNumerator The royalty fee numerator - */ + */ function setNFTRoyaltyReceiverBatch( uint256[] calldata tokenIds, address receiver, @@ -122,8 +118,8 @@ abstract contract ImmutableERC1155Base is * @param baseURI_ The base URI for all tokens */ function setBaseURI(string memory baseURI_) public onlyRole(DEFAULT_ADMIN_ROLE) { - _setURI(baseURI_); - _baseURI = baseURI_; + _setURI(baseURI_); + _baseURI = baseURI_; } /// @dev Allows admin to set the contract URI @@ -154,13 +150,7 @@ abstract contract ImmutableERC1155Base is */ function supportsInterface( bytes4 interfaceId - ) - public - view - virtual - override(ERC1155Permit, ERC2981, OperatorAllowlistEnforced) - returns (bool) - { + ) public view virtual override(ERC1155Permit, ERC2981, OperatorAllowlistEnforced) returns (bool) { return super.supportsInterface(interfaceId); } @@ -255,7 +245,13 @@ abstract contract ImmutableERC1155Base is * @param value The amount to transfer. * @param data Additional data with no specified format, sent in call to `to`. */ - function _safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes memory data) internal override validateTransfer(from, to) { + function _safeTransferFrom( + address from, + address to, + uint256 id, + uint256 value, + bytes memory data + ) internal override validateTransfer(from, to) { super._safeTransferFrom(from, to, id, value, data); } @@ -267,9 +263,13 @@ abstract contract ImmutableERC1155Base is * @param values The amounts to transfer per token id. * @param data Additional data with no specified format, sent in call to `to`. */ - function _safeBatchTransferFrom(address from, address to, uint256[] memory ids, uint256[] memory values, bytes memory data) internal override validateTransfer(from, to) { + function _safeBatchTransferFrom( + address from, + address to, + uint256[] memory ids, + uint256[] memory values, + bytes memory data + ) internal override validateTransfer(from, to) { super._safeBatchTransferFrom(from, to, ids, values, data); } - - } diff --git a/contracts/token/erc1155/preset/draft-ImmutableERC1155.sol b/contracts/token/erc1155/preset/draft-ImmutableERC1155.sol index de6469ed..f84fe0d9 100644 --- a/contracts/token/erc1155/preset/draft-ImmutableERC1155.sol +++ b/contracts/token/erc1155/preset/draft-ImmutableERC1155.sol @@ -12,7 +12,7 @@ import "../abstract/ImmutableERC1155Base.sol"; */ contract ImmutableERC1155 is ImmutableERC1155Base { - /// ===== Constructor ===== + /// ===== Constructor ===== /** * @notice Grants `DEFAULT_ADMIN_ROLE` to the supplied `owner` address @@ -30,9 +30,7 @@ contract ImmutableERC1155 is ImmutableERC1155Base { address _operatorAllowlist, address _receiver, uint96 _feeNumerator - ) - ImmutableERC1155Base(owner, name_, baseURI_, contractURI_, _operatorAllowlist, _receiver, _feeNumerator) - {} + ) ImmutableERC1155Base(owner, name_, baseURI_, contractURI_, _operatorAllowlist, _receiver, _feeNumerator) {} /// ===== External functions ===== @@ -40,7 +38,12 @@ contract ImmutableERC1155 is ImmutableERC1155Base { super._mint(to, id, value, data); } - function safeMintBatch(address to, uint256[] calldata ids, uint256[] calldata values, bytes memory data) external onlyRole(MINTER_ROLE) { + function safeMintBatch( + address to, + uint256[] calldata ids, + uint256[] calldata values, + bytes memory data + ) external onlyRole(MINTER_ROLE) { super._mintBatch(to, ids, values, data); } } diff --git a/contracts/token/erc721/abstract/ERC721Hybrid.sol b/contracts/token/erc721/abstract/ERC721Hybrid.sol index 0a5b136e..ab3dc54d 100644 --- a/contracts/token/erc721/abstract/ERC721Hybrid.sol +++ b/contracts/token/erc721/abstract/ERC721Hybrid.sol @@ -56,7 +56,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err /** @notice allows caller to burn multiple tokens by id * @param tokenIDs an array of token ids - */ + */ function burnBatch(uint256[] calldata tokenIDs) external { for (uint i = 0; i < tokenIDs.length; i++) { burn(tokenIDs[i]); @@ -65,7 +65,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err /** @notice burns the specified token id * @param tokenId the id of the token to burn - */ + */ function burn(uint256 tokenId) public virtual { if (!_isApprovedOrOwner(_msgSender(), tokenId)) { revert IImmutableERC721NotOwnerOrOperator(tokenId); @@ -76,7 +76,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err /** @notice Burn a token, checking the owner of the token against the parameter first. * @param owner the owner of the token * @param tokenId the id of the token to burn - */ + */ function safeBurn(address owner, uint256 tokenId) public virtual { address currentOwner = ownerOf(tokenId); if (currentOwner != owner) { @@ -92,7 +92,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err function mintBatchByQuantityThreshold() public pure virtual returns (uint256) { return 2 ** 128; } - + /** @notice checks to see if tokenID exists in the collection * @param tokenId the id of the token to check **/ @@ -113,7 +113,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err function totalSupply() public view override(ERC721PsiBurnable) returns (uint256) { return ERC721PsiBurnable.totalSupply() + _idMintTotalSupply; } - + /** @notice refer to erc721 or erc721psi */ function ownerOf(uint256 tokenId) public view virtual override(ERC721, ERC721Psi) returns (address) { if (tokenId < mintBatchByQuantityThreshold()) { @@ -216,7 +216,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err /** @notice mints number of tokens specified to the address given via erc721psi * @param to the address to mint to * @param quantity the number of tokens to mint - */ + */ function _mintByQuantity(address to, uint256 quantity) internal { ERC721Psi._mint(to, quantity); } @@ -224,14 +224,14 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err /** @notice safe mints number of tokens specified to the address given via erc721psi * @param to the address to mint to * @param quantity the number of tokens to mint - */ + */ function _safeMintByQuantity(address to, uint256 quantity) internal { ERC721Psi._safeMint(to, quantity); } /** @notice mints number of tokens specified to a multiple specified addresses via erc721psi * @param mints an array of mint requests - */ + */ function _mintBatchByQuantity(Mint[] calldata mints) internal { for (uint i = 0; i < mints.length; i++) { Mint calldata m = mints[i]; @@ -241,7 +241,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err /** @notice safe mints number of tokens specified to a multiple specified addresses via erc721psi * @param mints an array of mint requests - */ + */ function _safeMintBatchByQuantity(Mint[] calldata mints) internal { for (uint i = 0; i < mints.length; i++) { Mint calldata m = mints[i]; @@ -249,11 +249,10 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err } } - /** @notice safe mints number of tokens specified to a multiple specified addresses via erc721 * @param to the address to mint to * @param tokenId the id of the token to mint - */ + */ function _mintByID(address to, uint256 tokenId) internal { if (tokenId >= mintBatchByQuantityThreshold()) { revert IImmutableERC721IDAboveThreshold(tokenId); @@ -262,7 +261,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err if (_burnedTokens.get(tokenId)) { revert IImmutableERC721TokenAlreadyBurned(tokenId); } - + _idMintTotalSupply++; ERC721._mint(to, tokenId); } @@ -281,10 +280,10 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err } _idMintTotalSupply++; - ERC721._safeMint(to, tokenId); + ERC721._safeMint(to, tokenId); } - /** @notice mints multiple tokens by id to a specified address via erc721 + /** @notice mints multiple tokens by id to a specified address via erc721 * @param to the address to mint to * @param tokenIds the ids of the tokens to mint */ @@ -294,7 +293,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err } } - /** @notice safe mints multiple tokens by id to a specified address via erc721 + /** @notice safe mints multiple tokens by id to a specified address via erc721 * @param to the address to mint to * @param tokenIds the ids of the tokens to mint **/ @@ -325,8 +324,8 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err } /** @notice batch burn a tokens by id, checking the owner of the token against the parameter first. - * @param burns array of burn requests - */ + * @param burns array of burn requests + */ function _safeBurnBatch(IDBurn[] calldata burns) internal { for (uint i = 0; i < burns.length; i++) { IDBurn calldata b = burns[i]; @@ -436,5 +435,4 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err function _baseURI() internal view virtual override(ERC721, ERC721Psi) returns (string memory) { return ERC721._baseURI(); } - -} \ No newline at end of file +} diff --git a/contracts/token/erc721/abstract/ERC721Permit.sol b/contracts/token/erc721/abstract/ERC721Permit.sol index 99026027..47fdefea 100644 --- a/contracts/token/erc721/abstract/ERC721Permit.sol +++ b/contracts/token/erc721/abstract/ERC721Permit.sol @@ -17,30 +17,26 @@ import {IImmutableERC721Errors} from "../../../errors/Errors.sol"; * @dev This contract implements ERC-4494 as well, allowing tokens to be approved via off-chain signed messages. */ -abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableERC721Errors{ - +abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableERC721Errors { /** @notice mapping used to keep track of nonces of each token ID for validating * signatures */ mapping(uint256 => uint256) private _nonces; - /** @dev the unique identifier for the permit struct to be EIP 712 compliant */ - bytes32 private constant _PERMIT_TYPEHASH = keccak256( - abi.encodePacked( - "Permit(", + bytes32 private constant _PERMIT_TYPEHASH = + keccak256( + abi.encodePacked( + "Permit(", "address spender," "uint256 tokenId," "uint256 nonce," "uint256 deadline" - ")" - ) - ); + ")" + ) + ); - constructor(string memory name, string memory symbol) - ERC721(name, symbol) - EIP712(name, "1") - {} + constructor(string memory name, string memory symbol) ERC721(name, symbol) EIP712(name, "1") {} /** * @notice Function to approve by way of owner signature @@ -49,12 +45,7 @@ abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableER * @param deadline a timestamp expiry for the permit * @param sig a traditional or EIP-2098 signature */ - function permit( - address spender, - uint256 tokenId, - uint256 deadline, - bytes memory sig - ) external override { + function permit(address spender, uint256 tokenId, uint256 deadline, bytes memory sig) external override { _permit(spender, tokenId, deadline, sig); } @@ -63,9 +54,7 @@ abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableER * @param tokenId The ID of the token for which to retrieve the nonce. * @return Current nonce of the given token. */ - function nonces( - uint256 tokenId - ) external view returns (uint256) { + function nonces(uint256 tokenId) external view returns (uint256) { return _nonces[tokenId]; } @@ -82,16 +71,10 @@ abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableER * @param interfaceId The interface identifier, which is a 4-byte selector. * @return True if the contract implements `interfaceId` and the call doesn't revert, otherwise false. */ - function supportsInterface(bytes4 interfaceId) - public - view - virtual - override(IERC165, ERC721) - returns (bool) - { - return - interfaceId == type(IERC4494).interfaceId || // 0x5604e225 - super.supportsInterface(interfaceId); + function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) { + return + interfaceId == type(IERC4494).interfaceId || // 0x5604e225 + super.supportsInterface(interfaceId); } /** @@ -100,21 +83,12 @@ abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableER * @param to The address to which the token is being transferred. * @param tokenId The ID of the token being transferred. */ - function _transfer( - address from, - address to, - uint256 tokenId - ) internal virtual override(ERC721){ + function _transfer(address from, address to, uint256 tokenId) internal virtual override(ERC721) { _nonces[tokenId]++; super._transfer(from, to, tokenId); } - function _permit( - address spender, - uint256 tokenId, - uint256 deadline, - bytes memory sig - ) internal virtual { + function _permit(address spender, uint256 tokenId, uint256 deadline, bytes memory sig) internal virtual { if (deadline < block.timestamp) { revert PermitExpired(); } @@ -158,22 +132,8 @@ abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableER * @param deadline The deadline until which the permit is valid. * @return A bytes32 digest, EIP-712 compliant, that serves as a unique identifier for the permit. */ - function _buildPermitDigest( - address spender, - uint256 tokenId, - uint256 deadline - ) internal view returns (bytes32) { - return _hashTypedDataV4( - keccak256( - abi.encode( - _PERMIT_TYPEHASH, - spender, - tokenId, - _nonces[tokenId], - deadline - ) - ) - ); + function _buildPermitDigest(address spender, uint256 tokenId, uint256 deadline) internal view returns (bytes32) { + return _hashTypedDataV4(keccak256(abi.encode(_PERMIT_TYPEHASH, spender, tokenId, _nonces[tokenId], deadline))); } /** @@ -182,7 +142,7 @@ abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableER * @param tokenId The token id. * @return True if the signature is from an approved operator or owner, otherwise false. */ - function _isValidEOASignature(address recoveredSigner, uint256 tokenId) private view returns(bool) { + function _isValidEOASignature(address recoveredSigner, uint256 tokenId) private view returns (bool) { return recoveredSigner != address(0) && _isApprovedOrOwner(recoveredSigner, tokenId); } @@ -193,13 +153,9 @@ abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableER * @param sig The actual signature bytes. * @return True if the signature is valid according to EIP-1271, otherwise false. */ - function _isValidERC1271Signature(address spender, bytes32 digest, bytes memory sig) private view returns(bool) { + function _isValidERC1271Signature(address spender, bytes32 digest, bytes memory sig) private view returns (bool) { (bool success, bytes memory res) = spender.staticcall( - abi.encodeWithSelector( - IERC1271.isValidSignature.selector, - digest, - sig - ) + abi.encodeWithSelector(IERC1271.isValidSignature.selector, digest, sig) ); if (success && res.length == 32) { diff --git a/contracts/token/erc721/abstract/IERC4494.sol b/contracts/token/erc721/abstract/IERC4494.sol index 37b7023d..6097c488 100644 --- a/contracts/token/erc721/abstract/IERC4494.sol +++ b/contracts/token/erc721/abstract/IERC4494.sol @@ -8,23 +8,23 @@ import "@openzeppelin/contracts/interfaces/IERC165.sol"; /// @dev Interface for token permits for ERC721 /// interface IERC4494 is IERC165 { - /// ERC165 bytes to add to interface array - set in parent contract - /// - /// _INTERFACE_ID_ERC4494 = 0x5604e225 + /// ERC165 bytes to add to interface array - set in parent contract + /// + /// _INTERFACE_ID_ERC4494 = 0x5604e225 - /// @notice Function to approve by way of owner signature - /// @param spender the address to approve - /// @param tokenId the index of the NFT to approve the spender on - /// @param deadline a timestamp expiry for the permit - /// @param sig a traditional or EIP-2098 signature - function permit(address spender, uint256 tokenId, uint256 deadline, bytes memory sig) external; + /// @notice Function to approve by way of owner signature + /// @param spender the address to approve + /// @param tokenId the index of the NFT to approve the spender on + /// @param deadline a timestamp expiry for the permit + /// @param sig a traditional or EIP-2098 signature + function permit(address spender, uint256 tokenId, uint256 deadline, bytes memory sig) external; - /// @notice Returns the nonce of an NFT - useful for creating permits - /// @param tokenId the index of the NFT to get the nonce of - /// @return the uint256 representation of the nonce - function nonces(uint256 tokenId) external view returns(uint256); + /// @notice Returns the nonce of an NFT - useful for creating permits + /// @param tokenId the index of the NFT to get the nonce of + /// @return the uint256 representation of the nonce + function nonces(uint256 tokenId) external view returns (uint256); - /// @notice Returns the domain separator used in the encoding of the signature for permits, as defined by EIP-712 - /// @return the bytes32 domain separator - function DOMAIN_SEPARATOR() external view returns(bytes32); + /// @notice Returns the domain separator used in the encoding of the signature for permits, as defined by EIP-712 + /// @return the bytes32 domain separator + function DOMAIN_SEPARATOR() external view returns (bytes32); } diff --git a/contracts/token/erc721/abstract/ImmutableERC721Base.sol b/contracts/token/erc721/abstract/ImmutableERC721Base.sol index 900719ee..47bbba65 100644 --- a/contracts/token/erc721/abstract/ImmutableERC721Base.sol +++ b/contracts/token/erc721/abstract/ImmutableERC721Base.sol @@ -11,8 +11,7 @@ import "../../../allowlist/OperatorAllowlistEnforced.sol"; // Utils import "@openzeppelin/contracts/utils/structs/BitMaps.sol"; -import { AccessControlEnumerable, MintingAccessControl } from "./MintingAccessControl.sol"; - +import {AccessControlEnumerable, MintingAccessControl} from "./MintingAccessControl.sol"; /* ImmutableERC721Base is an abstract contract that offers minimum preset functionality without @@ -20,12 +19,7 @@ import { AccessControlEnumerable, MintingAccessControl } from "./MintingAccessCo own minting functionality to meet the needs of the inheriting contract. */ -abstract contract ImmutableERC721Base is - OperatorAllowlistEnforced, - MintingAccessControl, - ERC721Permit, - ERC2981 -{ +abstract contract ImmutableERC721Base is OperatorAllowlistEnforced, MintingAccessControl, ERC721Permit, ERC2981 { using BitMaps for BitMaps.BitMap; /// ===== State Variables ===== @@ -96,7 +90,7 @@ abstract contract ImmutableERC721Base is * @param receiver the address to receive the royalty * @param feeNumerator the royalty fee numerator * @dev This can only be called by the an admin. See ERC2981 for more details on _setDefaultRoyalty - */ + */ function setDefaultRoyaltyReceiver(address receiver, uint96 feeNumerator) public onlyRole(DEFAULT_ADMIN_ROLE) { _setDefaultRoyalty(receiver, feeNumerator); } @@ -106,7 +100,7 @@ abstract contract ImmutableERC721Base is * @param receiver the address to receive the royalty * @param feeNumerator the royalty fee numerator * @dev This can only be called by the a minter. See ERC2981 for more details on _setTokenRoyalty - */ + */ function setNFTRoyaltyReceiver( uint256 tokenId, address receiver, @@ -120,7 +114,7 @@ abstract contract ImmutableERC721Base is * @param receiver the address to receive the royalty * @param feeNumerator the royalty fee numerator * @dev This can only be called by the a minter. See ERC2981 for more details on _setTokenRoyalty - */ + */ function setNFTRoyaltyReceiverBatch( uint256[] calldata tokenIds, address receiver, @@ -192,7 +186,7 @@ abstract contract ImmutableERC721Base is /** @notice Returns the supported interfaces * @param interfaceId the interface to check for support - */ + */ function supportsInterface( bytes4 interfaceId ) @@ -240,12 +234,11 @@ abstract contract ImmutableERC721Base is if (mintRequest.to == address(0)) { revert IImmutableERC721SendingToZerothAddress(); } - + _totalSupply = _totalSupply + mintRequest.tokenIds.length; for (uint256 j = 0; j < mintRequest.tokenIds.length; j++) { _mint(mintRequest.to, mintRequest.tokenIds[j]); } - } /** @notice safe mints a batch of tokens with specified ids to a specified address @@ -290,5 +283,4 @@ abstract contract ImmutableERC721Base is function _baseURI() internal view virtual override(ERC721) returns (string memory) { return baseURI; } - } diff --git a/contracts/token/erc721/abstract/ImmutableERC721HybridBase.sol b/contracts/token/erc721/abstract/ImmutableERC721HybridBase.sol index 534d12bc..c4034918 100644 --- a/contracts/token/erc721/abstract/ImmutableERC721HybridBase.sol +++ b/contracts/token/erc721/abstract/ImmutableERC721HybridBase.sol @@ -2,21 +2,24 @@ // SPDX-License-Identifier: Apache 2.0 pragma solidity 0.8.19; -import { AccessControlEnumerable, MintingAccessControl } from "./MintingAccessControl.sol"; -import { ERC2981 } from "@openzeppelin/contracts/token/common/ERC2981.sol"; -import { OperatorAllowlistEnforced } from "../../../allowlist/OperatorAllowlistEnforced.sol"; -import { ERC721HybridPermit } from "./ERC721HybridPermit.sol"; -import { ERC721Hybrid } from "./ERC721Hybrid.sol"; - -abstract contract ImmutableERC721HybridBase is OperatorAllowlistEnforced, MintingAccessControl, ERC2981, ERC721HybridPermit { +import {AccessControlEnumerable, MintingAccessControl} from "./MintingAccessControl.sol"; +import {ERC2981} from "@openzeppelin/contracts/token/common/ERC2981.sol"; +import {OperatorAllowlistEnforced} from "../../../allowlist/OperatorAllowlistEnforced.sol"; +import {ERC721HybridPermit} from "./ERC721HybridPermit.sol"; +import {ERC721Hybrid} from "./ERC721Hybrid.sol"; +abstract contract ImmutableERC721HybridBase is + OperatorAllowlistEnforced, + MintingAccessControl, + ERC2981, + ERC721HybridPermit +{ /// @notice Contract level metadata string public contractURI; /// @notice Common URIs for individual token URIs string public baseURI; - /** * @notice Grants `DEFAULT_ADMIN_ROLE` to the supplied `owner` address * @param owner_ The address to grant the `DEFAULT_ADMIN_ROLE` to @@ -38,7 +41,7 @@ abstract contract ImmutableERC721HybridBase is OperatorAllowlistEnforced, Mintin address operatorAllowlist_, address receiver_, uint96 feeNumerator_ - )ERC721HybridPermit(name_, symbol_) { + ) ERC721HybridPermit(name_, symbol_) { // Initialize state variables _grantRole(DEFAULT_ADMIN_ROLE, owner_); _setDefaultRoyalty(receiver_, feeNumerator_); @@ -119,7 +122,7 @@ abstract contract ImmutableERC721HybridBase is OperatorAllowlistEnforced, Mintin function setDefaultRoyaltyReceiver(address receiver, uint96 feeNumerator) public onlyRole(DEFAULT_ADMIN_ROLE) { _setDefaultRoyalty(receiver, feeNumerator); } - + /** @notice Set the royalty receiver address for a specific tokenId * @param tokenId the token to set the royalty for * @param receiver the address to receive the royalty @@ -139,7 +142,7 @@ abstract contract ImmutableERC721HybridBase is OperatorAllowlistEnforced, Mintin * @param receiver the address to receive the royalty * @param feeNumerator the royalty fee numerator * @dev This can only be called by the a minter. See ERC2981 for more details on _setTokenRoyalty - */ + */ function setNFTRoyaltyReceiverBatch( uint256[] calldata tokenIds, address receiver, diff --git a/contracts/token/erc721/abstract/MintingAccessControl.sol b/contracts/token/erc721/abstract/MintingAccessControl.sol index a363a1d4..53564302 100644 --- a/contracts/token/erc721/abstract/MintingAccessControl.sol +++ b/contracts/token/erc721/abstract/MintingAccessControl.sol @@ -5,11 +5,10 @@ pragma solidity 0.8.19; import {AccessControlEnumerable} from "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; abstract contract MintingAccessControl is AccessControlEnumerable { - /// @notice Role to mint tokens bytes32 public constant MINTER_ROLE = bytes32("MINTER_ROLE"); - /** @notice Allows admin grant `user` `MINTER` role + /** @notice Allows admin grant `user` `MINTER` role * @param user The address to grant the `MINTER` role to */ function grantMinterRole(address user) public onlyRole(DEFAULT_ADMIN_ROLE) { @@ -23,7 +22,7 @@ abstract contract MintingAccessControl is AccessControlEnumerable { revokeRole(MINTER_ROLE, user); } - /** @notice Returns the addresses which have DEFAULT_ADMIN_ROLE */ + /** @notice Returns the addresses which have DEFAULT_ADMIN_ROLE */ function getAdmins() public view returns (address[] memory) { uint256 adminCount = getRoleMemberCount(DEFAULT_ADMIN_ROLE); address[] memory admins = new address[](adminCount); diff --git a/contracts/token/erc721/preset/ImmutableERC721.sol b/contracts/token/erc721/preset/ImmutableERC721.sol index 43e63187..8c7136ac 100644 --- a/contracts/token/erc721/preset/ImmutableERC721.sol +++ b/contracts/token/erc721/preset/ImmutableERC721.sol @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache 2.0 pragma solidity 0.8.19; -import { MintingAccessControl } from "../abstract/MintingAccessControl.sol"; -import { ImmutableERC721HybridBase } from "../abstract/ImmutableERC721HybridBase.sol"; +import {MintingAccessControl} from "../abstract/MintingAccessControl.sol"; +import {ImmutableERC721HybridBase} from "../abstract/ImmutableERC721HybridBase.sol"; contract ImmutableERC721 is ImmutableERC721HybridBase { /// ===== Constructor ===== @@ -88,7 +88,7 @@ contract ImmutableERC721 is ImmutableERC721HybridBase { function safeMintBatchByQuantity(Mint[] calldata mints) external onlyRole(MINTER_ROLE) { _safeMintBatchByQuantity(mints); } - + /** @notice Allows minter to safe mint a number of tokens by ID to a number of specified * addresses with hooks and checks. Check ERC721Hybrid for details on _mintBatchByIDToMultiple * @param mints the list of IDMint struct containing the to, and tokenIds diff --git a/contracts/token/erc721/preset/ImmutableERC721MintByID.sol b/contracts/token/erc721/preset/ImmutableERC721MintByID.sol index 182b387f..9e7eeb41 100644 --- a/contracts/token/erc721/preset/ImmutableERC721MintByID.sol +++ b/contracts/token/erc721/preset/ImmutableERC721MintByID.sol @@ -29,10 +29,18 @@ contract ImmutableERC721MintByID is ImmutableERC721Base { address royaltyReceiver_, uint96 feeNumerator_ ) - ImmutableERC721Base(owner_, name_, symbol_, baseURI_, contractURI_, operatorAllowlist_, royaltyReceiver_, feeNumerator_) + ImmutableERC721Base( + owner_, + name_, + symbol_, + baseURI_, + contractURI_, + operatorAllowlist_, + royaltyReceiver_, + feeNumerator_ + ) {} - /** @notice Allows minter to mint `tokenID` to `to` * @param to the address to mint the token to * @param tokenID the ID of the token to mint diff --git a/contracts/token/erc721/x/Asset.sol b/contracts/token/erc721/x/Asset.sol index 9386a1cc..76ebd36e 100644 --- a/contracts/token/erc721/x/Asset.sol +++ b/contracts/token/erc721/x/Asset.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; -import { ERC721 } from "@openzeppelin/contracts/token/ERC721/ERC721.sol"; -import { Mintable } from "./Mintable.sol"; +import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol"; +import {Mintable} from "./Mintable.sol"; contract Asset is ERC721, Mintable { constructor( @@ -12,11 +12,7 @@ contract Asset is ERC721, Mintable { address _imx ) ERC721(_name, _symbol) Mintable(_owner, _imx) {} - function _mintFor( - address user, - uint256 id, - bytes memory - ) internal override { + function _mintFor(address user, uint256 id, bytes memory) internal override { _safeMint(user, id); } -} \ No newline at end of file +} diff --git a/contracts/token/erc721/x/IMintable.sol b/contracts/token/erc721/x/IMintable.sol index ea0229ca..580df4a8 100644 --- a/contracts/token/erc721/x/IMintable.sol +++ b/contracts/token/erc721/x/IMintable.sol @@ -2,9 +2,5 @@ pragma solidity ^0.8.4; interface IMintable { - function mintFor( - address to, - uint256 quantity, - bytes calldata mintingBlob - ) external; -} \ No newline at end of file + function mintFor(address to, uint256 quantity, bytes calldata mintingBlob) external; +} diff --git a/contracts/token/erc721/x/Mintable.sol b/contracts/token/erc721/x/Mintable.sol index d20eb2dc..60bcf190 100644 --- a/contracts/token/erc721/x/Mintable.sol +++ b/contracts/token/erc721/x/Mintable.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; -import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol"; -import { IMintable } from "./IMintable.sol"; -import { Minting } from "./utils/Minting.sol"; +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {IMintable} from "./IMintable.sol"; +import {Minting} from "./utils/Minting.sol"; abstract contract Mintable is Ownable, IMintable { address public imx; @@ -22,11 +22,7 @@ abstract contract Mintable is Ownable, IMintable { _; } - function mintFor( - address user, - uint256 quantity, - bytes calldata mintingBlob - ) external override onlyOwnerOrIMX { + function mintFor(address user, uint256 quantity, bytes calldata mintingBlob) external override onlyOwnerOrIMX { require(quantity == 1, "Mintable: invalid quantity"); (uint256 id, bytes memory blueprint) = Minting.split(mintingBlob); _mintFor(user, id, blueprint); @@ -34,9 +30,5 @@ abstract contract Mintable is Ownable, IMintable { emit AssetMinted(user, id, blueprint); } - function _mintFor( - address to, - uint256 id, - bytes memory blueprint - ) internal virtual; -} \ No newline at end of file + function _mintFor(address to, uint256 id, bytes memory blueprint) internal virtual; +} diff --git a/contracts/token/erc721/x/utils/Bytes.sol b/contracts/token/erc721/x/utils/Bytes.sol index ae0c3013..3c633272 100644 --- a/contracts/token/erc721/x/utils/Bytes.sol +++ b/contracts/token/erc721/x/utils/Bytes.sol @@ -45,11 +45,7 @@ library Bytes { * @return int The position of the needle starting from 0 and returning -1 * in the case of no matches found */ - function indexOf( - bytes memory _base, - string memory _value, - uint256 _offset - ) internal pure returns (int256) { + function indexOf(bytes memory _base, string memory _value, uint256 _offset) internal pure returns (int256) { bytes memory _valueBytes = bytes(_value); assert(_valueBytes.length == 1); @@ -89,4 +85,4 @@ library Bytes { } return result; } -} \ No newline at end of file +} diff --git a/contracts/token/erc721/x/utils/Minting.sol b/contracts/token/erc721/x/utils/Minting.sol index ae5fe076..beada939 100644 --- a/contracts/token/erc721/x/utils/Minting.sol +++ b/contracts/token/erc721/x/utils/Minting.sol @@ -1,17 +1,13 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; -import { Bytes } from "./Bytes.sol"; +import {Bytes} from "./Bytes.sol"; library Minting { // Split the minting blob into token_id and blueprint portions // {token_id}:{blueprint} - function split(bytes calldata blob) - internal - pure - returns (uint256, bytes memory) - { + function split(bytes calldata blob) internal pure returns (uint256, bytes memory) { int256 index = Bytes.indexOf(blob, ":", 0); require(index >= 0, "Separator must exist"); // Trim the { and } from the parameters @@ -23,4 +19,4 @@ library Minting { bytes calldata blueprint = blob[uint256(index) + 2:blob.length - 1]; return (tokenID, blueprint); } -} \ No newline at end of file +} diff --git a/contracts/trading/seaport/ImmutableSeaport.sol b/contracts/trading/seaport/ImmutableSeaport.sol index 05dcd27b..ab63a148 100644 --- a/contracts/trading/seaport/ImmutableSeaport.sol +++ b/contracts/trading/seaport/ImmutableSeaport.sol @@ -2,22 +2,11 @@ // SPDX-License-Identifier: Apache-2 pragma solidity 0.8.17; -import { Consideration } from "seaport-core/src/lib/Consideration.sol"; -import { - AdvancedOrder, - BasicOrderParameters, - CriteriaResolver, - Execution, - Fulfillment, - FulfillmentComponent, - Order, - OrderComponents -} from "seaport-types/src/lib/ConsiderationStructs.sol"; -import { OrderType } from "seaport-types/src/lib/ConsiderationEnums.sol"; -import { Ownable2Step } from "@openzeppelin/contracts/access/Ownable2Step.sol"; -import { - ImmutableSeaportEvents -} from "./interfaces/ImmutableSeaportEvents.sol"; +import {Consideration} from "seaport-core/src/lib/Consideration.sol"; +import {AdvancedOrder, BasicOrderParameters, CriteriaResolver, Execution, Fulfillment, FulfillmentComponent, Order, OrderComponents} from "seaport-types/src/lib/ConsiderationStructs.sol"; +import {OrderType} from "seaport-types/src/lib/ConsiderationEnums.sol"; +import {Ownable2Step} from "@openzeppelin/contracts/access/Ownable2Step.sol"; +import {ImmutableSeaportEvents} from "./interfaces/ImmutableSeaportEvents.sol"; /** * @title ImmutableSeaport @@ -29,11 +18,7 @@ import { * spent (the "offer") along with an arbitrary number of items that must * be received back by the indicated recipients (the "consideration"). */ -contract ImmutableSeaport is - Consideration, - Ownable2Step, - ImmutableSeaportEvents -{ +contract ImmutableSeaport is Consideration, Ownable2Step, ImmutableSeaportEvents { // Mapping to store valid ImmutableZones - this allows for multiple Zones // to be active at the same time, and can be expired or added on demand. mapping(address => bool) public allowedZones; @@ -49,9 +34,7 @@ contract ImmutableSeaport is * that may optionally be used to transfer approved * ERC20/721/1155 tokens. */ - constructor( - address conduitController - ) Consideration(conduitController) Ownable2Step() {} + constructor(address conduitController) Consideration(conduitController) Ownable2Step() {} /** * @dev Set the validity of a zone for use during fulfillment. @@ -121,10 +104,7 @@ contract ImmutableSeaport is BasicOrderParameters calldata parameters ) public payable virtual override returns (bool fulfilled) { // All restricted orders are captured using this method - if ( - uint(parameters.basicOrderType) % 4 != 2 && - uint(parameters.basicOrderType) % 4 != 3 - ) { + if (uint(parameters.basicOrderType) % 4 != 2 && uint(parameters.basicOrderType) % 4 != 3) { revert OrderNotRestricted(); } @@ -165,10 +145,7 @@ contract ImmutableSeaport is BasicOrderParameters calldata parameters ) public payable virtual override returns (bool fulfilled) { // All restricted orders are captured using this method - if ( - uint(parameters.basicOrderType) % 4 != 2 && - uint(parameters.basicOrderType) % 4 != 3 - ) { + if (uint(parameters.basicOrderType) % 4 != 2 && uint(parameters.basicOrderType) % 4 != 3) { revert OrderNotRestricted(); } @@ -282,13 +259,7 @@ contract ImmutableSeaport is _rejectIfZoneInvalid(advancedOrder.parameters.zone); - return - super.fulfillAdvancedOrder( - advancedOrder, - criteriaResolvers, - fulfillerConduitKey, - recipient - ); + return super.fulfillAdvancedOrder(advancedOrder, criteriaResolvers, fulfillerConduitKey, recipient); } /** @@ -364,10 +335,7 @@ contract ImmutableSeaport is payable virtual override - returns ( - bool[] memory, - /* availableOrders */ Execution[] memory /* executions */ - ) + returns (bool[] memory, /* availableOrders */ Execution[] memory /* executions */) { for (uint256 i = 0; i < orders.length; i++) { Order memory order = orders[i]; @@ -493,18 +461,13 @@ contract ImmutableSeaport is payable virtual override - returns ( - bool[] memory, - /* availableOrders */ Execution[] memory /* executions */ - ) + returns (bool[] memory, /* availableOrders */ Execution[] memory /* executions */) { for (uint256 i = 0; i < advancedOrders.length; i++) { AdvancedOrder memory advancedOrder = advancedOrders[i]; if ( - advancedOrder.parameters.orderType != - OrderType.FULL_RESTRICTED && - advancedOrder.parameters.orderType != - OrderType.PARTIAL_RESTRICTED + advancedOrder.parameters.orderType != OrderType.FULL_RESTRICTED && + advancedOrder.parameters.orderType != OrderType.PARTIAL_RESTRICTED ) { revert OrderNotRestricted(); } @@ -562,13 +525,7 @@ contract ImmutableSeaport is * @custom:name fulfillments */ Fulfillment[] calldata fulfillments - ) - public - payable - virtual - override - returns (Execution[] memory /* executions */) - { + ) public payable virtual override returns (Execution[] memory /* executions */) { for (uint256 i = 0; i < orders.length; i++) { Order memory order = orders[i]; if ( @@ -649,20 +606,12 @@ contract ImmutableSeaport is */ Fulfillment[] calldata fulfillments, address recipient - ) - public - payable - virtual - override - returns (Execution[] memory /* executions */) - { + ) public payable virtual override returns (Execution[] memory /* executions */) { for (uint256 i = 0; i < advancedOrders.length; i++) { AdvancedOrder memory advancedOrder = advancedOrders[i]; if ( - advancedOrder.parameters.orderType != - OrderType.FULL_RESTRICTED && - advancedOrder.parameters.orderType != - OrderType.PARTIAL_RESTRICTED + advancedOrder.parameters.orderType != OrderType.FULL_RESTRICTED && + advancedOrder.parameters.orderType != OrderType.PARTIAL_RESTRICTED ) { revert OrderNotRestricted(); } @@ -670,12 +619,6 @@ contract ImmutableSeaport is _rejectIfZoneInvalid(advancedOrder.parameters.zone); } - return - super.matchAdvancedOrders( - advancedOrders, - criteriaResolvers, - fulfillments, - recipient - ); + return super.matchAdvancedOrders(advancedOrders, criteriaResolvers, fulfillments, recipient); } } diff --git a/contracts/trading/seaport/conduit/ConduitController.sol b/contracts/trading/seaport/conduit/ConduitController.sol index 11c02ae3..b7425363 100644 --- a/contracts/trading/seaport/conduit/ConduitController.sol +++ b/contracts/trading/seaport/conduit/ConduitController.sol @@ -1,4 +1,4 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.14; -import { ConduitController } from "seaport-core/src/conduit/ConduitController.sol"; +import {ConduitController} from "seaport-core/src/conduit/ConduitController.sol"; diff --git a/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol b/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol index 8a823c82..43539921 100644 --- a/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol +++ b/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol @@ -1,4 +1,4 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.17; -import { ReadOnlyOrderValidator } from "seaport/contracts/helpers/order-validator/lib/ReadOnlyOrderValidator.sol"; +import {ReadOnlyOrderValidator} from "seaport/contracts/helpers/order-validator/lib/ReadOnlyOrderValidator.sol"; diff --git a/contracts/trading/seaport/validators/SeaportValidator.sol b/contracts/trading/seaport/validators/SeaportValidator.sol index b431bcb4..669d5336 100644 --- a/contracts/trading/seaport/validators/SeaportValidator.sol +++ b/contracts/trading/seaport/validators/SeaportValidator.sol @@ -1,4 +1,4 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.17; -import { SeaportValidator } from "seaport/contracts/helpers/order-validator/SeaportValidator.sol"; +import {SeaportValidator} from "seaport/contracts/helpers/order-validator/SeaportValidator.sol"; diff --git a/contracts/trading/seaport/validators/SeaportValidatorHelper.sol b/contracts/trading/seaport/validators/SeaportValidatorHelper.sol index 0334c9cd..92eab660 100644 --- a/contracts/trading/seaport/validators/SeaportValidatorHelper.sol +++ b/contracts/trading/seaport/validators/SeaportValidatorHelper.sol @@ -1,4 +1,4 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.17; -import { SeaportValidatorHelper } from "seaport/contracts/helpers/order-validator/lib/SeaportValidatorHelper.sol"; +import {SeaportValidatorHelper} from "seaport/contracts/helpers/order-validator/lib/SeaportValidatorHelper.sol"; diff --git a/contracts/trading/seaport/zones/ImmutableSignedZone.sol b/contracts/trading/seaport/zones/ImmutableSignedZone.sol index 733904b7..9ed8d07e 100644 --- a/contracts/trading/seaport/zones/ImmutableSignedZone.sol +++ b/contracts/trading/seaport/zones/ImmutableSignedZone.sol @@ -2,20 +2,16 @@ // SPDX-License-Identifier: Apache-2 pragma solidity 0.8.17; -import { - ZoneParameters, - Schema, - ReceivedItem -} from "seaport-types/src/lib/ConsiderationStructs.sol"; -import { ZoneInterface } from "seaport/contracts/interfaces/ZoneInterface.sol"; -import { SIP7Interface } from "./interfaces/SIP7Interface.sol"; -import { SIP7EventsAndErrors } from "./interfaces/SIP7EventsAndErrors.sol"; -import { SIP6EventsAndErrors } from "./interfaces/SIP6EventsAndErrors.sol"; -import { SIP5Interface } from "./interfaces/SIP5Interface.sol"; -import { Ownable2Step } from "@openzeppelin/contracts/access/Ownable2Step.sol"; -import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; -import { Strings } from "@openzeppelin/contracts/utils/Strings.sol"; -import { ERC165 } from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; +import {ZoneParameters, Schema, ReceivedItem} from "seaport-types/src/lib/ConsiderationStructs.sol"; +import {ZoneInterface} from "seaport/contracts/interfaces/ZoneInterface.sol"; +import {SIP7Interface} from "./interfaces/SIP7Interface.sol"; +import {SIP7EventsAndErrors} from "./interfaces/SIP7EventsAndErrors.sol"; +import {SIP6EventsAndErrors} from "./interfaces/SIP6EventsAndErrors.sol"; +import {SIP5Interface} from "./interfaces/SIP5Interface.sol"; +import {Ownable2Step} from "@openzeppelin/contracts/access/Ownable2Step.sol"; +import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; +import {Strings} from "@openzeppelin/contracts/utils/Strings.sol"; +import {ERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; /** * @title ImmutableSignedZone @@ -82,8 +78,7 @@ contract ImmutableSignedZone is ")" ); - bytes32 internal constant RECEIVED_ITEM_TYPEHASH = - keccak256(RECEIVED_ITEM_BYTES); + bytes32 internal constant RECEIVED_ITEM_TYPEHASH = keccak256(RECEIVED_ITEM_BYTES); bytes32 internal constant CONSIDERATION_TYPEHASH = keccak256(abi.encodePacked(CONSIDERATION_BYTES, RECEIVED_ITEM_BYTES)); @@ -116,11 +111,7 @@ contract ImmutableSignedZone is * signed. * Request and response payloads are defined in SIP-7. */ - constructor( - string memory zoneName, - string memory apiEndpoint, - string memory documentationURI - ) { + constructor(string memory zoneName, string memory apiEndpoint, string memory documentationURI) { // Set the zone name. _ZONE_NAME = zoneName; // set name hash @@ -212,10 +203,7 @@ contract ImmutableSignedZone is // Revert with an error if the extraData does not have valid length. if (extraData.length < 93) { - revert InvalidExtraData( - "extraData length must be at least 93 bytes", - orderHash - ); + revert InvalidExtraData("extraData length must be at least 93 bytes", orderHash); } // Revert if SIP6 version is not accepted (0) @@ -248,46 +236,23 @@ contract ImmutableSignedZone is // Revert unless // Expected fulfiller is 0 address (any fulfiller) or // Expected fulfiller is the same as actual fulfiller - if ( - expectedFulfiller != address(0) && - expectedFulfiller != actualFulfiller - ) { - revert InvalidFulfiller( - expectedFulfiller, - actualFulfiller, - orderHash - ); + if (expectedFulfiller != address(0) && expectedFulfiller != actualFulfiller) { + revert InvalidFulfiller(expectedFulfiller, actualFulfiller, orderHash); } // validate supported substandards (3,4) - _validateSubstandards( - context, - _deriveConsiderationHash(zoneParameters.consideration), - zoneParameters - ); + _validateSubstandards(context, _deriveConsiderationHash(zoneParameters.consideration), zoneParameters); // Derive the signedOrder hash - bytes32 signedOrderHash = _deriveSignedOrderHash( - expectedFulfiller, - expiration, - orderHash, - context - ); + bytes32 signedOrderHash = _deriveSignedOrderHash(expectedFulfiller, expiration, orderHash, context); // Derive the EIP-712 digest using the domain separator and signedOrder // hash through openzepplin helper - bytes32 digest = ECDSA.toTypedDataHash( - _domainSeparator(), - signedOrderHash - ); + bytes32 digest = ECDSA.toTypedDataHash(_domainSeparator(), signedOrderHash); // Recover the signer address from the digest and signature. // Pass in R and VS from compact signature (ERC2098) - address recoveredSigner = ECDSA.recover( - digest, - bytes32(signature[0:32]), - bytes32(signature[32:64]) - ); + address recoveredSigner = ECDSA.recover(digest, bytes32(signature[0:32]), bytes32(signature[32:64])); // Revert if the signer is not active // !This also reverts if the digest constructed on serverside is incorrect @@ -308,10 +273,7 @@ contract ImmutableSignedZone is * @return The domain separator. */ function _domainSeparator() internal view returns (bytes32) { - return - block.chainid == _CHAIN_ID - ? _DOMAIN_SEPARATOR - : _deriveDomainSeparator(); + return block.chainid == _CHAIN_ID ? _DOMAIN_SEPARATOR : _deriveDomainSeparator(); } /** @@ -334,14 +296,7 @@ contract ImmutableSignedZone is schemas[0].id = 7; schemas[0].metadata = abi.encode( - keccak256( - abi.encode( - _domainSeparator(), - _sip7APIEndpoint, - _getSupportedSubstandards(), - _documentationURI - ) - ) + keccak256(abi.encode(_domainSeparator(), _sip7APIEndpoint, _getSupportedSubstandards(), _documentationURI)) ); } @@ -350,21 +305,8 @@ contract ImmutableSignedZone is * * @return domainSeparator The derived domain separator. */ - function _deriveDomainSeparator() - internal - view - returns (bytes32 domainSeparator) - { - return - keccak256( - abi.encode( - _EIP_712_DOMAIN_TYPEHASH, - _NAME_HASH, - _VERSION_HASH, - block.chainid, - address(this) - ) - ); + function _deriveDomainSeparator() internal view returns (bytes32 domainSeparator) { + return keccak256(abi.encode(_EIP_712_DOMAIN_TYPEHASH, _NAME_HASH, _VERSION_HASH, block.chainid, address(this))); } /** @@ -372,9 +314,7 @@ contract ImmutableSignedZone is * * @param newApiEndpoint The new API endpoint. */ - function updateAPIEndpoint( - string calldata newApiEndpoint - ) external override onlyOwner { + function updateAPIEndpoint(string calldata newApiEndpoint) external override onlyOwner { // Update to the new API endpoint. _sip7APIEndpoint = newApiEndpoint; } @@ -426,11 +366,7 @@ contract ImmutableSignedZone is // revert if order hash in context and payload do not match bytes32 expectedConsiderationHash = bytes32(context[0:32]); if (expectedConsiderationHash != actualConsiderationHash) { - revert SubstandardViolation( - 3, - "invalid consideration hash", - zoneParameters.orderHash - ); + revert SubstandardViolation(3, "invalid consideration hash", zoneParameters.orderHash); } // substandard 4 - validate order hashes actual match expected @@ -446,28 +382,15 @@ contract ImmutableSignedZone is } // compute expected order hashes array based on context bytes - bytes32[] memory expectedOrderHashes = new bytes32[]( - orderHashesBytes.length / 32 - ); + bytes32[] memory expectedOrderHashes = new bytes32[](orderHashesBytes.length / 32); for (uint256 i = 0; i < orderHashesBytes.length / 32; i++) { - expectedOrderHashes[i] = bytes32( - orderHashesBytes[i * 32:i * 32 + 32] - ); + expectedOrderHashes[i] = bytes32(orderHashesBytes[i * 32:i * 32 + 32]); } // revert if order hashes in context and payload do not match // every expected order hash need to exist in fulfilling order hashes - if ( - !_everyElementExists( - expectedOrderHashes, - zoneParameters.orderHashes - ) - ) { - revert SubstandardViolation( - 4, - "invalid order hashes", - zoneParameters.orderHash - ); + if (!_everyElementExists(expectedOrderHashes, zoneParameters.orderHashes)) { + revert SubstandardViolation(4, "invalid order hashes", zoneParameters.orderHash); } } @@ -477,11 +400,7 @@ contract ImmutableSignedZone is * @return substandards array of substandards supported * */ - function _getSupportedSubstandards() - internal - pure - returns (uint256[] memory substandards) - { + function _getSupportedSubstandards() internal pure returns (uint256[] memory substandards) { // support substandards 3 and 4 substandards = new uint256[](2); substandards[0] = 3; @@ -507,13 +426,7 @@ contract ImmutableSignedZone is ) internal view returns (bytes32 signedOrderHash) { // Derive the signed order hash. signedOrderHash = keccak256( - abi.encode( - _SIGNED_ORDER_TYPEHASH, - fulfiller, - expiration, - orderHash, - keccak256(context) - ) + abi.encode(_SIGNED_ORDER_TYPEHASH, fulfiller, expiration, orderHash, keccak256(context)) ); } @@ -521,9 +434,7 @@ contract ImmutableSignedZone is * @dev Derive the EIP712 consideration hash based on received item array * @param consideration expected consideration array */ - function _deriveConsiderationHash( - ReceivedItem[] calldata consideration - ) internal pure returns (bytes32) { + function _deriveConsiderationHash(ReceivedItem[] calldata consideration) internal pure returns (bytes32) { uint256 numberOfItems = consideration.length; bytes32[] memory considerationHashes = new bytes32[](numberOfItems); for (uint256 i; i < numberOfItems; i++) { @@ -538,13 +449,7 @@ contract ImmutableSignedZone is ) ); } - return - keccak256( - abi.encode( - CONSIDERATION_TYPEHASH, - keccak256(abi.encodePacked(considerationHashes)) - ) - ); + return keccak256(abi.encode(CONSIDERATION_TYPEHASH, keccak256(abi.encodePacked(considerationHashes)))); } /** @@ -554,10 +459,7 @@ contract ImmutableSignedZone is * @param array1 subset array * @param array2 superset array */ - function _everyElementExists( - bytes32[] memory array1, - bytes32[] calldata array2 - ) internal pure returns (bool) { + function _everyElementExists(bytes32[] memory array1, bytes32[] calldata array2) internal pure returns (bool) { // cache the length in memory for loop optimisation uint256 array1Size = array1.length; uint256 array2Size = array2.length; @@ -595,11 +497,7 @@ contract ImmutableSignedZone is return true; } - function supportsInterface( - bytes4 interfaceId - ) public view override(ERC165, ZoneInterface) returns (bool) { - return - interfaceId == type(ZoneInterface).interfaceId || - super.supportsInterface(interfaceId); + function supportsInterface(bytes4 interfaceId) public view override(ERC165, ZoneInterface) returns (bool) { + return interfaceId == type(ZoneInterface).interfaceId || super.supportsInterface(interfaceId); } } diff --git a/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol b/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol index 9da10294..3808d6dd 100644 --- a/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol +++ b/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2 pragma solidity 0.8.17; -import { Schema } from "seaport-types/src/lib/ConsiderationStructs.sol"; +import {Schema} from "seaport-types/src/lib/ConsiderationStructs.sol"; /** * @dev SIP-5: Contract Metadata Interface for Seaport Contracts @@ -21,8 +21,5 @@ interface SIP5Interface { * @return name The contract name * @return schemas The supported SIPs */ - function getSeaportMetadata() - external - view - returns (string memory name, Schema[] memory schemas); + function getSeaportMetadata() external view returns (string memory name, Schema[] memory schemas); } diff --git a/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol b/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol index 75555db0..d4d07dbb 100644 --- a/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol +++ b/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol @@ -43,29 +43,17 @@ interface SIP7EventsAndErrors { /** * @dev Revert with an error when the signature has expired. */ - error SignatureExpired( - uint256 currentTimestamp, - uint256 expiration, - bytes32 orderHash - ); + error SignatureExpired(uint256 currentTimestamp, uint256 expiration, bytes32 orderHash); /** * @dev Revert with an error if the fulfiller does not match. */ - error InvalidFulfiller( - address expectedFulfiller, - address actualFulfiller, - bytes32 orderHash - ); + error InvalidFulfiller(address expectedFulfiller, address actualFulfiller, bytes32 orderHash); /** * @dev Revert with an error if a substandard validation fails */ - error SubstandardViolation( - uint256 substandardId, - string reason, - bytes32 orderHash - ); + error SubstandardViolation(uint256 substandardId, string reason, bytes32 orderHash); /** * @dev Revert with an error if supplied order extraData is invalid diff --git a/package-lock.json b/package-lock.json index 6eda50a9..f7fe5dbf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -47,10 +47,11 @@ "ethers": "^5.7.2", "hardhat": "^2.17.3", "hardhat-gas-reporter": "^1.0.9", - "prettier": "^2.8.8", - "prettier-plugin-solidity": "^1.1.3", + "prettier": "^3.2.4", + "prettier-plugin-solidity": "^1.3.1", "solhint": "^3.3.8", - "solhint-plugin-prettier": "^0.0.5", + "solhint-community": "^3.7.0", + "solhint-plugin-prettier": "^0.1.0", "solidity-coverage": "^0.8.4", "ts-node": "^10.9.1", "typechain": "^8.1.1", @@ -4170,6 +4171,18 @@ "semver": "bin/semver" } }, + "node_modules/@prettier/sync": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@prettier/sync/-/sync-0.3.0.tgz", + "integrity": "sha512-3dcmCyAxIcxy036h1I7MQU/uEEBq8oLwf1CE3xeze+MPlgkdlb/+w6rGR/1dhp6Hqi17fRS6nvwnOzkESxEkOw==", + "dev": true, + "funding": { + "url": "https://github.com/prettier/prettier-synchronized?sponsor=1" + }, + "peerDependencies": { + "prettier": "^3.0.0" + } + }, "node_modules/@rari-capital/solmate": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/@rari-capital/solmate/-/solmate-6.4.0.tgz", @@ -27180,15 +27193,15 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", + "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -27207,30 +27220,27 @@ } }, "node_modules/prettier-plugin-solidity": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.3.tgz", - "integrity": "sha512-fQ9yucPi2sBbA2U2Xjh6m4isUTJ7S7QLc/XDDsktqqxYfTwdYKJ0EnnywXHwCGAaYbQNK+HIYPL1OemxuMsgeg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.3.1.tgz", + "integrity": "sha512-MN4OP5I2gHAzHZG1wcuJl0FsLS3c4Cc5494bbg+6oQWBPuEamjwDvmGfFMZ6NFzsh3Efd9UUxeT7ImgjNH4ozA==", "dev": true, "dependencies": { - "@solidity-parser/parser": "^0.16.0", - "semver": "^7.3.8", - "solidity-comments-extractor": "^0.0.7" + "@solidity-parser/parser": "^0.17.0", + "semver": "^7.5.4", + "solidity-comments-extractor": "^0.0.8" }, "engines": { - "node": ">=12" + "node": ">=16" }, "peerDependencies": { - "prettier": ">=2.3.0 || >=3.0.0-alpha.0" + "prettier": ">=2.3.0" } }, "node_modules/prettier-plugin-solidity/node_modules/@solidity-parser/parser": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.1.tgz", - "integrity": "sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==", - "dev": true, - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" - } + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.17.0.tgz", + "integrity": "sha512-Nko8R0/kUo391jsEHHxrGM07QFdnPGvlmox4rmH0kNiNAashItAilhy4Mv4pK5gQmW5f4sXAF58fwJbmlkGcVw==", + "dev": true }, "node_modules/prettier-plugin-solidity/node_modules/lru-cache": { "version": "6.0.0", @@ -28893,17 +28903,214 @@ "prettier": "^2.8.3" } }, + "node_modules/solhint-community": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/solhint-community/-/solhint-community-3.7.0.tgz", + "integrity": "sha512-8nfdaxVll+IIaEBHFz3CzagIZNNTGp4Mrr+6O4m7c9Bs/L8OcgR/xzZJFwROkGAhV8Nbiv4gqJ42nEXZPYl3Qw==", + "dev": true, + "dependencies": { + "@solidity-parser/parser": "^0.16.0", + "ajv": "^6.12.6", + "antlr4": "^4.11.0", + "ast-parents": "^0.0.1", + "chalk": "^4.1.2", + "commander": "^11.1.0", + "cosmiconfig": "^8.0.0", + "fast-diff": "^1.2.0", + "glob": "^8.0.3", + "ignore": "^5.2.4", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "semver": "^6.3.0", + "strip-ansi": "^6.0.1", + "table": "^6.8.1", + "text-table": "^0.2.0" + }, + "bin": { + "solhint": "solhint.js" + }, + "optionalDependencies": { + "prettier": "^2.8.3" + } + }, + "node_modules/solhint-community/node_modules/@solidity-parser/parser": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.2.tgz", + "integrity": "sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==", + "dev": true, + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + } + }, + "node_modules/solhint-community/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/solhint-community/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/solhint-community/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/solhint-community/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/solhint-community/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/solhint-community/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==", + "dev": true + }, + "node_modules/solhint-community/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/solhint-community/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/solhint-community/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/solhint-community/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/solhint-community/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/solhint-community/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/solhint-community/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/solhint-plugin-prettier": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz", - "integrity": "sha512-7jmWcnVshIrO2FFinIvDQmhQpfpS2rRRn3RejiYgnjIE68xO2bvrYvjqVNfrio4xH9ghOqn83tKuTzLjEbmGIA==", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.1.0.tgz", + "integrity": "sha512-SDOTSM6tZxZ6hamrzl3GUgzF77FM6jZplgL2plFBclj/OjKP8Z3eIPojKU73gRr0MvOS8ACZILn8a5g0VTz/Gw==", "dev": true, "dependencies": { + "@prettier/sync": "^0.3.0", "prettier-linter-helpers": "^1.0.0" }, "peerDependencies": { - "prettier": "^1.15.0 || ^2.0.0", - "prettier-plugin-solidity": "^1.0.0-alpha.14" + "prettier": "^3.0.0", + "prettier-plugin-solidity": "^1.0.0" } }, "node_modules/solhint/node_modules/@solidity-parser/parser": { @@ -29034,6 +29241,22 @@ "node": ">=10" } }, + "node_modules/solhint/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/solhint/node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -29093,9 +29316,9 @@ } }, "node_modules/solidity-comments-extractor": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz", - "integrity": "sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.8.tgz", + "integrity": "sha512-htM7Vn6LhHreR+EglVMd2s+sZhcXAirB1Zlyrv5zBuTxieCvjfnRpd7iZk75m/u6NOlEyQ94C6TWbBn2cY7w8g==", "dev": true }, "node_modules/solidity-coverage": { @@ -30362,6 +30585,21 @@ "node": ">=10" } }, + "node_modules/typechain/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/typed-array-buffer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", diff --git a/package.json b/package.json index 06eb9b73..00ca667e 100644 --- a/package.json +++ b/package.json @@ -53,10 +53,11 @@ "ethers": "^5.7.2", "hardhat": "^2.17.3", "hardhat-gas-reporter": "^1.0.9", - "prettier": "^2.8.8", - "prettier-plugin-solidity": "^1.1.3", + "prettier": "^3.2.4", + "prettier-plugin-solidity": "^1.3.1", "solhint": "^3.3.8", - "solhint-plugin-prettier": "^0.0.5", + "solhint-community": "^3.7.0", + "solhint-plugin-prettier": "^0.1.0", "solidity-coverage": "^0.8.4", "ts-node": "^10.9.1", "typechain": "^8.1.1", diff --git a/test/random/README.md b/test/random/README.md index d85edeaa..ceb24372 100644 --- a/test/random/README.md +++ b/test/random/README.md @@ -65,7 +65,7 @@ Initialize testing: | Test name |Description | Happy Case | Implemented | |---------------------------------| --------------------------------------------------|------------|-------------| -| testInit | Check that deployment works. | Yes | No | +| testInit | Check that deployment and initialisation works. | Yes | No | | TODO | TODO | Yes | No | Control functions tests: diff --git a/test/random/offchainsources/chainlink/ChainlinkSource.t.sol b/test/random/offchainsources/chainlink/ChainlinkSource.t.sol index 376dafcd..8263e940 100644 --- a/test/random/offchainsources/chainlink/ChainlinkSource.t.sol +++ b/test/random/offchainsources/chainlink/ChainlinkSource.t.sol @@ -51,7 +51,13 @@ contract ChainlinkSourceTest is Test { roleAdmin, configAdmin, address(mockChainlinkCoordinator), KEY_HASH, SUB_ID, CALLBACK_GAS_LIMIT); assertEq(address(chainlinkSourceAdaptor.vrfCoordinator()), address(mockChainlinkCoordinator), "vrfCoord not set correctly"); + +TODO check other public values + } + + + } diff --git a/yarn.lock b/yarn.lock index 307b5d0e..c3b1cfa0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1817,6 +1817,11 @@ web3 "^1.2.5" web3-utils "^1.2.5" +"@prettier/sync@^0.3.0": + version "0.3.0" + resolved "https://registry.npmjs.org/@prettier/sync/-/sync-0.3.0.tgz" + integrity sha512-3dcmCyAxIcxy036h1I7MQU/uEEBq8oLwf1CE3xeze+MPlgkdlb/+w6rGR/1dhp6Hqi17fRS6nvwnOzkESxEkOw== + "@rari-capital/solmate@^6.4.0": version "6.4.0" resolved "https://registry.npmjs.org/@rari-capital/solmate/-/solmate-6.4.0.tgz" @@ -2005,6 +2010,11 @@ dependencies: antlr4ts "^0.5.0-alpha.4" +"@solidity-parser/parser@^0.17.0": + version "0.17.0" + resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.17.0.tgz" + integrity sha512-Nko8R0/kUo391jsEHHxrGM07QFdnPGvlmox4rmH0kNiNAashItAilhy4Mv4pK5gQmW5f4sXAF58fwJbmlkGcVw== + "@szmarczak/http-timer@^1.1.2": version "1.1.2" dependencies: @@ -4663,6 +4673,11 @@ commander@^10.0.0: resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== +commander@^11.1.0: + version "11.1.0" + resolved "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + commander@^8.1.0: version "8.3.0" resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" @@ -10408,20 +10423,30 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier-plugin-solidity@^1.0.0-alpha.14, prettier-plugin-solidity@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.3.tgz" - integrity sha512-fQ9yucPi2sBbA2U2Xjh6m4isUTJ7S7QLc/XDDsktqqxYfTwdYKJ0EnnywXHwCGAaYbQNK+HIYPL1OemxuMsgeg== +prettier-plugin-solidity@^1.0.0, prettier-plugin-solidity@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.3.1.tgz" + integrity sha512-MN4OP5I2gHAzHZG1wcuJl0FsLS3c4Cc5494bbg+6oQWBPuEamjwDvmGfFMZ6NFzsh3Efd9UUxeT7ImgjNH4ozA== dependencies: - "@solidity-parser/parser" "^0.16.0" - semver "^7.3.8" - solidity-comments-extractor "^0.0.7" + "@solidity-parser/parser" "^0.17.0" + semver "^7.5.4" + solidity-comments-extractor "^0.0.8" + +prettier@^2.3.1: + version "2.8.8" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== -"prettier@^1.15.0 || ^2.0.0", prettier@^2.3.1, prettier@^2.8.3, prettier@^2.8.8, prettier@>=2.0.0, "prettier@>=2.3.0 || >=3.0.0-alpha.0": +prettier@^2.8.3: version "2.8.8" resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prettier@^3.0.0, prettier@^3.2.4, prettier@>=2.0.0, prettier@>=2.3.0: + version "3.2.4" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz" + integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== + private@^0.1.6, private@^0.1.8: version "0.1.8" resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz" @@ -11311,13 +11336,6 @@ semver@^7.3.7: dependencies: lru-cache "^6.0.0" -semver@^7.3.8: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - semver@^7.5.2: version "7.5.4" resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" @@ -11660,11 +11678,37 @@ solc@0.8.15: semver "^5.5.0" tmp "0.0.33" -solhint-plugin-prettier@^0.0.5: - version "0.0.5" - resolved "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz" - integrity sha512-7jmWcnVshIrO2FFinIvDQmhQpfpS2rRRn3RejiYgnjIE68xO2bvrYvjqVNfrio4xH9ghOqn83tKuTzLjEbmGIA== +solhint-community@^3.7.0: + version "3.7.0" + resolved "https://registry.npmjs.org/solhint-community/-/solhint-community-3.7.0.tgz" + integrity sha512-8nfdaxVll+IIaEBHFz3CzagIZNNTGp4Mrr+6O4m7c9Bs/L8OcgR/xzZJFwROkGAhV8Nbiv4gqJ42nEXZPYl3Qw== dependencies: + "@solidity-parser/parser" "^0.16.0" + ajv "^6.12.6" + antlr4 "^4.11.0" + ast-parents "^0.0.1" + chalk "^4.1.2" + commander "^11.1.0" + cosmiconfig "^8.0.0" + fast-diff "^1.2.0" + glob "^8.0.3" + ignore "^5.2.4" + js-yaml "^4.1.0" + lodash "^4.17.21" + pluralize "^8.0.0" + semver "^6.3.0" + strip-ansi "^6.0.1" + table "^6.8.1" + text-table "^0.2.0" + optionalDependencies: + prettier "^2.8.3" + +solhint-plugin-prettier@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.1.0.tgz" + integrity sha512-SDOTSM6tZxZ6hamrzl3GUgzF77FM6jZplgL2plFBclj/OjKP8Z3eIPojKU73gRr0MvOS8ACZILn8a5g0VTz/Gw== + dependencies: + "@prettier/sync" "^0.3.0" prettier-linter-helpers "^1.0.0" solhint@^3.3.8: @@ -11704,10 +11748,10 @@ solidity-bytes-utils@^0.8.0: dependencies: "@truffle/hdwallet-provider" latest -solidity-comments-extractor@^0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz" - integrity sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw== +solidity-comments-extractor@^0.0.8: + version "0.0.8" + resolved "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.8.tgz" + integrity sha512-htM7Vn6LhHreR+EglVMd2s+sZhcXAirB1Zlyrv5zBuTxieCvjfnRpd7iZk75m/u6NOlEyQ94C6TWbBn2cY7w8g== solidity-coverage@^0.8.4: version "0.8.5" From c4c87c8825693957a34bb2e77172d208561123cd Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 18 Jan 2024 15:29:06 +1000 Subject: [PATCH 060/100] Fix test failure --- contracts/random/RandomSeedProvider.sol | 2 +- .../IOffchainRandomSource.sol | 0 .../offchainsources/SourceAdaptorBase.sol | 30 +++++++++++++------ .../chainlink/ChainlinkSourceAdaptor.sol | 1 + test/random/MockOffchainSource.sol | 2 +- test/random/RandomSeedProvider.t.sol | 2 +- test/random/RandomValues.t.sol | 2 +- .../chainlink/ChainlinkSource.t.sol | 11 +++---- 8 files changed, 30 insertions(+), 20 deletions(-) rename contracts/random/{ => offchainsources}/IOffchainRandomSource.sol (100%) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 3ff40356..f3b9cdc9 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.19; import {AccessControlEnumerableUpgradeable} from "openzeppelin-contracts-upgradeable-4.9.3/access/AccessControlEnumerableUpgradeable.sol"; -import {IOffchainRandomSource} from "./IOffchainRandomSource.sol"; +import {IOffchainRandomSource} from "./offchainsources/IOffchainRandomSource.sol"; /** * @notice Contract to provide random seed values to game contracts on the chain. diff --git a/contracts/random/IOffchainRandomSource.sol b/contracts/random/offchainsources/IOffchainRandomSource.sol similarity index 100% rename from contracts/random/IOffchainRandomSource.sol rename to contracts/random/offchainsources/IOffchainRandomSource.sol diff --git a/contracts/random/offchainsources/SourceAdaptorBase.sol b/contracts/random/offchainsources/SourceAdaptorBase.sol index 6cf091c3..1799d1c5 100644 --- a/contracts/random/offchainsources/SourceAdaptorBase.sol +++ b/contracts/random/offchainsources/SourceAdaptorBase.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.19; import {AccessControlEnumerable} from "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; -import {IOffchainRandomSource} from "../IOffchainRandomSource.sol"; +import {IOffchainRandomSource} from "./IOffchainRandomSource.sol"; /** * @notice All Verifiable Random Function (VRF) source adaptors derive from this contract. @@ -13,12 +13,12 @@ import {IOffchainRandomSource} from "../IOffchainRandomSource.sol"; abstract contract SourceAdaptorBase is AccessControlEnumerable, IOffchainRandomSource { event UnexpectedRandomWordsLength(uint256 _length); - bytes32 private constant CONFIG_ADMIN_ROLE = keccak256("CONFIG_ADMIN_ROLE"); + bytes32 internal constant CONFIG_ADMIN_ROLE = keccak256("CONFIG_ADMIN_ROLE"); // Immutable zkEVM has instant finality, so a single block confirmation is fine. - uint16 private constant MIN_CONFIRMATIONS = 1; + uint16 internal constant MIN_CONFIRMATIONS = 1; // We only need one word, and can expand that word in this system of contracts. - uint32 private constant NUM_WORDS = 1; + uint32 internal constant NUM_WORDS = 1; // The values returned by the VRF. mapping(uint256 _fulfilmentId => bytes32 randomValue) private randomOutput; @@ -32,18 +32,27 @@ abstract contract SourceAdaptorBase is AccessControlEnumerable, IOffchainRandomS vrfCoordinator = _vrfCoordinator; } - // Call back + /** + * @notice Callback called when random words are returned by the VRF. + * @dev Assumes external function that calls this checks that the random values are coming + * @dev from the VRF. + * @dev NOTE that Chainlink assumes that this function will not fail. + * @param _requestId is the fulfilment index. + * @param _randomWords are the random values from the VRF. + */ function _fulfillRandomWords(uint256 _requestId, uint256[] memory _randomWords) internal { // NOTE: This function call is not allowed to fail. - // Only one word should be returned.... + // Only one word should be returned as only one word is ever requested. if (_randomWords.length != 1) { emit UnexpectedRandomWordsLength(_randomWords.length); } - randomOutput[_requestId] = bytes32(_randomWords[0]); } - function getOffchainRandom(uint256 _fulfillmentIndex) external view returns (bytes32 _randomValue) { + /** + * @inheritdoc IOffchainRandomSource + */ + function getOffchainRandom(uint256 _fulfillmentIndex) external override(IOffchainRandomSource) view returns (bytes32 _randomValue) { bytes32 rand = randomOutput[_fulfillmentIndex]; if (rand == bytes32(0)) { revert WaitForRandom(); @@ -51,7 +60,10 @@ abstract contract SourceAdaptorBase is AccessControlEnumerable, IOffchainRandomS _randomValue = rand; } - function isOffchainRandomReady(uint256 _fulfillmentIndex) external view returns (bool) { + /** + * @inheritdoc IOffchainRandomSource + */ + function isOffchainRandomReady(uint256 _fulfillmentIndex) external override(IOffchainRandomSource) view returns (bool) { return randomOutput[_fulfillmentIndex] != bytes32(0); } } diff --git a/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol b/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol index fa43b79f..8c17932d 100644 --- a/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol +++ b/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol @@ -5,6 +5,7 @@ pragma solidity 0.8.19; import {VRFConsumerBaseV2} from "@chainlink/contracts/src/v0.8/vrf/VRFConsumerBaseV2.sol"; import {VRFCoordinatorV2Interface} from "./VRFCoordinatorV2Interface.sol"; import {SourceAdaptorBase} from "../SourceAdaptorBase.sol"; +import {IOffchainRandomSource} from "../IOffchainRandomSource.sol"; /** * @notice Fetch random numbers from the Chainlink Verifiable Random diff --git a/test/random/MockOffchainSource.sol b/test/random/MockOffchainSource.sol index 03dc320c..0ba587c3 100644 --- a/test/random/MockOffchainSource.sol +++ b/test/random/MockOffchainSource.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; -import {IOffchainRandomSource} from "contracts/random/IOffchainRandomSource.sol"; +import {IOffchainRandomSource} from "contracts/random/offchainsources/IOffchainRandomSource.sol"; contract MockOffchainSource is IOffchainRandomSource { diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index 9062cb10..97cd5d36 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -5,7 +5,7 @@ import "forge-std/Test.sol"; import {MockOffchainSource} from "./MockOffchainSource.sol"; import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; -import {IOffchainRandomSource} from "contracts/random/IOffchainRandomSource.sol"; +import {IOffchainRandomSource} from "contracts/random/offchainsources/IOffchainRandomSource.sol"; import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; diff --git a/test/random/RandomValues.t.sol b/test/random/RandomValues.t.sol index 11e71d07..fadd5ac3 100644 --- a/test/random/RandomValues.t.sol +++ b/test/random/RandomValues.t.sol @@ -5,7 +5,7 @@ import "forge-std/Test.sol"; import {MockGame} from "./MockGame.sol"; import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; -import {IOffchainRandomSource} from "contracts/random/IOffchainRandomSource.sol"; +import {IOffchainRandomSource} from "contracts/random/offchainsources/IOffchainRandomSource.sol"; import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; diff --git a/test/random/offchainsources/chainlink/ChainlinkSource.t.sol b/test/random/offchainsources/chainlink/ChainlinkSource.t.sol index 8263e940..52c83f43 100644 --- a/test/random/offchainsources/chainlink/ChainlinkSource.t.sol +++ b/test/random/offchainsources/chainlink/ChainlinkSource.t.sol @@ -5,7 +5,7 @@ import "forge-std/Test.sol"; import {MockCoordinator} from "./MockCoordinator.sol"; import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; -import {IOffchainRandomSource} from "contracts/random/IOffchainRandomSource.sol"; +import {IOffchainRandomSource} from "contracts/random/offchainsources/IOffchainRandomSource.sol"; import {ChainlinkSourceAdaptor} from "contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol"; import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; @@ -51,13 +51,10 @@ contract ChainlinkSourceTest is Test { roleAdmin, configAdmin, address(mockChainlinkCoordinator), KEY_HASH, SUB_ID, CALLBACK_GAS_LIMIT); assertEq(address(chainlinkSourceAdaptor.vrfCoordinator()), address(mockChainlinkCoordinator), "vrfCoord not set correctly"); - -TODO check other public values - + assertEq(chainlinkSourceAdaptor.keyHash(), KEY_HASH, "keyHash not set correctly"); + assertEq(chainlinkSourceAdaptor.subId(), SUB_ID, "subId not set correctly"); + assertEq(chainlinkSourceAdaptor.callbackGasLimit(), CALLBACK_GAS_LIMIT, "callbackGasLimit not set correctly"); } - - - } From aaabda06f55c3a8ab25e026c2435d39da08f1605 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 18 Jan 2024 17:23:18 +1000 Subject: [PATCH 061/100] Add more tests --- .../chainlink/ChainlinkSourceAdaptor.sol | 4 + test/random/README.md | 11 +-- .../chainlink/ChainlinkSource.t.sol | 77 ++++++++++++++++++- .../chainlink/MockCoordinator.sol | 4 +- 4 files changed, 88 insertions(+), 8 deletions(-) diff --git a/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol b/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol index 8c17932d..3179a670 100644 --- a/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol +++ b/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol @@ -14,6 +14,9 @@ import {IOffchainRandomSource} from "../IOffchainRandomSource.sol"; * version of the code and have the random seed provider point to the new version. */ contract ChainlinkSourceAdaptor is VRFConsumerBaseV2, SourceAdaptorBase { + // Log config changes. + event ConfigChanges( bytes32 _keyHash, uint64 _subId, uint32 _callbackGasLimit); + // Relates to key that must sign the proof. bytes32 public keyHash; @@ -58,6 +61,7 @@ contract ChainlinkSourceAdaptor is VRFConsumerBaseV2, SourceAdaptorBase { keyHash = _keyHash; subId = _subId; callbackGasLimit = _callbackGasLimit; + emit ConfigChanges(_keyHash, _subId, _callbackGasLimit); } /** diff --git a/test/random/README.md b/test/random/README.md index ceb24372..180af06c 100644 --- a/test/random/README.md +++ b/test/random/README.md @@ -65,22 +65,23 @@ Initialize testing: | Test name |Description | Happy Case | Implemented | |---------------------------------| --------------------------------------------------|------------|-------------| -| testInit | Check that deployment and initialisation works. | Yes | No | -| TODO | TODO | Yes | No | +| testInit | Check that deployment and initialisation works. | Yes | Yes | Control functions tests: | Test name |Description | Happy Case | Implemented | |---------------------------------| --------------------------------------------------|------------|-------------| | testRoleAdmin | Check DEFAULT_ADMIN_ROLE can assign new roles. | Yes | No | -| testRoleAdminBadAuth | Check auth for create new admins. | No | No | -| TODO | TODO | Yes | No | +| testRoleAdminBadAuth | Check auth for create new admins. | No | No | +| testConfigureRequests | Check configureRequests can be called. | Yes | No | +| testConfigureRequestsBadAuth | Check configureRequests fails with bad auth. | No | No | + Operational functions tests: | Test name |Description | Happy Case | Implemented | |---------------------------------| --------------------------------------------------|------------|-------------| -| TODO | TODO | Yes | No | +| testRequestRandom | Request a random value. | Yes | No | ## RandomValues.sol diff --git a/test/random/offchainsources/chainlink/ChainlinkSource.t.sol b/test/random/offchainsources/chainlink/ChainlinkSource.t.sol index 52c83f43..711528ea 100644 --- a/test/random/offchainsources/chainlink/ChainlinkSource.t.sol +++ b/test/random/offchainsources/chainlink/ChainlinkSource.t.sol @@ -9,7 +9,11 @@ import {IOffchainRandomSource} from "contracts/random/offchainsources/IOffchainR import {ChainlinkSourceAdaptor} from "contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol"; import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; -contract ChainlinkSourceTest is Test { +contract ChainlinkInitTest is Test { + event ConfigChanges( bytes32 _keyHash, uint64 _subId, uint32 _callbackGasLimit); + + bytes32 public constant CONFIG_ADMIN_ROLE = keccak256("CONFIG_ADMIN_ROLE"); + bytes32 public constant KEY_HASH = bytes32(uint256(1)); uint64 public constant SUB_ID = uint64(4); uint32 public constant CALLBACK_GAS_LIMIT = uint32(200000); @@ -39,6 +43,7 @@ contract ChainlinkSourceTest is Test { mockChainlinkCoordinator = new MockCoordinator(); chainlinkSourceAdaptor = new ChainlinkSourceAdaptor( roleAdmin, configAdmin, address(mockChainlinkCoordinator), KEY_HASH, SUB_ID, CALLBACK_GAS_LIMIT); + mockChainlinkCoordinator.setAdaptor(address(chainlinkSourceAdaptor)); // Ensure we are on a new block number when we start the tests. In particular, don't // be on the same block number as when the contracts were deployed. @@ -58,3 +63,73 @@ contract ChainlinkSourceTest is Test { } +contract ChainlinkControlTests is ChainlinkInitTest { + function testRoleAdmin() public { + bytes32 role = CONFIG_ADMIN_ROLE; + address newAdmin = makeAddr("newAdmin"); + + vm.prank(roleAdmin); + chainlinkSourceAdaptor.grantRole(role, newAdmin); + assertTrue(chainlinkSourceAdaptor.hasRole(role, newAdmin)); + } + + function testRoleAdminBadAuth() public { + bytes32 role = CONFIG_ADMIN_ROLE; + address newAdmin = makeAddr("newAdmin"); + vm.expectRevert(); + chainlinkSourceAdaptor.grantRole(role, newAdmin); + } + + function testConfigureRequests() public { + bytes32 keyHash = bytes32(uint256(2)); + uint64 subId = uint64(5); + uint32 callbackGasLimit = uint32(200001); + + vm.prank(configAdmin); + vm.expectEmit(true, true, true, true); + emit ConfigChanges(keyHash, subId, callbackGasLimit); + chainlinkSourceAdaptor.configureRequests(keyHash, subId, callbackGasLimit); + assertEq(chainlinkSourceAdaptor.keyHash(), keyHash, "keyHash not set correctly"); + assertEq(chainlinkSourceAdaptor.subId(), subId, "subId not set correctly"); + assertEq(chainlinkSourceAdaptor.callbackGasLimit(), callbackGasLimit, "callbackGasLimit not set correctly"); + } + + function testConfigureRequestsBadAuth() public { + bytes32 keyHash = bytes32(uint256(2)); + uint64 subId = uint64(5); + uint32 callbackGasLimit = uint32(200001); + + vm.expectRevert(); + chainlinkSourceAdaptor.configureRequests(keyHash, subId, callbackGasLimit); + } +} + + +contract ChainlinkOperationalTests is ChainlinkInitTest { + event RequestId(uint256 _requestId); + + bytes32 public constant RAND = bytes32(uint256(0x1a)); + + function testRequestRandom() public { + vm.recordLogs(); + uint256 fulfilmentIndex = chainlinkSourceAdaptor.requestOffchainRandom(); + Vm.Log[] memory entries = vm.getRecordedLogs(); + assertEq(entries.length, 1); + assertEq(entries[0].topics[0], keccak256("RequestId(uint256)")); + uint256 requestId = abi.decode(entries[0].data, (uint256)); + assertEq(fulfilmentIndex, requestId, "Must be the same"); + + + bool ready = chainlinkSourceAdaptor.isOffchainRandomReady(fulfilmentIndex); + assertFalse(ready, "Should not be ready yet"); + + mockChainlinkCoordinator.sendFulfill(fulfilmentIndex, uint256(RAND)); + + ready = chainlinkSourceAdaptor.isOffchainRandomReady(fulfilmentIndex); + assertTrue(ready, "Should be ready"); + + bytes32 rand = chainlinkSourceAdaptor.getOffchainRandom(fulfilmentIndex); + assertEq(rand, RAND, "Wrong value returned"); + } +} + diff --git a/test/random/offchainsources/chainlink/MockCoordinator.sol b/test/random/offchainsources/chainlink/MockCoordinator.sol index 9bf3a49e..62d656fa 100644 --- a/test/random/offchainsources/chainlink/MockCoordinator.sol +++ b/test/random/offchainsources/chainlink/MockCoordinator.sol @@ -15,9 +15,9 @@ contract MockCoordinator is VRFCoordinatorV2Interface { adaptor = ChainlinkSourceAdaptor(_adaptor); } - function sendFulfill(uint256 _requestId) external { + function sendFulfill(uint256 _requestId, uint256 _rand) external { uint256[] memory randomWords = new uint256[](1); - randomWords[0] = _requestId + 1; + randomWords[0] = _rand; adaptor.rawFulfillRandomWords(_requestId, randomWords); } From 7300f8740c53df057fd5508f6ef24576f687e6a8 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 19 Jan 2024 12:21:41 +1000 Subject: [PATCH 062/100] Completed chainlink tests --- .../offchainsources/SourceAdaptorBase.sol | 10 +- test/random/README.md | 19 ++- .../chainlink/ChainlinkSource.t.sol | 110 +++++++++++++++++- .../chainlink/MockCoordinator.sol | 15 ++- 4 files changed, 135 insertions(+), 19 deletions(-) diff --git a/contracts/random/offchainsources/SourceAdaptorBase.sol b/contracts/random/offchainsources/SourceAdaptorBase.sol index 1799d1c5..d6b697fd 100644 --- a/contracts/random/offchainsources/SourceAdaptorBase.sol +++ b/contracts/random/offchainsources/SourceAdaptorBase.sol @@ -11,7 +11,7 @@ import {IOffchainRandomSource} from "./IOffchainRandomSource.sol"; * version of the code and have the random seed provider point to the new version. */ abstract contract SourceAdaptorBase is AccessControlEnumerable, IOffchainRandomSource { - event UnexpectedRandomWordsLength(uint256 _length); + error UnexpectedRandomWordsLength(uint256 _length); bytes32 internal constant CONFIG_ADMIN_ROLE = keccak256("CONFIG_ADMIN_ROLE"); @@ -41,10 +41,12 @@ abstract contract SourceAdaptorBase is AccessControlEnumerable, IOffchainRandomS * @param _randomWords are the random values from the VRF. */ function _fulfillRandomWords(uint256 _requestId, uint256[] memory _randomWords) internal { - // NOTE: This function call is not allowed to fail. - // Only one word should be returned as only one word is ever requested. + // NOTE: This function call is not allowed to fail. However, if one word is requested + // and some other number of words has been returned, then maybe the source has been + // compromised. Reverting the call is more likely to draw attention to the issue than + // emitting an event. if (_randomWords.length != 1) { - emit UnexpectedRandomWordsLength(_randomWords.length); + revert UnexpectedRandomWordsLength(_randomWords.length); } randomOutput[_requestId] = bytes32(_randomWords[0]); } diff --git a/test/random/README.md b/test/random/README.md index 180af06c..ce440d17 100644 --- a/test/random/README.md +++ b/test/random/README.md @@ -71,17 +71,26 @@ Control functions tests: | Test name |Description | Happy Case | Implemented | |---------------------------------| --------------------------------------------------|------------|-------------| -| testRoleAdmin | Check DEFAULT_ADMIN_ROLE can assign new roles. | Yes | No | -| testRoleAdminBadAuth | Check auth for create new admins. | No | No | -| testConfigureRequests | Check configureRequests can be called. | Yes | No | -| testConfigureRequestsBadAuth | Check configureRequests fails with bad auth. | No | No | +| testRoleAdmin | Check DEFAULT_ADMIN_ROLE can assign new roles. | Yes | Yes | +| testRoleAdminBadAuth | Check auth for create new admins. | No | Yes | +| testConfigureRequests | Check configureRequests can be called. | Yes | Yes | +| testConfigureRequestsBadAuth | Check configureRequests fails with bad auth. | No | Yes | Operational functions tests: | Test name |Description | Happy Case | Implemented | |---------------------------------| --------------------------------------------------|------------|-------------| -| testRequestRandom | Request a random value. | Yes | No | +| testRequestRandom | Request a random value. | Yes | Yes | +| testTwoRequests | Check that two requests return different values. | Yes | Yes | +| testBadFulfilment | Return a set of random numbers rather than one. | No | Yes | +| testRequestTooEarly | Request before ready. | No | Yes | + +Integration tests: + +| Test name |Description | Happy Case | Implemented | +|---------------------------------| --------------------------------------------------|------------|-------------| +| testEndToEnd | Request a random value from randomValues. | Yes | Yes | ## RandomValues.sol diff --git a/test/random/offchainsources/chainlink/ChainlinkSource.t.sol b/test/random/offchainsources/chainlink/ChainlinkSource.t.sol index 711528ea..fc9e2260 100644 --- a/test/random/offchainsources/chainlink/ChainlinkSource.t.sol +++ b/test/random/offchainsources/chainlink/ChainlinkSource.t.sol @@ -4,12 +4,13 @@ pragma solidity 0.8.19; import "forge-std/Test.sol"; import {MockCoordinator} from "./MockCoordinator.sol"; +import {MockGame} from "../../MockGame.sol"; import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; import {IOffchainRandomSource} from "contracts/random/offchainsources/IOffchainRandomSource.sol"; import {ChainlinkSourceAdaptor} from "contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol"; import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; -contract ChainlinkInitTest is Test { +contract ChainlinkInitTests is Test { event ConfigChanges( bytes32 _keyHash, uint64 _subId, uint32 _callbackGasLimit); bytes32 public constant CONFIG_ADMIN_ROLE = keccak256("CONFIG_ADMIN_ROLE"); @@ -45,6 +46,9 @@ contract ChainlinkInitTest is Test { roleAdmin, configAdmin, address(mockChainlinkCoordinator), KEY_HASH, SUB_ID, CALLBACK_GAS_LIMIT); mockChainlinkCoordinator.setAdaptor(address(chainlinkSourceAdaptor)); + vm.prank(randomAdmin); + randomSeedProvider.setOffchainRandomSource(address(chainlinkSourceAdaptor)); + // Ensure we are on a new block number when we start the tests. In particular, don't // be on the same block number as when the contracts were deployed. vm.roll(block.number + 1); @@ -63,7 +67,7 @@ contract ChainlinkInitTest is Test { } -contract ChainlinkControlTests is ChainlinkInitTest { +contract ChainlinkControlTests is ChainlinkInitTests { function testRoleAdmin() public { bytes32 role = CONFIG_ADMIN_ROLE; address newAdmin = makeAddr("newAdmin"); @@ -105,10 +109,13 @@ contract ChainlinkControlTests is ChainlinkInitTest { } -contract ChainlinkOperationalTests is ChainlinkInitTest { +contract ChainlinkOperationalTests is ChainlinkInitTests { + error WaitForRandom(); + error UnexpectedRandomWordsLength(uint256 _length); event RequestId(uint256 _requestId); - bytes32 public constant RAND = bytes32(uint256(0x1a)); + bytes32 public constant RAND1 = bytes32(uint256(0x1a)); + bytes32 public constant RAND2 = bytes32(uint256(0x1b)); function testRequestRandom() public { vm.recordLogs(); @@ -123,13 +130,104 @@ contract ChainlinkOperationalTests is ChainlinkInitTest { bool ready = chainlinkSourceAdaptor.isOffchainRandomReady(fulfilmentIndex); assertFalse(ready, "Should not be ready yet"); - mockChainlinkCoordinator.sendFulfill(fulfilmentIndex, uint256(RAND)); + mockChainlinkCoordinator.sendFulfill(fulfilmentIndex, uint256(RAND1)); ready = chainlinkSourceAdaptor.isOffchainRandomReady(fulfilmentIndex); assertTrue(ready, "Should be ready"); bytes32 rand = chainlinkSourceAdaptor.getOffchainRandom(fulfilmentIndex); - assertEq(rand, RAND, "Wrong value returned"); + assertEq(rand, RAND1, "Wrong value returned"); + } + + function testTwoRequests() public { + uint256 fulfilmentIndex1 = chainlinkSourceAdaptor.requestOffchainRandom(); + uint256 fulfilmentIndex2 = chainlinkSourceAdaptor.requestOffchainRandom(); + assertNotEq(fulfilmentIndex1, fulfilmentIndex2, "Different requests receive different indices"); + + bool ready = chainlinkSourceAdaptor.isOffchainRandomReady(fulfilmentIndex1); + assertFalse(ready, "Should not be ready yet1"); + ready = chainlinkSourceAdaptor.isOffchainRandomReady(fulfilmentIndex2); + assertFalse(ready, "Should not be ready yet2"); + + mockChainlinkCoordinator.sendFulfill(fulfilmentIndex2, uint256(RAND2)); + ready = chainlinkSourceAdaptor.isOffchainRandomReady(fulfilmentIndex1); + assertFalse(ready, "Should not be ready yet3"); + ready = chainlinkSourceAdaptor.isOffchainRandomReady(fulfilmentIndex2); + assertTrue(ready, "Should be ready1"); + + bytes32 rand = chainlinkSourceAdaptor.getOffchainRandom(fulfilmentIndex2); + assertEq(rand, RAND2, "Wrong value returned1"); + + mockChainlinkCoordinator.sendFulfill(fulfilmentIndex1, uint256(RAND1)); + ready = chainlinkSourceAdaptor.isOffchainRandomReady(fulfilmentIndex1); + assertTrue(ready, "Should be ready2"); + ready = chainlinkSourceAdaptor.isOffchainRandomReady(fulfilmentIndex2); + assertTrue(ready, "Should be ready3"); + + rand = chainlinkSourceAdaptor.getOffchainRandom(fulfilmentIndex1); + assertEq(rand, RAND1, "Wrong value returned2"); + } + + function testBadFulfilment() public { + uint256 fulfilmentIndex = chainlinkSourceAdaptor.requestOffchainRandom(); + + uint256 length = 2; + uint256[] memory randomWords = new uint256[](length); + randomWords[0] = uint256(RAND1); + + vm.expectRevert(abi.encodeWithSelector(UnexpectedRandomWordsLength.selector, length)); + mockChainlinkCoordinator.sendFulfillRaw(fulfilmentIndex, randomWords); + } + + function testRequestTooEarly() public { + uint256 fulfilmentIndex = chainlinkSourceAdaptor.requestOffchainRandom(); + + vm.expectRevert(abi.encodeWithSelector(WaitForRandom.selector)); + chainlinkSourceAdaptor.getOffchainRandom(fulfilmentIndex); + } +} + + + +contract ChainlinkIntegrationTests is ChainlinkOperationalTests { + function testEndToEnd() public { + MockGame game = new MockGame(address(randomSeedProvider)); + + vm.prank(randomAdmin); + randomSeedProvider.addOffchainRandomConsumer(address(game)); + + vm.recordLogs(); + uint256 randomRequestId = game.requestRandomValueCreation(); + Vm.Log[] memory entries = vm.getRecordedLogs(); + assertEq(entries.length, 1, "Unexpected number of events emitted"); + assertEq(entries[0].topics[0], keccak256("RequestId(uint256)")); + uint256 fulfilmentIndex = abi.decode(entries[0].data, (uint256)); + + assertFalse(game.isRandomValueReady(randomRequestId), "Should not be ready yet"); + + mockChainlinkCoordinator.sendFulfill(fulfilmentIndex, uint256(RAND1)); + + assertTrue(game.isRandomValueReady(randomRequestId), "Should be ready"); + + bytes32 randomValue = game.fetchRandom(randomRequestId); + assertNotEq(randomValue, bytes32(0), "Random Value zero"); + } +} + +contract ChainlinkCoverageFakeTests is ChainlinkInitTests { + // Do calls to unused functions in MockCoordinator so that it doesn't impact the coverage results. + function testFixMockCoordinatorCoverage() public { + mockChainlinkCoordinator = new MockCoordinator(); + mockChainlinkCoordinator.setAdaptor(address(chainlinkSourceAdaptor)); + mockChainlinkCoordinator.getRequestConfig(); + uint64 subId = mockChainlinkCoordinator.createSubscription(); + mockChainlinkCoordinator.getSubscription(subId); + mockChainlinkCoordinator.requestSubscriptionOwnerTransfer(subId, address(0)); + mockChainlinkCoordinator.acceptSubscriptionOwnerTransfer(subId); + mockChainlinkCoordinator.addConsumer(subId, address(0)); + mockChainlinkCoordinator.removeConsumer(subId, address(0)); + mockChainlinkCoordinator.cancelSubscription(subId, address(0)); + mockChainlinkCoordinator.pendingRequestExists(subId); } } diff --git a/test/random/offchainsources/chainlink/MockCoordinator.sol b/test/random/offchainsources/chainlink/MockCoordinator.sol index 62d656fa..a6d16757 100644 --- a/test/random/offchainsources/chainlink/MockCoordinator.sol +++ b/test/random/offchainsources/chainlink/MockCoordinator.sol @@ -10,6 +10,8 @@ contract MockCoordinator is VRFCoordinatorV2Interface { ChainlinkSourceAdaptor public adaptor; uint256 public nextIndex = 1000; + uint64 private subscriptionId = uint64(0); + bool private pending = false; function setAdaptor(address _adaptor) external { adaptor = ChainlinkSourceAdaptor(_adaptor); @@ -21,6 +23,11 @@ contract MockCoordinator is VRFCoordinatorV2Interface { adaptor.rawFulfillRandomWords(_requestId, randomWords); } + function sendFulfillRaw(uint256 _requestId, uint256[] calldata _rand) external { + adaptor.rawFulfillRandomWords(_requestId, _rand); + } + + function requestRandomWords(bytes32,uint64,uint16,uint32,uint32) external returns (uint256 requestId) { requestId = nextIndex++; @@ -35,8 +42,8 @@ contract MockCoordinator is VRFCoordinatorV2Interface { return (uint16(0), uint32(0), a); } - function createSubscription() external pure returns (uint64 subId) { - return (uint64(0)); + function createSubscription() external view returns (uint64 subId) { + return subscriptionId; } function getSubscription(uint64) external pure @@ -49,8 +56,8 @@ contract MockCoordinator is VRFCoordinatorV2Interface { function addConsumer(uint64, address) external {} function removeConsumer(uint64, address) external{} function cancelSubscription(uint64, address) external{} - function pendingRequestExists(uint64) external pure returns (bool) { - return false; + function pendingRequestExists(uint64) external view returns (bool) { + return pending; } } From e246a899f4f9a5e6febf6e5b2776981acda8a3a3 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 19 Jan 2024 15:50:56 +1000 Subject: [PATCH 063/100] Switch to UUPS and added upgrade tests --- contracts/random/RandomSeedProvider.sol | 101 ++++++++++++------ test/random/MockOffchainSource.sol | 1 + test/random/MockRandomSeedProviderV2.sol | 19 ++++ test/random/README.md | 4 + test/random/RandomSeedProvider.t.sol | 86 ++++++++++++--- test/random/RandomValues.t.sol | 15 ++- .../chainlink/ChainlinkSource.t.sol | 13 +-- 7 files changed, 182 insertions(+), 57 deletions(-) create mode 100644 test/random/MockRandomSeedProviderV2.sol diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index f3b9cdc9..8668734c 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache 2 pragma solidity 0.8.19; +import {UUPSUpgradeable} from "openzeppelin-contracts-upgradeable-4.9.3/proxy/utils/UUPSUpgradeable.sol"; import {AccessControlEnumerableUpgradeable} from "openzeppelin-contracts-upgradeable-4.9.3/access/AccessControlEnumerableUpgradeable.sol"; import {IOffchainRandomSource} from "./offchainsources/IOffchainRandomSource.sol"; @@ -14,72 +15,89 @@ import {IOffchainRandomSource} from "./offchainsources/IOffchainRandomSource.sol * The contract is upgradeable. It is expected to be operated behind an * Open Zeppelin TransparentUpgradeProxy. */ -contract RandomSeedProvider is AccessControlEnumerableUpgradeable { - // The random seed value is not yet available. +contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeable { + /// @notice Indicate that the requested upgrade is not possible. + error CanNotUpgradeFrom(uint256 _storageVersion, uint256 _codeVersion); + + /// @notice The random seed value is not yet available. error WaitForRandom(); - // The offchain random source has been updated. + /// @notice The offchain random source has been updated. event OffchainRandomSourceSet(address _offchainRandomSource); - // Indicates that new random values will be generated using the RanDAO source. + /// @notice Indicates that new random values will be generated using the RanDAO source. event RanDaoEnabled(); - // Indicates that a game contract that can consume off-chain random has been added. + /// @notice Indicates that a game contract that can consume off-chain random has been added. event OffchainRandomConsumerAdded(address _consumer); - // Indicates that a game contract that can consume off-chain random has been removed. + /// @notice Indicates that a game contract that can consume off-chain random has been removed. event OffchainRandomConsumerRemoved(address _consumer); - // Admin role that can enable RanDAO and offchain random sources. + // Code and storage layout version number. + uint256 internal constant VERSION0 = 0; + + /// @notice Admin role that can enable RanDAO and offchain random sources. bytes32 public constant RANDOM_ADMIN_ROLE = keccak256("RANDOM_ADMIN_ROLE"); - // Indicates: Generate new random numbers using on-chain methodology. + /// @notice Only accounts with UPGRADE_ADMIN_ROLE can upgrade the contract. + bytes32 public constant UPGRADE_ADMIN_ROLE = bytes32("UPGRADE_ROLE"); + + /// @notice Indicates: Generate new random numbers using on-chain methodology. address public constant ONCHAIN = address(0); - // When random seeds are requested, a request id is returned. The id - // relates to a certain future random seed. This map holds all of the - // random seeds that have been produced. + /// @notice All historical random output. + /// @dev When random seeds are requested, a request id is returned. The id + /// @dev relates to a certain future random seed. This map holds all of the + /// @dev random seeds that have been produced. mapping(uint256 requestId => bytes32 randomValue) public randomOutput; - // The index of the next seed value to be produced. + /// @notice The index of the next seed value to be produced. uint256 public nextRandomIndex; - // The block number in which the last seed value was generated. + /// @notice The block number in which the last seed value was generated. uint256 public lastBlockRandomGenerated; - // The block when the last offchain random request occurred. - // This is used to limit off-chain random requests to once per block. + /// @notice The block when the last offchain random request occurred. + /// @dev This is used to limit off-chain random requests to once per block. uint256 private lastBlockOffchainRequest; - // The request id returned in the previous off-chain random request. - // This is used to limit off-chain random requests to once per block. + /// @notice The request id returned in the previous off-chain random request. + /// @dev This is used to limit off-chain random requests to once per block. uint256 private prevOffchainRandomRequest; - // @notice The source of new random numbers. This could be the special values for - // @notice TRADITIONAL or RANDAO or the address of a Offchain Random Source contract. - // @dev This value is return with the request ids. This allows off-chain random sources - // @dev to be switched without stopping in-flight random values from being retrieved. + /// @notice The source of new random numbers. This could be the special values for + /// @notice TRADITIONAL or RANDAO or the address of a Offchain Random Source contract. + /// @dev This value is return with the request ids. This allows off-chain random sources + /// @dev to be switched without stopping in-flight random values from being retrieved. address public randomSource; - // Indicates that this blockchain supports the PREVRANDAO opcode and that - // PREVRANDAO should be used rather than block.hash for on-chain random values. + /// @notice Indicates that this blockchain supports the PREVRANDAO opcode and that + /// @notice PREVRANDAO should be used rather than block.hash for on-chain random values. bool public ranDaoAvailable; - // Indicates an address is allow listed for the offchain random provider. - // Having an allow list prevents spammers from requesting one random number per block, - // thus incurring cost on Immutable for no benefit. + /// @notice Indicates an address is allow listed for the offchain random provider. + /// @dev Having an allow list prevents spammers from requesting one random number per block, + /// @dev thus incurring cost on Immutable for no benefit. mapping(address gameContract => bool approved) public approvedForOffchainRandom; + // @notice The version of the storage layout. + // @dev This storage slot will be used during upgrades. + uint256 public version; + + /** * @notice Initialize the contract for use with a transparent proxy. * @param _roleAdmin is the account that can add and remove addresses that have * RANDOM_ADMIN_ROLE privilege. * @param _randomAdmin is the account that has RANDOM_ADMIN_ROLE privilege. + * @param _upgradeAdmin is the account that has UPGRADE_ADMIN_ROLE privilege. * @param _ranDaoAvailable indicates if the chain supports the PRERANDAO opcode. */ - function initialize(address _roleAdmin, address _randomAdmin, bool _ranDaoAvailable) public virtual initializer { + function initialize(address _roleAdmin, address _randomAdmin, address _upgradeAdmin, bool _ranDaoAvailable) public virtual initializer { _grantRole(DEFAULT_ADMIN_ROLE, _roleAdmin); _grantRole(RANDOM_ADMIN_ROLE, _randomAdmin); + _grantRole(UPGRADE_ADMIN_ROLE, _upgradeAdmin); // Generate an initial "random" seed. // Use the chain id as an input into the random number generator to ensure @@ -92,6 +110,18 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { ranDaoAvailable = _ranDaoAvailable; } + /** + * @notice Called during contract upgrade. + * @dev This function will be overridden in future versions of this contract. + */ + function upgrade() external virtual { + // Revert in the following situations: + // - The function is called on the existing version. + // - This version of code is mistakenly deploy, for an upgrade from V2 to V3. + // That is, we mistakenly attempt to downgrade the contract. + revert CanNotUpgradeFrom(version, VERSION0); + } + /** * @notice Change the offchain random source. * @dev Only RANDOM_ADMIN_ROLE can do this. @@ -134,8 +164,8 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { /** * @notice Request the index number to track when a random number will be produced. * @dev Note that the same _randomFulfillmentIndex will be returned to multiple games and even within - * the one game. Games must personalise this value to their own game, the the particular game player, - * and to the game player's request. + * @dev the one game. Games must personalise this value to their own game, the the particular game player, + * @dev and to the game player's request. * @return _randomFulfillmentIndex The index for the game contract to present to fetch the next random value. * @return _randomSource Indicates that an on-chain source was used, or is the address of an offchain source. */ @@ -166,8 +196,8 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { /** * @notice Fetches a random seed value that was requested using requestRandom. * @dev Note that the same _randomSeed will be returned to multiple games and even within - * the one game. Games must personalise this value to their own game, the the particular game player, - * and to the game player's request. + * @dev the one game. Games must personalise this value to their own game, the the particular game player, + * @dev and to the game player's request. * @return _randomSeed The value from with random values can be derived. */ function getRandomSeed( @@ -203,6 +233,15 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable { } } + + /** + * @notice Check that msg.sender is authorised to perform the contract upgrade. + */ + function _authorizeUpgrade(address newImplementation) internal override(UUPSUpgradeable) onlyRole(UPGRADE_ADMIN_ROLE) { + // Nothing to do beyond upgrade authorisation check. + } + + /** * @notice Generate a random value using on-chain methodologies. */ diff --git a/test/random/MockOffchainSource.sol b/test/random/MockOffchainSource.sol index 0ba587c3..117b8739 100644 --- a/test/random/MockOffchainSource.sol +++ b/test/random/MockOffchainSource.sol @@ -1,3 +1,4 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2024 // SPDX-License-Identifier: MIT pragma solidity 0.8.19; diff --git a/test/random/MockRandomSeedProviderV2.sol b/test/random/MockRandomSeedProviderV2.sol new file mode 100644 index 00000000..8a891505 --- /dev/null +++ b/test/random/MockRandomSeedProviderV2.sol @@ -0,0 +1,19 @@ +// Copyright (c) Immutable Pty Ltd 2018 - 2024 +// SPDX-License-Identifier: MIT +pragma solidity 0.8.19; + +import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; + + +contract MockRandomSeedProviderV2 is RandomSeedProvider { + uint256 internal constant VERSION2 = 2; + + function upgrade() external override (RandomSeedProvider) { + if (version == VERSION0) { + version = VERSION2; + } + else { + revert CanNotUpgradeFrom(version, VERSION2); + } + } +} diff --git a/test/random/README.md b/test/random/README.md index ce440d17..e4a1dd38 100644 --- a/test/random/README.md +++ b/test/random/README.md @@ -30,6 +30,10 @@ Control functions tests: | testAddOffchainRandomConsumerBadAuth | addOffchainRandomConsumer() without authorization.| No | Yes | | testRemoveOffchainRandomConsumer| removeOffchainRandomConsumer(). | Yes | Yes | | testRemoveOffchainRandomConsumerBadAuth | removeOffchainRandomConsumer() without authorization.| No | Yes | +| testUpgrade | Check that the contract can be upgraded. | Yes | Yes | +| testUpgradeBadAuth | Check upgrade authorisation. | No | Yes | +| testNoUpgrade | Upgrade from V0 to V0. | No | Yes | + Operational functions tests: diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index 97cd5d36..52c6e48a 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -4,9 +4,10 @@ pragma solidity 0.8.19; import "forge-std/Test.sol"; import {MockOffchainSource} from "./MockOffchainSource.sol"; +import {MockRandomSeedProviderV2} from "./MockRandomSeedProviderV2.sol"; import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; import {IOffchainRandomSource} from "contracts/random/offchainsources/IOffchainRandomSource.sol"; -import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; +import "@openzeppelin/contracts/proxy/erc1967/ERC1967Proxy.sol"; @@ -20,31 +21,32 @@ contract UninitializedRandomSeedProviderTest is Test { bytes32 public constant DEFAULT_ADMIN_ROLE = bytes32(0); bytes32 public constant RANDOM_ADMIN_ROLE = keccak256("RANDOM_ADMIN_ROLE"); + bytes32 public constant UPGRADE_ADMIN_ROLE = bytes32("UPGRADE_ROLE"); address public constant ONCHAIN = address(0); - TransparentUpgradeableProxy public proxy; + ERC1967Proxy public proxy; RandomSeedProvider public impl; RandomSeedProvider public randomSeedProvider; - TransparentUpgradeableProxy public proxyRanDao; + ERC1967Proxy public proxyRanDao; RandomSeedProvider public randomSeedProviderRanDao; - address public proxyAdmin; address public roleAdmin; address public randomAdmin; + address public upgradeAdmin; function setUp() public virtual { - proxyAdmin = makeAddr("proxyAdmin"); roleAdmin = makeAddr("roleAdmin"); randomAdmin = makeAddr("randomAdmin"); + upgradeAdmin = makeAddr("upgradeAdmin"); impl = new RandomSeedProvider(); - proxy = new TransparentUpgradeableProxy(address(impl), proxyAdmin, - abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, false)); + proxy = new ERC1967Proxy(address(impl), + abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, upgradeAdmin, false)); randomSeedProvider = RandomSeedProvider(address(proxy)); - proxyRanDao = new TransparentUpgradeableProxy(address(impl), proxyAdmin, - abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, true)); + proxyRanDao = new ERC1967Proxy(address(impl), + abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, upgradeAdmin, true)); randomSeedProviderRanDao = RandomSeedProvider(address(proxyRanDao)); // Ensure we are on a new block number when we start the tests. In particular, don't @@ -56,8 +58,8 @@ contract UninitializedRandomSeedProviderTest is Test { // This set-up mirrors what is in the setUp function. Have this code here // so that the coverage tool picks up the use of the initialize function. RandomSeedProvider impl1 = new RandomSeedProvider(); - TransparentUpgradeableProxy proxy1 = new TransparentUpgradeableProxy(address(impl1), proxyAdmin, - abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, false)); + ERC1967Proxy proxy1 = new ERC1967Proxy(address(impl1), + abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, upgradeAdmin, false)); RandomSeedProvider randomSeedProvider1 = RandomSeedProvider(address(proxy1)); vm.roll(block.number + 1); @@ -70,11 +72,12 @@ contract UninitializedRandomSeedProviderTest is Test { assertTrue(randomSeedProvider1.hasRole(DEFAULT_ADMIN_ROLE, roleAdmin)); assertTrue(randomSeedProvider1.hasRole(RANDOM_ADMIN_ROLE, randomAdmin)); + assertTrue(randomSeedProvider1.hasRole(UPGRADE_ADMIN_ROLE, upgradeAdmin)); } function testReinit() public { vm.expectRevert(); - randomSeedProvider.initialize(roleAdmin, randomAdmin, true); + randomSeedProvider.initialize(roleAdmin, randomAdmin, upgradeAdmin, true); } @@ -108,6 +111,9 @@ contract UninitializedRandomSeedProviderTest is Test { contract ControlRandomSeedProviderTest is UninitializedRandomSeedProviderTest { + error CanNotUpgradeFrom(uint256 _storageVersion, uint256 _codeVersion); + event Upgraded(address indexed implementation); + address public constant NEW_SOURCE = address(10001); address public constant CONSUMER = address(10001); @@ -189,6 +195,62 @@ contract ControlRandomSeedProviderTest is UninitializedRandomSeedProviderTest { randomSeedProvider.removeOffchainRandomConsumer(CONSUMER); assertEq(randomSeedProvider.approvedForOffchainRandom(CONSUMER), true); } + + function testUpgrade() public { + assertEq(randomSeedProvider.version(), 0); + + MockRandomSeedProviderV2 randomSeedProviderV2 = new MockRandomSeedProviderV2(); + + vm.prank(upgradeAdmin); + vm.expectEmit(true, true, true, true); + emit Upgraded(address(randomSeedProviderV2)); + randomSeedProvider.upgradeToAndCall(address(randomSeedProviderV2), + abi.encodeWithSelector(randomSeedProviderV2.upgrade.selector)); + assertEq(randomSeedProvider.version(), 2); + } + + function testUpgradeBadAuth() public { + MockRandomSeedProviderV2 randomSeedProviderV2 = new MockRandomSeedProviderV2(); + + vm.expectRevert(); + randomSeedProvider.upgradeToAndCall(address(randomSeedProviderV2), + abi.encodeWithSelector(randomSeedProviderV2.upgrade.selector)); + } + + function testNoUpgrade() public { + vm.prank(upgradeAdmin); + vm.expectRevert(abi.encodeWithSelector(CanNotUpgradeFrom.selector, 0, 0)); + randomSeedProvider.upgrade(); + } + + function testNoDowngrade() public { + MockRandomSeedProviderV2 randomSeedProviderV2 = new MockRandomSeedProviderV2(); + RandomSeedProvider randomSeedProviderV0 = new RandomSeedProvider(); + + vm.prank(upgradeAdmin); + randomSeedProvider.upgradeToAndCall(address(randomSeedProviderV2), + abi.encodeWithSelector(randomSeedProviderV2.upgrade.selector)); + + vm.prank(upgradeAdmin); + vm.expectRevert(abi.encodeWithSelector(CanNotUpgradeFrom.selector, 2, 0)); + randomSeedProvider.upgradeToAndCall(address(randomSeedProviderV0), + abi.encodeWithSelector(randomSeedProviderV0.upgrade.selector)); + } + + // Check that the downgrade code in MockRandomSeedProviderV2 works too. + function testV2NoDowngrade() public { + uint256 badVersion = 13; + uint256 versionStorageSlot = 308; + vm.store(address(randomSeedProvider), bytes32(versionStorageSlot), bytes32(badVersion)); + assertEq(randomSeedProvider.version(), badVersion); + + MockRandomSeedProviderV2 randomSeedProviderV2 = new MockRandomSeedProviderV2(); + + vm.prank(upgradeAdmin); + vm.expectRevert(abi.encodeWithSelector(CanNotUpgradeFrom.selector, badVersion, 2)); + randomSeedProvider.upgradeToAndCall(address(randomSeedProviderV2), + abi.encodeWithSelector(randomSeedProviderV2.upgrade.selector)); + } } diff --git a/test/random/RandomValues.t.sol b/test/random/RandomValues.t.sol index fadd5ac3..71cd1f94 100644 --- a/test/random/RandomValues.t.sol +++ b/test/random/RandomValues.t.sol @@ -6,7 +6,7 @@ import "forge-std/Test.sol"; import {MockGame} from "./MockGame.sol"; import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; import {IOffchainRandomSource} from "contracts/random/offchainsources/IOffchainRandomSource.sol"; -import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; +import "@openzeppelin/contracts/proxy/erc1967/ERC1967Proxy.sol"; @@ -16,25 +16,24 @@ contract UninitializedRandomValuesTest is Test { address public constant ONCHAIN = address(0); - TransparentUpgradeableProxy public proxy; + ERC1967Proxy public proxy; RandomSeedProvider public impl; RandomSeedProvider public randomSeedProvider; - TransparentUpgradeableProxy public proxyRanDao; - RandomSeedProvider public randomSeedProviderRanDao; MockGame public game1; - address public proxyAdmin; address public roleAdmin; address public randomAdmin; + address public upgradeAdmin; function setUp() public virtual { - proxyAdmin = makeAddr("proxyAdmin"); roleAdmin = makeAddr("roleAdmin"); randomAdmin = makeAddr("randomAdmin"); + upgradeAdmin = makeAddr("upgradeAdmin"); + impl = new RandomSeedProvider(); - proxy = new TransparentUpgradeableProxy(address(impl), proxyAdmin, - abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, false)); + proxy = new ERC1967Proxy(address(impl), + abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, upgradeAdmin, false)); randomSeedProvider = RandomSeedProvider(address(proxy)); game1 = new MockGame(address(randomSeedProvider)); diff --git a/test/random/offchainsources/chainlink/ChainlinkSource.t.sol b/test/random/offchainsources/chainlink/ChainlinkSource.t.sol index fc9e2260..ed7c443d 100644 --- a/test/random/offchainsources/chainlink/ChainlinkSource.t.sol +++ b/test/random/offchainsources/chainlink/ChainlinkSource.t.sol @@ -8,7 +8,7 @@ import {MockGame} from "../../MockGame.sol"; import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; import {IOffchainRandomSource} from "contracts/random/offchainsources/IOffchainRandomSource.sol"; import {ChainlinkSourceAdaptor} from "contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol"; -import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; +import "@openzeppelin/contracts/proxy/erc1967/ERC1967Proxy.sol"; contract ChainlinkInitTests is Test { event ConfigChanges( bytes32 _keyHash, uint64 _subId, uint32 _callbackGasLimit); @@ -19,26 +19,27 @@ contract ChainlinkInitTests is Test { uint64 public constant SUB_ID = uint64(4); uint32 public constant CALLBACK_GAS_LIMIT = uint32(200000); - TransparentUpgradeableProxy public proxy; + ERC1967Proxy public proxy; RandomSeedProvider public impl; RandomSeedProvider public randomSeedProvider; MockCoordinator public mockChainlinkCoordinator; ChainlinkSourceAdaptor public chainlinkSourceAdaptor; - address public proxyAdmin; address public roleAdmin; address public randomAdmin; address public configAdmin; + address public upgradeAdmin; function setUp() public virtual { - proxyAdmin = makeAddr("proxyAdmin"); roleAdmin = makeAddr("roleAdmin"); randomAdmin = makeAddr("randomAdmin"); configAdmin = makeAddr("configAdmin"); + upgradeAdmin = makeAddr("upgradeAdmin"); + impl = new RandomSeedProvider(); - proxy = new TransparentUpgradeableProxy(address(impl), proxyAdmin, - abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, false)); + proxy = new ERC1967Proxy(address(impl), + abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, upgradeAdmin, false)); randomSeedProvider = RandomSeedProvider(address(proxy)); mockChainlinkCoordinator = new MockCoordinator(); From 27eec2e9c0929f90b57dcdcfa27ac5fbea9292a0 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 19 Jan 2024 16:43:23 +1000 Subject: [PATCH 064/100] Added tests for supra adaptor --- .../supra/SupraSourceAdaptor.sol | 10 +- test/random/README.md | 63 ++++- .../chainlink/ChainlinkSource.t.sol | 8 + .../offchainsources/supra/MockSupraRouter.sol | 54 ++++ .../offchainsources/supra/SupraSource.t.sol | 241 ++++++++++++++++++ 5 files changed, 362 insertions(+), 14 deletions(-) create mode 100644 test/random/offchainsources/supra/MockSupraRouter.sol create mode 100644 test/random/offchainsources/supra/SupraSource.t.sol diff --git a/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol b/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol index 5979a078..b9ff35f7 100644 --- a/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol +++ b/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol @@ -8,6 +8,8 @@ import {SourceAdaptorBase} from "../SourceAdaptorBase.sol"; contract SupraSourceAdaptor is SourceAdaptorBase { error NotVrfContract(); + event SubscriptionChange(address _newSubscription); + address public subscriptionAccount; constructor( @@ -19,13 +21,19 @@ contract SupraSourceAdaptor is SourceAdaptorBase { subscriptionAccount = _subscription; } + + function setSubscription(address _subscription) external onlyRole(CONFIG_ADMIN_ROLE) { + subscriptionAccount = _subscription; + emit SubscriptionChange(subscriptionAccount); + } + + function requestOffchainRandom() external returns (uint256 _requestId) { return ISupraRouter(vrfCoordinator).generateRequest( "fulfillRandomWords(uint256,uint256[])", uint8(NUM_WORDS), MIN_CONFIRMATIONS, - 123, subscriptionAccount ); } diff --git a/test/random/README.md b/test/random/README.md index e4a1dd38..340e7d56 100644 --- a/test/random/README.md +++ b/test/random/README.md @@ -59,11 +59,33 @@ numbers, check that the numbers generated earlier are still available: | testSwitchOffchainOffchain | Off-chain to another off-chain source. | Yes | Yes | | testSwitchOffchainTraditional | Disable off-chain source. | Yes | Yes | +## RandomValues.sol + +Initialize testing: + +| Test name |Description | Happy Case | Implemented | +|---------------------------------| --------------------------------------------------|------------|-------------| +| testInit | Check that contructor worked. | Yes | Yes | + + +Operational tests: + +| Test name |Description | Happy Case | Implemented | +|---------------------------------| --------------------------------------------------|------------|-------------| +| testFirstValue | Return a single value | Yes | Yes | +| testSecondValue | Return two values | Yes | Yes | +| testMultiFetch | Fetch a generated number multiple times. | Yes | Yes | +| testMultiInterleaved | Interleave multiple requests | Yes | Yes | +| testFirstValues | Return a single set of values | Yes | Yes | +| testSecondValues | Return two sets of values | Yes | Yes | +| testMultiFetchValues | Fetch a generated set of numbers multiple times. | Yes | Yes | +| testMultipleGames | Multiple games in parallel. | Yes | Yes | + ## ChainlinkSource.sol -This section defines tests for contracts/random/ChainlinkSource.sol. -All of these tests are in test/random/ChainlinkSource.t.sol. +This section defines tests for contracts/random/offchainsources/chainlink/ChainlinkSource.sol. +All of these tests are in test/random/offchainsources/chainlink/ChainlinkSource.t.sol. Initialize testing: @@ -89,6 +111,7 @@ Operational functions tests: | testTwoRequests | Check that two requests return different values. | Yes | Yes | | testBadFulfilment | Return a set of random numbers rather than one. | No | Yes | | testRequestTooEarly | Request before ready. | No | Yes | +| testHackFulfilment | Attempt to maliciously fulfil from other address. | No | Yes | Integration tests: @@ -97,25 +120,39 @@ Integration tests: | testEndToEnd | Request a random value from randomValues. | Yes | Yes | -## RandomValues.sol + +## SupraSource.sol +This section defines tests for contracts/random/offchainsources/supra/SupraSource.sol. +All of these tests are in test/random/offchainsources/supra/SupraSource.t.sol. Initialize testing: | Test name |Description | Happy Case | Implemented | |---------------------------------| --------------------------------------------------|------------|-------------| -| testInit | Check that contructor worked. | Yes | Yes | +| testInit | Check that deployment and initialisation works. | Yes | Yes | +Control functions tests: + +| Test name |Description | Happy Case | Implemented | +|---------------------------------| --------------------------------------------------|------------|-------------| +| testRoleAdmin | Check DEFAULT_ADMIN_ROLE can assign new roles. | Yes | Yes | +| testRoleAdminBadAuth | Check auth for create new admins. | No | Yes | +| testSetSubcription | Check setSubscription can be called. | Yes | Yes | +| testSetSubscriptionBadAuth | Check setSubscription fails with bad auth. | No | Yes | -Operational tests: + +Operational functions tests: | Test name |Description | Happy Case | Implemented | |---------------------------------| --------------------------------------------------|------------|-------------| -| testFirstValue | Return a single value | Yes | Yes | -| testSecondValue | Return two values | Yes | Yes | -| testMultiFetch | Fetch a generated number multiple times. | Yes | Yes | -| testMultiInterleaved | Interleave multiple requests | Yes | Yes | -| testFirstValues | Return a single set of values | Yes | Yes | -| testSecondValues | Return two sets of values | Yes | Yes | -| testMultiFetchValues | Fetch a generated set of numbers multiple times. | Yes | Yes | -| testMultipleGames | Multiple games in parallel. | Yes | Yes | +| testRequestRandom | Request a random value. | Yes | Yes | +| testTwoRequests | Check that two requests return different values. | Yes | Yes | +| testBadFulfilment | Return a set of random numbers rather than one. | No | Yes | +| testRequestTooEarly | Request before ready. | No | Yes | +| testHackFulfilment | Attempt to maliciously fulfil from other address. | No | Yes | + +Integration tests: +| Test name |Description | Happy Case | Implemented | +|---------------------------------| --------------------------------------------------|------------|-------------| +| testEndToEnd | Request a random value from randomValues. | Yes | Yes | diff --git a/test/random/offchainsources/chainlink/ChainlinkSource.t.sol b/test/random/offchainsources/chainlink/ChainlinkSource.t.sol index ed7c443d..37204a9f 100644 --- a/test/random/offchainsources/chainlink/ChainlinkSource.t.sol +++ b/test/random/offchainsources/chainlink/ChainlinkSource.t.sol @@ -186,6 +186,14 @@ contract ChainlinkOperationalTests is ChainlinkInitTests { vm.expectRevert(abi.encodeWithSelector(WaitForRandom.selector)); chainlinkSourceAdaptor.getOffchainRandom(fulfilmentIndex); } + + function testHackFulfilment() public { + uint256 fulfilmentIndex = chainlinkSourceAdaptor.requestOffchainRandom(); + + MockCoordinator hackChainlinkCoordinator = new MockCoordinator(); + vm.expectRevert(); + hackChainlinkCoordinator.sendFulfill(fulfilmentIndex, uint256(RAND1)); + } } diff --git a/test/random/offchainsources/supra/MockSupraRouter.sol b/test/random/offchainsources/supra/MockSupraRouter.sol new file mode 100644 index 00000000..9e7b3e85 --- /dev/null +++ b/test/random/offchainsources/supra/MockSupraRouter.sol @@ -0,0 +1,54 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.19; + +import {ISupraRouter} from "../../../../contracts/random/offchainsources/supra/ISupraRouter.sol"; +import {SupraSourceAdaptor} from "../../../../contracts/random/offchainsources/supra/SupraSourceAdaptor.sol"; + +contract MockSupraRouter is ISupraRouter { + event RequestId(uint256 _requestId); + + SupraSourceAdaptor public adaptor; + uint256 public nextIndex = 1000; + + uint64 private subscriptionId = uint64(0); + bool private pending = false; + + function setAdaptor(address _adaptor) external { + adaptor = SupraSourceAdaptor(_adaptor); + } + + function sendFulfill(uint256 _requestId, uint256 _rand) external { + uint256[] memory randomWords = new uint256[](1); + randomWords[0] = _rand; + adaptor.fulfillRandomWords(_requestId, randomWords); + } + + function sendFulfillRaw(uint256 _requestId, uint256[] calldata _rand) external { + adaptor.fulfillRandomWords(_requestId, _rand); + } + + function generateRequest( + string memory /* _functionSig */, + uint8 /* _rngCount */, + uint256 /* _numConfirmations */, + address /* _clientWalletAddress */ + ) external returns (uint256 requestId) { + requestId = nextIndex++; + emit RequestId(requestId); + } + + + // Unused functions + function generateRequest( + string memory /* _functionSig */, + uint8 /* _rngCount */, + uint256 /* _numConfirmations */, + uint256 /* _clientSeed */, + address /* _clientWalletAddress */ + ) external returns (uint256 requestId) { + requestId = nextIndex++; + emit RequestId(requestId); + } + +} + diff --git a/test/random/offchainsources/supra/SupraSource.t.sol b/test/random/offchainsources/supra/SupraSource.t.sol new file mode 100644 index 00000000..95bad0d1 --- /dev/null +++ b/test/random/offchainsources/supra/SupraSource.t.sol @@ -0,0 +1,241 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.19; + +import "forge-std/Test.sol"; + +import {MockSupraRouter} from "./MockSupraRouter.sol"; +import {MockGame} from "../../MockGame.sol"; +import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; +import {IOffchainRandomSource} from "contracts/random/offchainsources/IOffchainRandomSource.sol"; +import {SupraSourceAdaptor} from "contracts/random/offchainsources/supra/SupraSourceAdaptor.sol"; +import "@openzeppelin/contracts/proxy/erc1967/ERC1967Proxy.sol"; + +contract SupraInitTests is Test { + error NotVrfContract(); + + bytes32 public constant CONFIG_ADMIN_ROLE = keccak256("CONFIG_ADMIN_ROLE"); + + ERC1967Proxy public proxy; + RandomSeedProvider public impl; + RandomSeedProvider public randomSeedProvider; + + MockSupraRouter public mockSupraRouter; + SupraSourceAdaptor public supraSourceAdaptor; + + address public roleAdmin; + address public randomAdmin; + address public configAdmin; + address public upgradeAdmin; + + address public subscription = address(0x123); + + function setUp() public virtual { + roleAdmin = makeAddr("roleAdmin"); + randomAdmin = makeAddr("randomAdmin"); + configAdmin = makeAddr("configAdmin"); + upgradeAdmin = makeAddr("upgradeAdmin"); + + + impl = new RandomSeedProvider(); + proxy = new ERC1967Proxy(address(impl), + abi.encodeWithSelector(RandomSeedProvider.initialize.selector, roleAdmin, randomAdmin, upgradeAdmin, false)); + randomSeedProvider = RandomSeedProvider(address(proxy)); + + mockSupraRouter = new MockSupraRouter(); + supraSourceAdaptor = new SupraSourceAdaptor( + roleAdmin, configAdmin, address(mockSupraRouter), subscription); + mockSupraRouter.setAdaptor(address(supraSourceAdaptor)); + + vm.prank(randomAdmin); + randomSeedProvider.setOffchainRandomSource(address(supraSourceAdaptor)); + + // Ensure we are on a new block number when we start the tests. In particular, don't + // be on the same block number as when the contracts were deployed. + vm.roll(block.number + 1); + } + + function testInit() public { + mockSupraRouter = new MockSupraRouter(); + supraSourceAdaptor = new SupraSourceAdaptor( + roleAdmin, configAdmin, address(mockSupraRouter), subscription); + + assertEq(address(supraSourceAdaptor.vrfCoordinator()), address(mockSupraRouter), "vrfCoord not set correctly"); + assertEq(supraSourceAdaptor.subscriptionAccount(), subscription, "Subscription account did not match"); + assertTrue(supraSourceAdaptor.hasRole(CONFIG_ADMIN_ROLE, configAdmin), "Role config admin"); + } +} + + +contract SupraControlTests is SupraInitTests { + event SubscriptionChange(address _newSubscription); + + function testRoleAdmin() public { + bytes32 role = CONFIG_ADMIN_ROLE; + address newAdmin = makeAddr("newAdmin"); + + vm.prank(roleAdmin); + supraSourceAdaptor.grantRole(role, newAdmin); + assertTrue(supraSourceAdaptor.hasRole(role, newAdmin)); + } + + function testRoleAdminBadAuth() public { + bytes32 role = CONFIG_ADMIN_ROLE; + address newAdmin = makeAddr("newAdmin"); + vm.expectRevert(); + supraSourceAdaptor.grantRole(role, newAdmin); + } + + function testSetSubscription() public { + address newSub = address(7); + + vm.prank(configAdmin); + vm.expectEmit(true, true, true, true); + emit SubscriptionChange(newSub); + supraSourceAdaptor.setSubscription(newSub); + assertEq(supraSourceAdaptor.subscriptionAccount(), newSub, "subscription not set correctly"); + } + + function testSetSubscriptionBadAuth() public { + address newSub = address(7); + + vm.expectRevert(); + supraSourceAdaptor.setSubscription(newSub); + } + +} + + +contract SupraOperationalTests is SupraInitTests { + error WaitForRandom(); + error UnexpectedRandomWordsLength(uint256 _length); + + event RequestId(uint256 _requestId); + + bytes32 public constant RAND1 = bytes32(uint256(0x1a)); + bytes32 public constant RAND2 = bytes32(uint256(0x1b)); + + function testRequestRandom() public { + vm.recordLogs(); + uint256 fulfilmentIndex = supraSourceAdaptor.requestOffchainRandom(); + Vm.Log[] memory entries = vm.getRecordedLogs(); + assertEq(entries.length, 1); + assertEq(entries[0].topics[0], keccak256("RequestId(uint256)")); + uint256 requestId = abi.decode(entries[0].data, (uint256)); + assertEq(fulfilmentIndex, requestId, "Must be the same"); + + + bool ready = supraSourceAdaptor.isOffchainRandomReady(fulfilmentIndex); + assertFalse(ready, "Should not be ready yet"); + + mockSupraRouter.sendFulfill(fulfilmentIndex, uint256(RAND1)); + + ready = supraSourceAdaptor.isOffchainRandomReady(fulfilmentIndex); + assertTrue(ready, "Should be ready"); + + bytes32 rand = supraSourceAdaptor.getOffchainRandom(fulfilmentIndex); + assertEq(rand, RAND1, "Wrong value returned"); + } + + function testTwoRequests() public { + uint256 fulfilmentIndex1 = supraSourceAdaptor.requestOffchainRandom(); + uint256 fulfilmentIndex2 = supraSourceAdaptor.requestOffchainRandom(); + assertNotEq(fulfilmentIndex1, fulfilmentIndex2, "Different requests receive different indices"); + + bool ready = supraSourceAdaptor.isOffchainRandomReady(fulfilmentIndex1); + assertFalse(ready, "Should not be ready yet1"); + ready = supraSourceAdaptor.isOffchainRandomReady(fulfilmentIndex2); + assertFalse(ready, "Should not be ready yet2"); + + mockSupraRouter.sendFulfill(fulfilmentIndex2, uint256(RAND2)); + ready = supraSourceAdaptor.isOffchainRandomReady(fulfilmentIndex1); + assertFalse(ready, "Should not be ready yet3"); + ready = supraSourceAdaptor.isOffchainRandomReady(fulfilmentIndex2); + assertTrue(ready, "Should be ready1"); + + bytes32 rand = supraSourceAdaptor.getOffchainRandom(fulfilmentIndex2); + assertEq(rand, RAND2, "Wrong value returned1"); + + mockSupraRouter.sendFulfill(fulfilmentIndex1, uint256(RAND1)); + ready = supraSourceAdaptor.isOffchainRandomReady(fulfilmentIndex1); + assertTrue(ready, "Should be ready2"); + ready = supraSourceAdaptor.isOffchainRandomReady(fulfilmentIndex2); + assertTrue(ready, "Should be ready3"); + + rand = supraSourceAdaptor.getOffchainRandom(fulfilmentIndex1); + assertEq(rand, RAND1, "Wrong value returned2"); + } + + function testBadFulfilment() public { + uint256 fulfilmentIndex = supraSourceAdaptor.requestOffchainRandom(); + + uint256 length = 2; + uint256[] memory randomWords = new uint256[](length); + randomWords[0] = uint256(RAND1); + + vm.expectRevert(abi.encodeWithSelector(UnexpectedRandomWordsLength.selector, length)); + mockSupraRouter.sendFulfillRaw(fulfilmentIndex, randomWords); + } + + function testRequestTooEarly() public { + uint256 fulfilmentIndex = supraSourceAdaptor.requestOffchainRandom(); + + vm.expectRevert(abi.encodeWithSelector(WaitForRandom.selector)); + supraSourceAdaptor.getOffchainRandom(fulfilmentIndex); + } + + function testHackFulfilment() public { + uint256 fulfilmentIndex = supraSourceAdaptor.requestOffchainRandom(); + + MockSupraRouter hackSupraRouter = new MockSupraRouter(); + hackSupraRouter.setAdaptor(address(supraSourceAdaptor)); + + vm.expectRevert(abi.encodeWithSelector(NotVrfContract.selector)); + hackSupraRouter.sendFulfill(fulfilmentIndex, uint256(RAND1)); + } + +} + + + +contract SupraIntegrationTests is SupraOperationalTests { + function testEndToEnd() public { + MockGame game = new MockGame(address(randomSeedProvider)); + + vm.prank(randomAdmin); + randomSeedProvider.addOffchainRandomConsumer(address(game)); + + vm.recordLogs(); + uint256 randomRequestId = game.requestRandomValueCreation(); + Vm.Log[] memory entries = vm.getRecordedLogs(); + assertEq(entries.length, 1, "Unexpected number of events emitted"); + assertEq(entries[0].topics[0], keccak256("RequestId(uint256)")); + uint256 fulfilmentIndex = abi.decode(entries[0].data, (uint256)); + + assertFalse(game.isRandomValueReady(randomRequestId), "Should not be ready yet"); + + mockSupraRouter.sendFulfill(fulfilmentIndex, uint256(RAND1)); + + assertTrue(game.isRandomValueReady(randomRequestId), "Should be ready"); + + bytes32 randomValue = game.fetchRandom(randomRequestId); + assertNotEq(randomValue, bytes32(0), "Random Value zero"); + } +} + +contract SupraCoverageFakeTests is SupraInitTests { + // Do calls to unused functions in MockSupraRouter so that it doesn't impact the coverage results. + function testFixMockCoordinatorCoverage() public { + mockSupraRouter = new MockSupraRouter(); + mockSupraRouter.setAdaptor(address(supraSourceAdaptor)); + string memory str = ""; + mockSupraRouter.generateRequest( + str, + uint8(0) /* _rngCount */, + uint256(0) /* _numConfirmations */, + uint256(0) /* _clientSeed */, + address(0) /* _clientWalletAddress */ + ); + + } +} + From 5db497d18322482634d4c2408fc37349e72dfa9b Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 19 Jan 2024 16:53:51 +1000 Subject: [PATCH 065/100] Improve documentation --- contracts/bridge/x/Core.sol | 98 ++++++++++++++++--- .../chainlink/ChainlinkSourceAdaptor.sol | 8 +- .../offchainsources/supra/ISupraRouter.sol | 4 +- .../supra/SupraSourceAdaptor.sol | 27 +++++ 4 files changed, 115 insertions(+), 22 deletions(-) diff --git a/contracts/bridge/x/Core.sol b/contracts/bridge/x/Core.sol index 52b8d787..85cacf62 100644 --- a/contracts/bridge/x/Core.sol +++ b/contracts/bridge/x/Core.sol @@ -2,6 +2,7 @@ pragma solidity ^0.8.11; interface Core { + function announceAvailabilityVerifierRemovalIntent(address) external; function announceVerifierRemovalIntent(address) external; function getRegisteredAvailabilityVerifiers() external; @@ -83,7 +84,12 @@ interface Core { uint256 vaultId ) external view returns (uint256 balance); - function depositNft(uint256 starkKey, uint256 assetType, uint256 vaultId, uint256 tokenId) external; + function depositNft( + uint256 starkKey, + uint256 assetType, + uint256 vaultId, + uint256 tokenId + ) external; function getCancellationRequest( uint256 starkKey, @@ -91,19 +97,50 @@ interface Core { uint256 vaultId ) external view returns (uint256 request); - function depositERC20(uint256 starkKey, uint256 assetType, uint256 vaultId, uint256 quantizedAmount) external; + function depositERC20( + uint256 starkKey, + uint256 assetType, + uint256 vaultId, + uint256 quantizedAmount + ) external; - function depositEth(uint256 starkKey, uint256 assetType, uint256 vaultId) external payable; + function depositEth( + uint256 starkKey, + uint256 assetType, + uint256 vaultId + ) external payable; - function deposit(uint256 starkKey, uint256 assetType, uint256 vaultId, uint256 quantizedAmount) external; + function deposit( + uint256 starkKey, + uint256 assetType, + uint256 vaultId, + uint256 quantizedAmount + ) external; - function deposit(uint256 starkKey, uint256 assetType, uint256 vaultId) external payable; + function deposit( + uint256 starkKey, + uint256 assetType, + uint256 vaultId + ) external payable; - function depositCancel(uint256 starkKey, uint256 assetId, uint256 vaultId) external; + function depositCancel( + uint256 starkKey, + uint256 assetId, + uint256 vaultId + ) external; - function depositReclaim(uint256 starkKey, uint256 assetId, uint256 vaultId) external; + function depositReclaim( + uint256 starkKey, + uint256 assetId, + uint256 vaultId + ) external; - function depositNftReclaim(uint256 starkKey, uint256 assetType, uint256 vaultId, uint256 tokenId) external; + function depositNftReclaim( + uint256 starkKey, + uint256 assetType, + uint256 vaultId, + uint256 tokenId + ) external; event LogWithdrawalPerformed( uint256 ownerKey, @@ -140,13 +177,24 @@ interface Core { event LogMintableWithdrawalAllowed(uint256 ownerKey, uint256 assetId, uint256 quantizedAmount); - function getWithdrawalBalance(uint256 ownerKey, uint256 assetId) external view returns (uint256 balance); + function getWithdrawalBalance(uint256 ownerKey, uint256 assetId) + external + view + returns (uint256 balance); function withdraw(uint256 ownerKey, uint256 assetType) external; - function withdrawNft(uint256 ownerKey, uint256 assetType, uint256 tokenId) external; + function withdrawNft( + uint256 ownerKey, + uint256 assetType, + uint256 tokenId + ) external ; - function withdrawAndMint(uint256 ownerKey, uint256 assetType, bytes calldata mintingBlob) external; + function withdrawAndMint( + uint256 ownerKey, + uint256 assetType, + bytes calldata mintingBlob + ) external; function getVaultRoot() external view returns (uint256 root); function getVaultTreeHeight() external view returns (uint256 height); @@ -176,7 +224,12 @@ interface Core { function getQuantum(uint256 presumedAssetType) external view returns (uint256 quantum); - function escape(uint256 starkKey, uint256 vaultId, uint256 assetId, uint256 quantizedAmount) external; + function escape( + uint256 starkKey, + uint256 vaultId, + uint256 assetId, + uint256 quantizedAmount + ) external; event LogFullWithdrawalRequest(uint256 starkKey, uint256 vaultId); @@ -184,13 +237,26 @@ interface Core { function freezeRequest(uint256 starkKey, uint256 vaultId) external; - event LogRootUpdate(uint256 sequenceNumber, uint256 batchId, uint256 vaultRoot, uint256 orderRoot); + event LogRootUpdate( + uint256 sequenceNumber, + uint256 batchId, + uint256 vaultRoot, + uint256 orderRoot + ); event LogStateTransitionFact(bytes32 stateTransitionFact); - event LogVaultBalanceChangeApplied(address ethKey, uint256 assetId, uint256 vaultId, int256 quantizedAmountChange); + event LogVaultBalanceChangeApplied( + address ethKey, + uint256 assetId, + uint256 vaultId, + int256 quantizedAmountChange + ); function updateState(uint256[] calldata publicInput, uint256[] calldata applicationData) external; - function getFullWithdrawalRequest(uint256 starkKey, uint256 vaultId) external view returns (uint256 res); -} + function getFullWithdrawalRequest(uint256 starkKey, uint256 vaultId) + external + view + returns (uint256 res); +} \ No newline at end of file diff --git a/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol b/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol index 3179a670..04ccb4fd 100644 --- a/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol +++ b/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol @@ -14,16 +14,16 @@ import {IOffchainRandomSource} from "../IOffchainRandomSource.sol"; * version of the code and have the random seed provider point to the new version. */ contract ChainlinkSourceAdaptor is VRFConsumerBaseV2, SourceAdaptorBase { - // Log config changes. + /// @notice Log config changes. event ConfigChanges( bytes32 _keyHash, uint64 _subId, uint32 _callbackGasLimit); - // Relates to key that must sign the proof. + /// @notice Relates to key that must sign the proof. bytes32 public keyHash; - // Subscruption id. + /// @notice Subscruption id. uint64 public subId; - // Gas limit when executing the callback. + /// @notice Gas limit when executing the callback. uint32 public callbackGasLimit; /** diff --git a/contracts/random/offchainsources/supra/ISupraRouter.sol b/contracts/random/offchainsources/supra/ISupraRouter.sol index 727b3888..d02f0f79 100644 --- a/contracts/random/offchainsources/supra/ISupraRouter.sol +++ b/contracts/random/offchainsources/supra/ISupraRouter.sol @@ -2,11 +2,11 @@ pragma solidity 0.8.19; /** - * API for interacting with Supra's Verifiable Random Function. - * + * @notice API for interacting with Supra's Verifiable Random Function. */ interface ISupraRouter { + function generateRequest( string memory _functionSig, uint8 _rngCount, diff --git a/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol b/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol index b9ff35f7..64d055e6 100644 --- a/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol +++ b/contracts/random/offchainsources/supra/SupraSourceAdaptor.sol @@ -5,13 +5,28 @@ pragma solidity 0.8.19; import {ISupraRouter} from "./ISupraRouter.sol"; import {SourceAdaptorBase} from "../SourceAdaptorBase.sol"; +/** + * @notice Fetch random numbers from the Supra Verifiable Random + * @notice Function (VRF). + * @dev This contract is NOT upgradeable. If there is an issue with this code, deploy a new + * version of the code and have the random seed provider point to the new version. + */ contract SupraSourceAdaptor is SourceAdaptorBase { + /// @notice Error if a contract other than the Supra Router attempts to supply random values. error NotVrfContract(); + /// @notice Subscription address has changed. event SubscriptionChange(address _newSubscription); + /// @notice Subscription access. address public subscriptionAccount; + /** + * @param _roleAdmin Admin that can add and remove config admins. + * @param _configAdmin Admin that can change the configuration. + * @param _vrfCoordinator VRF coordinator contract address. + * @param _subscription Subscription account. + */ constructor( address _roleAdmin, address _configAdmin, @@ -22,12 +37,19 @@ contract SupraSourceAdaptor is SourceAdaptorBase { } + /** + * @notice Change the subscription account address. + * @param _subscription The address of the new subscription. + */ function setSubscription(address _subscription) external onlyRole(CONFIG_ADMIN_ROLE) { subscriptionAccount = _subscription; emit SubscriptionChange(subscriptionAccount); } + /** + * @inheritdoc IOffchainRandomSource + */ function requestOffchainRandom() external returns (uint256 _requestId) { return ISupraRouter(vrfCoordinator).generateRequest( @@ -38,6 +60,11 @@ contract SupraSourceAdaptor is SourceAdaptorBase { ); } + /** + * @notice Callback called when random words are returned by the VRF. + * @param _requestId is the fulfilment index. + * @param _randomWords are the random values from the VRF. + */ function fulfillRandomWords(uint256 _requestId, uint256[] calldata _randomWords) external { if (msg.sender != address(vrfCoordinator)) { revert NotVrfContract(); From 3356fce167cc1c5af32e7d61c94cb9bfa579bc0e Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 19 Jan 2024 17:02:04 +1000 Subject: [PATCH 066/100] Revert prettier changes across repo --- contracts/bridge/x/Registration.sol | 4 +- contracts/mocks/MockDisguisedEOA.sol | 1 - contracts/mocks/MockEIP1271Wallet.sol | 1 - contracts/mocks/MockFactory.sol | 1 - contracts/mocks/MockMarketplace.sol | 1 - contracts/mocks/MockOnReceive.sol | 1 - contracts/mocks/MockWallet.sol | 1 - contracts/mocks/MockWalletFactory.sol | 1 - .../erc1155/abstract/ImmutableERC1155Base.sol | 40 ++-- .../erc1155/preset/draft-ImmutableERC1155.sol | 13 +- .../token/erc721/abstract/ERC721Hybrid.sol | 36 ++-- contracts/token/erc721/abstract/IERC4494.sol | 32 ++-- .../erc721/abstract/ImmutableERC721Base.sol | 22 ++- .../abstract/ImmutableERC721HybridBase.sol | 25 ++- .../erc721/abstract/MintingAccessControl.sol | 5 +- .../token/erc721/preset/ImmutableERC721.sol | 6 +- .../erc721/preset/ImmutableERC721MintByID.sol | 12 +- contracts/token/erc721/x/Asset.sol | 12 +- contracts/token/erc721/x/IMintable.sol | 8 +- contracts/token/erc721/x/Mintable.sol | 20 +- contracts/token/erc721/x/utils/Bytes.sol | 8 +- contracts/token/erc721/x/utils/Minting.sol | 10 +- .../trading/seaport/ImmutableSeaport.sol | 95 ++++++++-- .../seaport/conduit/ConduitController.sol | 2 +- .../validators/ReadOnlyOrderValidator.sol | 2 +- .../seaport/validators/SeaportValidator.sol | 2 +- .../validators/SeaportValidatorHelper.sol | 2 +- .../seaport/zones/ImmutableSignedZone.sol | 174 ++++++++++++++---- .../zones/interfaces/SIP5Interface.sol | 7 +- .../zones/interfaces/SIP7EventsAndErrors.sol | 18 +- 30 files changed, 375 insertions(+), 187 deletions(-) diff --git a/contracts/bridge/x/Registration.sol b/contracts/bridge/x/Registration.sol index 819bf55a..70b0c2ee 100644 --- a/contracts/bridge/x/Registration.sol +++ b/contracts/bridge/x/Registration.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.11; -import {Core} from "./Core.sol"; +import { Core } from "./Core.sol"; contract Registration { Core public imx; @@ -80,4 +80,4 @@ contract Registration { function isRegistered(uint256 starkKey) public view returns (bool) { return imx.getEthKey(starkKey) != address(0); } -} +} \ No newline at end of file diff --git a/contracts/mocks/MockDisguisedEOA.sol b/contracts/mocks/MockDisguisedEOA.sol index c9037acc..3056b1ba 100644 --- a/contracts/mocks/MockDisguisedEOA.sol +++ b/contracts/mocks/MockDisguisedEOA.sol @@ -1,4 +1,3 @@ -// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; diff --git a/contracts/mocks/MockEIP1271Wallet.sol b/contracts/mocks/MockEIP1271Wallet.sol index 82745a9c..8e12269d 100644 --- a/contracts/mocks/MockEIP1271Wallet.sol +++ b/contracts/mocks/MockEIP1271Wallet.sol @@ -1,4 +1,3 @@ -// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; diff --git a/contracts/mocks/MockFactory.sol b/contracts/mocks/MockFactory.sol index f96f4ebd..854b2f73 100644 --- a/contracts/mocks/MockFactory.sol +++ b/contracts/mocks/MockFactory.sol @@ -1,4 +1,3 @@ -// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import {Create2} from "@openzeppelin/contracts/utils/Create2.sol"; diff --git a/contracts/mocks/MockMarketplace.sol b/contracts/mocks/MockMarketplace.sol index a37d7d0e..cf7cb981 100644 --- a/contracts/mocks/MockMarketplace.sol +++ b/contracts/mocks/MockMarketplace.sol @@ -1,4 +1,3 @@ -// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; diff --git a/contracts/mocks/MockOnReceive.sol b/contracts/mocks/MockOnReceive.sol index c7973055..fc014515 100644 --- a/contracts/mocks/MockOnReceive.sol +++ b/contracts/mocks/MockOnReceive.sol @@ -1,4 +1,3 @@ -// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; diff --git a/contracts/mocks/MockWallet.sol b/contracts/mocks/MockWallet.sol index c921abf4..5f42c422 100644 --- a/contracts/mocks/MockWallet.sol +++ b/contracts/mocks/MockWallet.sol @@ -1,4 +1,3 @@ -// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; diff --git a/contracts/mocks/MockWalletFactory.sol b/contracts/mocks/MockWalletFactory.sol index 9dc7e109..2871a9ff 100644 --- a/contracts/mocks/MockWalletFactory.sol +++ b/contracts/mocks/MockWalletFactory.sol @@ -1,4 +1,3 @@ -// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract MockWalletFactory { diff --git a/contracts/token/erc1155/abstract/ImmutableERC1155Base.sol b/contracts/token/erc1155/abstract/ImmutableERC1155Base.sol index ccf9c903..d4e818cd 100644 --- a/contracts/token/erc1155/abstract/ImmutableERC1155Base.sol +++ b/contracts/token/erc1155/abstract/ImmutableERC1155Base.sol @@ -11,7 +11,11 @@ import "../../../allowlist/OperatorAllowlistEnforced.sol"; // Utils import "@openzeppelin/contracts/utils/structs/BitMaps.sol"; -abstract contract ImmutableERC1155Base is OperatorAllowlistEnforced, ERC1155Permit, ERC2981 { +abstract contract ImmutableERC1155Base is + OperatorAllowlistEnforced, + ERC1155Permit, + ERC2981 +{ /// @dev Contract level metadata string public contractURI; @@ -63,7 +67,7 @@ abstract contract ImmutableERC1155Base is OperatorAllowlistEnforced, ERC1155Perm * @param tokenId The token identifier to set the royalty receiver for. * @param receiver The address of the royalty receiver * @param feeNumerator The royalty fee numerator - */ + */ function setNFTRoyaltyReceiver( uint256 tokenId, address receiver, @@ -77,7 +81,7 @@ abstract contract ImmutableERC1155Base is OperatorAllowlistEnforced, ERC1155Perm * @param tokenIds The token identifiers to set the royalty receiver for. * @param receiver The address of the royalty receiver * @param feeNumerator The royalty fee numerator - */ + */ function setNFTRoyaltyReceiverBatch( uint256[] calldata tokenIds, address receiver, @@ -118,8 +122,8 @@ abstract contract ImmutableERC1155Base is OperatorAllowlistEnforced, ERC1155Perm * @param baseURI_ The base URI for all tokens */ function setBaseURI(string memory baseURI_) public onlyRole(DEFAULT_ADMIN_ROLE) { - _setURI(baseURI_); - _baseURI = baseURI_; + _setURI(baseURI_); + _baseURI = baseURI_; } /// @dev Allows admin to set the contract URI @@ -150,7 +154,13 @@ abstract contract ImmutableERC1155Base is OperatorAllowlistEnforced, ERC1155Perm */ function supportsInterface( bytes4 interfaceId - ) public view virtual override(ERC1155Permit, ERC2981, OperatorAllowlistEnforced) returns (bool) { + ) + public + view + virtual + override(ERC1155Permit, ERC2981, OperatorAllowlistEnforced) + returns (bool) + { return super.supportsInterface(interfaceId); } @@ -245,13 +255,7 @@ abstract contract ImmutableERC1155Base is OperatorAllowlistEnforced, ERC1155Perm * @param value The amount to transfer. * @param data Additional data with no specified format, sent in call to `to`. */ - function _safeTransferFrom( - address from, - address to, - uint256 id, - uint256 value, - bytes memory data - ) internal override validateTransfer(from, to) { + function _safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes memory data) internal override validateTransfer(from, to) { super._safeTransferFrom(from, to, id, value, data); } @@ -263,13 +267,9 @@ abstract contract ImmutableERC1155Base is OperatorAllowlistEnforced, ERC1155Perm * @param values The amounts to transfer per token id. * @param data Additional data with no specified format, sent in call to `to`. */ - function _safeBatchTransferFrom( - address from, - address to, - uint256[] memory ids, - uint256[] memory values, - bytes memory data - ) internal override validateTransfer(from, to) { + function _safeBatchTransferFrom(address from, address to, uint256[] memory ids, uint256[] memory values, bytes memory data) internal override validateTransfer(from, to) { super._safeBatchTransferFrom(from, to, ids, values, data); } + + } diff --git a/contracts/token/erc1155/preset/draft-ImmutableERC1155.sol b/contracts/token/erc1155/preset/draft-ImmutableERC1155.sol index f84fe0d9..de6469ed 100644 --- a/contracts/token/erc1155/preset/draft-ImmutableERC1155.sol +++ b/contracts/token/erc1155/preset/draft-ImmutableERC1155.sol @@ -12,7 +12,7 @@ import "../abstract/ImmutableERC1155Base.sol"; */ contract ImmutableERC1155 is ImmutableERC1155Base { - /// ===== Constructor ===== + /// ===== Constructor ===== /** * @notice Grants `DEFAULT_ADMIN_ROLE` to the supplied `owner` address @@ -30,7 +30,9 @@ contract ImmutableERC1155 is ImmutableERC1155Base { address _operatorAllowlist, address _receiver, uint96 _feeNumerator - ) ImmutableERC1155Base(owner, name_, baseURI_, contractURI_, _operatorAllowlist, _receiver, _feeNumerator) {} + ) + ImmutableERC1155Base(owner, name_, baseURI_, contractURI_, _operatorAllowlist, _receiver, _feeNumerator) + {} /// ===== External functions ===== @@ -38,12 +40,7 @@ contract ImmutableERC1155 is ImmutableERC1155Base { super._mint(to, id, value, data); } - function safeMintBatch( - address to, - uint256[] calldata ids, - uint256[] calldata values, - bytes memory data - ) external onlyRole(MINTER_ROLE) { + function safeMintBatch(address to, uint256[] calldata ids, uint256[] calldata values, bytes memory data) external onlyRole(MINTER_ROLE) { super._mintBatch(to, ids, values, data); } } diff --git a/contracts/token/erc721/abstract/ERC721Hybrid.sol b/contracts/token/erc721/abstract/ERC721Hybrid.sol index ab3dc54d..0a5b136e 100644 --- a/contracts/token/erc721/abstract/ERC721Hybrid.sol +++ b/contracts/token/erc721/abstract/ERC721Hybrid.sol @@ -56,7 +56,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err /** @notice allows caller to burn multiple tokens by id * @param tokenIDs an array of token ids - */ + */ function burnBatch(uint256[] calldata tokenIDs) external { for (uint i = 0; i < tokenIDs.length; i++) { burn(tokenIDs[i]); @@ -65,7 +65,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err /** @notice burns the specified token id * @param tokenId the id of the token to burn - */ + */ function burn(uint256 tokenId) public virtual { if (!_isApprovedOrOwner(_msgSender(), tokenId)) { revert IImmutableERC721NotOwnerOrOperator(tokenId); @@ -76,7 +76,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err /** @notice Burn a token, checking the owner of the token against the parameter first. * @param owner the owner of the token * @param tokenId the id of the token to burn - */ + */ function safeBurn(address owner, uint256 tokenId) public virtual { address currentOwner = ownerOf(tokenId); if (currentOwner != owner) { @@ -92,7 +92,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err function mintBatchByQuantityThreshold() public pure virtual returns (uint256) { return 2 ** 128; } - + /** @notice checks to see if tokenID exists in the collection * @param tokenId the id of the token to check **/ @@ -113,7 +113,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err function totalSupply() public view override(ERC721PsiBurnable) returns (uint256) { return ERC721PsiBurnable.totalSupply() + _idMintTotalSupply; } - + /** @notice refer to erc721 or erc721psi */ function ownerOf(uint256 tokenId) public view virtual override(ERC721, ERC721Psi) returns (address) { if (tokenId < mintBatchByQuantityThreshold()) { @@ -216,7 +216,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err /** @notice mints number of tokens specified to the address given via erc721psi * @param to the address to mint to * @param quantity the number of tokens to mint - */ + */ function _mintByQuantity(address to, uint256 quantity) internal { ERC721Psi._mint(to, quantity); } @@ -224,14 +224,14 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err /** @notice safe mints number of tokens specified to the address given via erc721psi * @param to the address to mint to * @param quantity the number of tokens to mint - */ + */ function _safeMintByQuantity(address to, uint256 quantity) internal { ERC721Psi._safeMint(to, quantity); } /** @notice mints number of tokens specified to a multiple specified addresses via erc721psi * @param mints an array of mint requests - */ + */ function _mintBatchByQuantity(Mint[] calldata mints) internal { for (uint i = 0; i < mints.length; i++) { Mint calldata m = mints[i]; @@ -241,7 +241,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err /** @notice safe mints number of tokens specified to a multiple specified addresses via erc721psi * @param mints an array of mint requests - */ + */ function _safeMintBatchByQuantity(Mint[] calldata mints) internal { for (uint i = 0; i < mints.length; i++) { Mint calldata m = mints[i]; @@ -249,10 +249,11 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err } } + /** @notice safe mints number of tokens specified to a multiple specified addresses via erc721 * @param to the address to mint to * @param tokenId the id of the token to mint - */ + */ function _mintByID(address to, uint256 tokenId) internal { if (tokenId >= mintBatchByQuantityThreshold()) { revert IImmutableERC721IDAboveThreshold(tokenId); @@ -261,7 +262,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err if (_burnedTokens.get(tokenId)) { revert IImmutableERC721TokenAlreadyBurned(tokenId); } - + _idMintTotalSupply++; ERC721._mint(to, tokenId); } @@ -280,10 +281,10 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err } _idMintTotalSupply++; - ERC721._safeMint(to, tokenId); + ERC721._safeMint(to, tokenId); } - /** @notice mints multiple tokens by id to a specified address via erc721 + /** @notice mints multiple tokens by id to a specified address via erc721 * @param to the address to mint to * @param tokenIds the ids of the tokens to mint */ @@ -293,7 +294,7 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err } } - /** @notice safe mints multiple tokens by id to a specified address via erc721 + /** @notice safe mints multiple tokens by id to a specified address via erc721 * @param to the address to mint to * @param tokenIds the ids of the tokens to mint **/ @@ -324,8 +325,8 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err } /** @notice batch burn a tokens by id, checking the owner of the token against the parameter first. - * @param burns array of burn requests - */ + * @param burns array of burn requests + */ function _safeBurnBatch(IDBurn[] calldata burns) internal { for (uint i = 0; i < burns.length; i++) { IDBurn calldata b = burns[i]; @@ -435,4 +436,5 @@ abstract contract ERC721Hybrid is ERC721PsiBurnable, ERC721, IImmutableERC721Err function _baseURI() internal view virtual override(ERC721, ERC721Psi) returns (string memory) { return ERC721._baseURI(); } -} + +} \ No newline at end of file diff --git a/contracts/token/erc721/abstract/IERC4494.sol b/contracts/token/erc721/abstract/IERC4494.sol index 6097c488..37b7023d 100644 --- a/contracts/token/erc721/abstract/IERC4494.sol +++ b/contracts/token/erc721/abstract/IERC4494.sol @@ -8,23 +8,23 @@ import "@openzeppelin/contracts/interfaces/IERC165.sol"; /// @dev Interface for token permits for ERC721 /// interface IERC4494 is IERC165 { - /// ERC165 bytes to add to interface array - set in parent contract - /// - /// _INTERFACE_ID_ERC4494 = 0x5604e225 + /// ERC165 bytes to add to interface array - set in parent contract + /// + /// _INTERFACE_ID_ERC4494 = 0x5604e225 - /// @notice Function to approve by way of owner signature - /// @param spender the address to approve - /// @param tokenId the index of the NFT to approve the spender on - /// @param deadline a timestamp expiry for the permit - /// @param sig a traditional or EIP-2098 signature - function permit(address spender, uint256 tokenId, uint256 deadline, bytes memory sig) external; + /// @notice Function to approve by way of owner signature + /// @param spender the address to approve + /// @param tokenId the index of the NFT to approve the spender on + /// @param deadline a timestamp expiry for the permit + /// @param sig a traditional or EIP-2098 signature + function permit(address spender, uint256 tokenId, uint256 deadline, bytes memory sig) external; - /// @notice Returns the nonce of an NFT - useful for creating permits - /// @param tokenId the index of the NFT to get the nonce of - /// @return the uint256 representation of the nonce - function nonces(uint256 tokenId) external view returns (uint256); + /// @notice Returns the nonce of an NFT - useful for creating permits + /// @param tokenId the index of the NFT to get the nonce of + /// @return the uint256 representation of the nonce + function nonces(uint256 tokenId) external view returns(uint256); - /// @notice Returns the domain separator used in the encoding of the signature for permits, as defined by EIP-712 - /// @return the bytes32 domain separator - function DOMAIN_SEPARATOR() external view returns (bytes32); + /// @notice Returns the domain separator used in the encoding of the signature for permits, as defined by EIP-712 + /// @return the bytes32 domain separator + function DOMAIN_SEPARATOR() external view returns(bytes32); } diff --git a/contracts/token/erc721/abstract/ImmutableERC721Base.sol b/contracts/token/erc721/abstract/ImmutableERC721Base.sol index 47bbba65..900719ee 100644 --- a/contracts/token/erc721/abstract/ImmutableERC721Base.sol +++ b/contracts/token/erc721/abstract/ImmutableERC721Base.sol @@ -11,7 +11,8 @@ import "../../../allowlist/OperatorAllowlistEnforced.sol"; // Utils import "@openzeppelin/contracts/utils/structs/BitMaps.sol"; -import {AccessControlEnumerable, MintingAccessControl} from "./MintingAccessControl.sol"; +import { AccessControlEnumerable, MintingAccessControl } from "./MintingAccessControl.sol"; + /* ImmutableERC721Base is an abstract contract that offers minimum preset functionality without @@ -19,7 +20,12 @@ import {AccessControlEnumerable, MintingAccessControl} from "./MintingAccessCont own minting functionality to meet the needs of the inheriting contract. */ -abstract contract ImmutableERC721Base is OperatorAllowlistEnforced, MintingAccessControl, ERC721Permit, ERC2981 { +abstract contract ImmutableERC721Base is + OperatorAllowlistEnforced, + MintingAccessControl, + ERC721Permit, + ERC2981 +{ using BitMaps for BitMaps.BitMap; /// ===== State Variables ===== @@ -90,7 +96,7 @@ abstract contract ImmutableERC721Base is OperatorAllowlistEnforced, MintingAcces * @param receiver the address to receive the royalty * @param feeNumerator the royalty fee numerator * @dev This can only be called by the an admin. See ERC2981 for more details on _setDefaultRoyalty - */ + */ function setDefaultRoyaltyReceiver(address receiver, uint96 feeNumerator) public onlyRole(DEFAULT_ADMIN_ROLE) { _setDefaultRoyalty(receiver, feeNumerator); } @@ -100,7 +106,7 @@ abstract contract ImmutableERC721Base is OperatorAllowlistEnforced, MintingAcces * @param receiver the address to receive the royalty * @param feeNumerator the royalty fee numerator * @dev This can only be called by the a minter. See ERC2981 for more details on _setTokenRoyalty - */ + */ function setNFTRoyaltyReceiver( uint256 tokenId, address receiver, @@ -114,7 +120,7 @@ abstract contract ImmutableERC721Base is OperatorAllowlistEnforced, MintingAcces * @param receiver the address to receive the royalty * @param feeNumerator the royalty fee numerator * @dev This can only be called by the a minter. See ERC2981 for more details on _setTokenRoyalty - */ + */ function setNFTRoyaltyReceiverBatch( uint256[] calldata tokenIds, address receiver, @@ -186,7 +192,7 @@ abstract contract ImmutableERC721Base is OperatorAllowlistEnforced, MintingAcces /** @notice Returns the supported interfaces * @param interfaceId the interface to check for support - */ + */ function supportsInterface( bytes4 interfaceId ) @@ -234,11 +240,12 @@ abstract contract ImmutableERC721Base is OperatorAllowlistEnforced, MintingAcces if (mintRequest.to == address(0)) { revert IImmutableERC721SendingToZerothAddress(); } - + _totalSupply = _totalSupply + mintRequest.tokenIds.length; for (uint256 j = 0; j < mintRequest.tokenIds.length; j++) { _mint(mintRequest.to, mintRequest.tokenIds[j]); } + } /** @notice safe mints a batch of tokens with specified ids to a specified address @@ -283,4 +290,5 @@ abstract contract ImmutableERC721Base is OperatorAllowlistEnforced, MintingAcces function _baseURI() internal view virtual override(ERC721) returns (string memory) { return baseURI; } + } diff --git a/contracts/token/erc721/abstract/ImmutableERC721HybridBase.sol b/contracts/token/erc721/abstract/ImmutableERC721HybridBase.sol index c4034918..534d12bc 100644 --- a/contracts/token/erc721/abstract/ImmutableERC721HybridBase.sol +++ b/contracts/token/erc721/abstract/ImmutableERC721HybridBase.sol @@ -2,24 +2,21 @@ // SPDX-License-Identifier: Apache 2.0 pragma solidity 0.8.19; -import {AccessControlEnumerable, MintingAccessControl} from "./MintingAccessControl.sol"; -import {ERC2981} from "@openzeppelin/contracts/token/common/ERC2981.sol"; -import {OperatorAllowlistEnforced} from "../../../allowlist/OperatorAllowlistEnforced.sol"; -import {ERC721HybridPermit} from "./ERC721HybridPermit.sol"; -import {ERC721Hybrid} from "./ERC721Hybrid.sol"; +import { AccessControlEnumerable, MintingAccessControl } from "./MintingAccessControl.sol"; +import { ERC2981 } from "@openzeppelin/contracts/token/common/ERC2981.sol"; +import { OperatorAllowlistEnforced } from "../../../allowlist/OperatorAllowlistEnforced.sol"; +import { ERC721HybridPermit } from "./ERC721HybridPermit.sol"; +import { ERC721Hybrid } from "./ERC721Hybrid.sol"; + +abstract contract ImmutableERC721HybridBase is OperatorAllowlistEnforced, MintingAccessControl, ERC2981, ERC721HybridPermit { -abstract contract ImmutableERC721HybridBase is - OperatorAllowlistEnforced, - MintingAccessControl, - ERC2981, - ERC721HybridPermit -{ /// @notice Contract level metadata string public contractURI; /// @notice Common URIs for individual token URIs string public baseURI; + /** * @notice Grants `DEFAULT_ADMIN_ROLE` to the supplied `owner` address * @param owner_ The address to grant the `DEFAULT_ADMIN_ROLE` to @@ -41,7 +38,7 @@ abstract contract ImmutableERC721HybridBase is address operatorAllowlist_, address receiver_, uint96 feeNumerator_ - ) ERC721HybridPermit(name_, symbol_) { + )ERC721HybridPermit(name_, symbol_) { // Initialize state variables _grantRole(DEFAULT_ADMIN_ROLE, owner_); _setDefaultRoyalty(receiver_, feeNumerator_); @@ -122,7 +119,7 @@ abstract contract ImmutableERC721HybridBase is function setDefaultRoyaltyReceiver(address receiver, uint96 feeNumerator) public onlyRole(DEFAULT_ADMIN_ROLE) { _setDefaultRoyalty(receiver, feeNumerator); } - + /** @notice Set the royalty receiver address for a specific tokenId * @param tokenId the token to set the royalty for * @param receiver the address to receive the royalty @@ -142,7 +139,7 @@ abstract contract ImmutableERC721HybridBase is * @param receiver the address to receive the royalty * @param feeNumerator the royalty fee numerator * @dev This can only be called by the a minter. See ERC2981 for more details on _setTokenRoyalty - */ + */ function setNFTRoyaltyReceiverBatch( uint256[] calldata tokenIds, address receiver, diff --git a/contracts/token/erc721/abstract/MintingAccessControl.sol b/contracts/token/erc721/abstract/MintingAccessControl.sol index 53564302..a363a1d4 100644 --- a/contracts/token/erc721/abstract/MintingAccessControl.sol +++ b/contracts/token/erc721/abstract/MintingAccessControl.sol @@ -5,10 +5,11 @@ pragma solidity 0.8.19; import {AccessControlEnumerable} from "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; abstract contract MintingAccessControl is AccessControlEnumerable { + /// @notice Role to mint tokens bytes32 public constant MINTER_ROLE = bytes32("MINTER_ROLE"); - /** @notice Allows admin grant `user` `MINTER` role + /** @notice Allows admin grant `user` `MINTER` role * @param user The address to grant the `MINTER` role to */ function grantMinterRole(address user) public onlyRole(DEFAULT_ADMIN_ROLE) { @@ -22,7 +23,7 @@ abstract contract MintingAccessControl is AccessControlEnumerable { revokeRole(MINTER_ROLE, user); } - /** @notice Returns the addresses which have DEFAULT_ADMIN_ROLE */ + /** @notice Returns the addresses which have DEFAULT_ADMIN_ROLE */ function getAdmins() public view returns (address[] memory) { uint256 adminCount = getRoleMemberCount(DEFAULT_ADMIN_ROLE); address[] memory admins = new address[](adminCount); diff --git a/contracts/token/erc721/preset/ImmutableERC721.sol b/contracts/token/erc721/preset/ImmutableERC721.sol index 8c7136ac..43e63187 100644 --- a/contracts/token/erc721/preset/ImmutableERC721.sol +++ b/contracts/token/erc721/preset/ImmutableERC721.sol @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache 2.0 pragma solidity 0.8.19; -import {MintingAccessControl} from "../abstract/MintingAccessControl.sol"; -import {ImmutableERC721HybridBase} from "../abstract/ImmutableERC721HybridBase.sol"; +import { MintingAccessControl } from "../abstract/MintingAccessControl.sol"; +import { ImmutableERC721HybridBase } from "../abstract/ImmutableERC721HybridBase.sol"; contract ImmutableERC721 is ImmutableERC721HybridBase { /// ===== Constructor ===== @@ -88,7 +88,7 @@ contract ImmutableERC721 is ImmutableERC721HybridBase { function safeMintBatchByQuantity(Mint[] calldata mints) external onlyRole(MINTER_ROLE) { _safeMintBatchByQuantity(mints); } - + /** @notice Allows minter to safe mint a number of tokens by ID to a number of specified * addresses with hooks and checks. Check ERC721Hybrid for details on _mintBatchByIDToMultiple * @param mints the list of IDMint struct containing the to, and tokenIds diff --git a/contracts/token/erc721/preset/ImmutableERC721MintByID.sol b/contracts/token/erc721/preset/ImmutableERC721MintByID.sol index 9e7eeb41..182b387f 100644 --- a/contracts/token/erc721/preset/ImmutableERC721MintByID.sol +++ b/contracts/token/erc721/preset/ImmutableERC721MintByID.sol @@ -29,18 +29,10 @@ contract ImmutableERC721MintByID is ImmutableERC721Base { address royaltyReceiver_, uint96 feeNumerator_ ) - ImmutableERC721Base( - owner_, - name_, - symbol_, - baseURI_, - contractURI_, - operatorAllowlist_, - royaltyReceiver_, - feeNumerator_ - ) + ImmutableERC721Base(owner_, name_, symbol_, baseURI_, contractURI_, operatorAllowlist_, royaltyReceiver_, feeNumerator_) {} + /** @notice Allows minter to mint `tokenID` to `to` * @param to the address to mint the token to * @param tokenID the ID of the token to mint diff --git a/contracts/token/erc721/x/Asset.sol b/contracts/token/erc721/x/Asset.sol index 76ebd36e..9386a1cc 100644 --- a/contracts/token/erc721/x/Asset.sol +++ b/contracts/token/erc721/x/Asset.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; -import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol"; -import {Mintable} from "./Mintable.sol"; +import { ERC721 } from "@openzeppelin/contracts/token/ERC721/ERC721.sol"; +import { Mintable } from "./Mintable.sol"; contract Asset is ERC721, Mintable { constructor( @@ -12,7 +12,11 @@ contract Asset is ERC721, Mintable { address _imx ) ERC721(_name, _symbol) Mintable(_owner, _imx) {} - function _mintFor(address user, uint256 id, bytes memory) internal override { + function _mintFor( + address user, + uint256 id, + bytes memory + ) internal override { _safeMint(user, id); } -} +} \ No newline at end of file diff --git a/contracts/token/erc721/x/IMintable.sol b/contracts/token/erc721/x/IMintable.sol index 580df4a8..ea0229ca 100644 --- a/contracts/token/erc721/x/IMintable.sol +++ b/contracts/token/erc721/x/IMintable.sol @@ -2,5 +2,9 @@ pragma solidity ^0.8.4; interface IMintable { - function mintFor(address to, uint256 quantity, bytes calldata mintingBlob) external; -} + function mintFor( + address to, + uint256 quantity, + bytes calldata mintingBlob + ) external; +} \ No newline at end of file diff --git a/contracts/token/erc721/x/Mintable.sol b/contracts/token/erc721/x/Mintable.sol index 60bcf190..d20eb2dc 100644 --- a/contracts/token/erc721/x/Mintable.sol +++ b/contracts/token/erc721/x/Mintable.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; -import {IMintable} from "./IMintable.sol"; -import {Minting} from "./utils/Minting.sol"; +import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol"; +import { IMintable } from "./IMintable.sol"; +import { Minting } from "./utils/Minting.sol"; abstract contract Mintable is Ownable, IMintable { address public imx; @@ -22,7 +22,11 @@ abstract contract Mintable is Ownable, IMintable { _; } - function mintFor(address user, uint256 quantity, bytes calldata mintingBlob) external override onlyOwnerOrIMX { + function mintFor( + address user, + uint256 quantity, + bytes calldata mintingBlob + ) external override onlyOwnerOrIMX { require(quantity == 1, "Mintable: invalid quantity"); (uint256 id, bytes memory blueprint) = Minting.split(mintingBlob); _mintFor(user, id, blueprint); @@ -30,5 +34,9 @@ abstract contract Mintable is Ownable, IMintable { emit AssetMinted(user, id, blueprint); } - function _mintFor(address to, uint256 id, bytes memory blueprint) internal virtual; -} + function _mintFor( + address to, + uint256 id, + bytes memory blueprint + ) internal virtual; +} \ No newline at end of file diff --git a/contracts/token/erc721/x/utils/Bytes.sol b/contracts/token/erc721/x/utils/Bytes.sol index 3c633272..ae0c3013 100644 --- a/contracts/token/erc721/x/utils/Bytes.sol +++ b/contracts/token/erc721/x/utils/Bytes.sol @@ -45,7 +45,11 @@ library Bytes { * @return int The position of the needle starting from 0 and returning -1 * in the case of no matches found */ - function indexOf(bytes memory _base, string memory _value, uint256 _offset) internal pure returns (int256) { + function indexOf( + bytes memory _base, + string memory _value, + uint256 _offset + ) internal pure returns (int256) { bytes memory _valueBytes = bytes(_value); assert(_valueBytes.length == 1); @@ -85,4 +89,4 @@ library Bytes { } return result; } -} +} \ No newline at end of file diff --git a/contracts/token/erc721/x/utils/Minting.sol b/contracts/token/erc721/x/utils/Minting.sol index beada939..ae5fe076 100644 --- a/contracts/token/erc721/x/utils/Minting.sol +++ b/contracts/token/erc721/x/utils/Minting.sol @@ -1,13 +1,17 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; -import {Bytes} from "./Bytes.sol"; +import { Bytes } from "./Bytes.sol"; library Minting { // Split the minting blob into token_id and blueprint portions // {token_id}:{blueprint} - function split(bytes calldata blob) internal pure returns (uint256, bytes memory) { + function split(bytes calldata blob) + internal + pure + returns (uint256, bytes memory) + { int256 index = Bytes.indexOf(blob, ":", 0); require(index >= 0, "Separator must exist"); // Trim the { and } from the parameters @@ -19,4 +23,4 @@ library Minting { bytes calldata blueprint = blob[uint256(index) + 2:blob.length - 1]; return (tokenID, blueprint); } -} +} \ No newline at end of file diff --git a/contracts/trading/seaport/ImmutableSeaport.sol b/contracts/trading/seaport/ImmutableSeaport.sol index ab63a148..05dcd27b 100644 --- a/contracts/trading/seaport/ImmutableSeaport.sol +++ b/contracts/trading/seaport/ImmutableSeaport.sol @@ -2,11 +2,22 @@ // SPDX-License-Identifier: Apache-2 pragma solidity 0.8.17; -import {Consideration} from "seaport-core/src/lib/Consideration.sol"; -import {AdvancedOrder, BasicOrderParameters, CriteriaResolver, Execution, Fulfillment, FulfillmentComponent, Order, OrderComponents} from "seaport-types/src/lib/ConsiderationStructs.sol"; -import {OrderType} from "seaport-types/src/lib/ConsiderationEnums.sol"; -import {Ownable2Step} from "@openzeppelin/contracts/access/Ownable2Step.sol"; -import {ImmutableSeaportEvents} from "./interfaces/ImmutableSeaportEvents.sol"; +import { Consideration } from "seaport-core/src/lib/Consideration.sol"; +import { + AdvancedOrder, + BasicOrderParameters, + CriteriaResolver, + Execution, + Fulfillment, + FulfillmentComponent, + Order, + OrderComponents +} from "seaport-types/src/lib/ConsiderationStructs.sol"; +import { OrderType } from "seaport-types/src/lib/ConsiderationEnums.sol"; +import { Ownable2Step } from "@openzeppelin/contracts/access/Ownable2Step.sol"; +import { + ImmutableSeaportEvents +} from "./interfaces/ImmutableSeaportEvents.sol"; /** * @title ImmutableSeaport @@ -18,7 +29,11 @@ import {ImmutableSeaportEvents} from "./interfaces/ImmutableSeaportEvents.sol"; * spent (the "offer") along with an arbitrary number of items that must * be received back by the indicated recipients (the "consideration"). */ -contract ImmutableSeaport is Consideration, Ownable2Step, ImmutableSeaportEvents { +contract ImmutableSeaport is + Consideration, + Ownable2Step, + ImmutableSeaportEvents +{ // Mapping to store valid ImmutableZones - this allows for multiple Zones // to be active at the same time, and can be expired or added on demand. mapping(address => bool) public allowedZones; @@ -34,7 +49,9 @@ contract ImmutableSeaport is Consideration, Ownable2Step, ImmutableSeaportEvents * that may optionally be used to transfer approved * ERC20/721/1155 tokens. */ - constructor(address conduitController) Consideration(conduitController) Ownable2Step() {} + constructor( + address conduitController + ) Consideration(conduitController) Ownable2Step() {} /** * @dev Set the validity of a zone for use during fulfillment. @@ -104,7 +121,10 @@ contract ImmutableSeaport is Consideration, Ownable2Step, ImmutableSeaportEvents BasicOrderParameters calldata parameters ) public payable virtual override returns (bool fulfilled) { // All restricted orders are captured using this method - if (uint(parameters.basicOrderType) % 4 != 2 && uint(parameters.basicOrderType) % 4 != 3) { + if ( + uint(parameters.basicOrderType) % 4 != 2 && + uint(parameters.basicOrderType) % 4 != 3 + ) { revert OrderNotRestricted(); } @@ -145,7 +165,10 @@ contract ImmutableSeaport is Consideration, Ownable2Step, ImmutableSeaportEvents BasicOrderParameters calldata parameters ) public payable virtual override returns (bool fulfilled) { // All restricted orders are captured using this method - if (uint(parameters.basicOrderType) % 4 != 2 && uint(parameters.basicOrderType) % 4 != 3) { + if ( + uint(parameters.basicOrderType) % 4 != 2 && + uint(parameters.basicOrderType) % 4 != 3 + ) { revert OrderNotRestricted(); } @@ -259,7 +282,13 @@ contract ImmutableSeaport is Consideration, Ownable2Step, ImmutableSeaportEvents _rejectIfZoneInvalid(advancedOrder.parameters.zone); - return super.fulfillAdvancedOrder(advancedOrder, criteriaResolvers, fulfillerConduitKey, recipient); + return + super.fulfillAdvancedOrder( + advancedOrder, + criteriaResolvers, + fulfillerConduitKey, + recipient + ); } /** @@ -335,7 +364,10 @@ contract ImmutableSeaport is Consideration, Ownable2Step, ImmutableSeaportEvents payable virtual override - returns (bool[] memory, /* availableOrders */ Execution[] memory /* executions */) + returns ( + bool[] memory, + /* availableOrders */ Execution[] memory /* executions */ + ) { for (uint256 i = 0; i < orders.length; i++) { Order memory order = orders[i]; @@ -461,13 +493,18 @@ contract ImmutableSeaport is Consideration, Ownable2Step, ImmutableSeaportEvents payable virtual override - returns (bool[] memory, /* availableOrders */ Execution[] memory /* executions */) + returns ( + bool[] memory, + /* availableOrders */ Execution[] memory /* executions */ + ) { for (uint256 i = 0; i < advancedOrders.length; i++) { AdvancedOrder memory advancedOrder = advancedOrders[i]; if ( - advancedOrder.parameters.orderType != OrderType.FULL_RESTRICTED && - advancedOrder.parameters.orderType != OrderType.PARTIAL_RESTRICTED + advancedOrder.parameters.orderType != + OrderType.FULL_RESTRICTED && + advancedOrder.parameters.orderType != + OrderType.PARTIAL_RESTRICTED ) { revert OrderNotRestricted(); } @@ -525,7 +562,13 @@ contract ImmutableSeaport is Consideration, Ownable2Step, ImmutableSeaportEvents * @custom:name fulfillments */ Fulfillment[] calldata fulfillments - ) public payable virtual override returns (Execution[] memory /* executions */) { + ) + public + payable + virtual + override + returns (Execution[] memory /* executions */) + { for (uint256 i = 0; i < orders.length; i++) { Order memory order = orders[i]; if ( @@ -606,12 +649,20 @@ contract ImmutableSeaport is Consideration, Ownable2Step, ImmutableSeaportEvents */ Fulfillment[] calldata fulfillments, address recipient - ) public payable virtual override returns (Execution[] memory /* executions */) { + ) + public + payable + virtual + override + returns (Execution[] memory /* executions */) + { for (uint256 i = 0; i < advancedOrders.length; i++) { AdvancedOrder memory advancedOrder = advancedOrders[i]; if ( - advancedOrder.parameters.orderType != OrderType.FULL_RESTRICTED && - advancedOrder.parameters.orderType != OrderType.PARTIAL_RESTRICTED + advancedOrder.parameters.orderType != + OrderType.FULL_RESTRICTED && + advancedOrder.parameters.orderType != + OrderType.PARTIAL_RESTRICTED ) { revert OrderNotRestricted(); } @@ -619,6 +670,12 @@ contract ImmutableSeaport is Consideration, Ownable2Step, ImmutableSeaportEvents _rejectIfZoneInvalid(advancedOrder.parameters.zone); } - return super.matchAdvancedOrders(advancedOrders, criteriaResolvers, fulfillments, recipient); + return + super.matchAdvancedOrders( + advancedOrders, + criteriaResolvers, + fulfillments, + recipient + ); } } diff --git a/contracts/trading/seaport/conduit/ConduitController.sol b/contracts/trading/seaport/conduit/ConduitController.sol index b7425363..11c02ae3 100644 --- a/contracts/trading/seaport/conduit/ConduitController.sol +++ b/contracts/trading/seaport/conduit/ConduitController.sol @@ -1,4 +1,4 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.14; -import {ConduitController} from "seaport-core/src/conduit/ConduitController.sol"; +import { ConduitController } from "seaport-core/src/conduit/ConduitController.sol"; diff --git a/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol b/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol index 43539921..8a823c82 100644 --- a/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol +++ b/contracts/trading/seaport/validators/ReadOnlyOrderValidator.sol @@ -1,4 +1,4 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.17; -import {ReadOnlyOrderValidator} from "seaport/contracts/helpers/order-validator/lib/ReadOnlyOrderValidator.sol"; +import { ReadOnlyOrderValidator } from "seaport/contracts/helpers/order-validator/lib/ReadOnlyOrderValidator.sol"; diff --git a/contracts/trading/seaport/validators/SeaportValidator.sol b/contracts/trading/seaport/validators/SeaportValidator.sol index 669d5336..b431bcb4 100644 --- a/contracts/trading/seaport/validators/SeaportValidator.sol +++ b/contracts/trading/seaport/validators/SeaportValidator.sol @@ -1,4 +1,4 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.17; -import {SeaportValidator} from "seaport/contracts/helpers/order-validator/SeaportValidator.sol"; +import { SeaportValidator } from "seaport/contracts/helpers/order-validator/SeaportValidator.sol"; diff --git a/contracts/trading/seaport/validators/SeaportValidatorHelper.sol b/contracts/trading/seaport/validators/SeaportValidatorHelper.sol index 92eab660..0334c9cd 100644 --- a/contracts/trading/seaport/validators/SeaportValidatorHelper.sol +++ b/contracts/trading/seaport/validators/SeaportValidatorHelper.sol @@ -1,4 +1,4 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.17; -import {SeaportValidatorHelper} from "seaport/contracts/helpers/order-validator/lib/SeaportValidatorHelper.sol"; +import { SeaportValidatorHelper } from "seaport/contracts/helpers/order-validator/lib/SeaportValidatorHelper.sol"; diff --git a/contracts/trading/seaport/zones/ImmutableSignedZone.sol b/contracts/trading/seaport/zones/ImmutableSignedZone.sol index 9ed8d07e..733904b7 100644 --- a/contracts/trading/seaport/zones/ImmutableSignedZone.sol +++ b/contracts/trading/seaport/zones/ImmutableSignedZone.sol @@ -2,16 +2,20 @@ // SPDX-License-Identifier: Apache-2 pragma solidity 0.8.17; -import {ZoneParameters, Schema, ReceivedItem} from "seaport-types/src/lib/ConsiderationStructs.sol"; -import {ZoneInterface} from "seaport/contracts/interfaces/ZoneInterface.sol"; -import {SIP7Interface} from "./interfaces/SIP7Interface.sol"; -import {SIP7EventsAndErrors} from "./interfaces/SIP7EventsAndErrors.sol"; -import {SIP6EventsAndErrors} from "./interfaces/SIP6EventsAndErrors.sol"; -import {SIP5Interface} from "./interfaces/SIP5Interface.sol"; -import {Ownable2Step} from "@openzeppelin/contracts/access/Ownable2Step.sol"; -import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; -import {Strings} from "@openzeppelin/contracts/utils/Strings.sol"; -import {ERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; +import { + ZoneParameters, + Schema, + ReceivedItem +} from "seaport-types/src/lib/ConsiderationStructs.sol"; +import { ZoneInterface } from "seaport/contracts/interfaces/ZoneInterface.sol"; +import { SIP7Interface } from "./interfaces/SIP7Interface.sol"; +import { SIP7EventsAndErrors } from "./interfaces/SIP7EventsAndErrors.sol"; +import { SIP6EventsAndErrors } from "./interfaces/SIP6EventsAndErrors.sol"; +import { SIP5Interface } from "./interfaces/SIP5Interface.sol"; +import { Ownable2Step } from "@openzeppelin/contracts/access/Ownable2Step.sol"; +import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; +import { Strings } from "@openzeppelin/contracts/utils/Strings.sol"; +import { ERC165 } from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; /** * @title ImmutableSignedZone @@ -78,7 +82,8 @@ contract ImmutableSignedZone is ")" ); - bytes32 internal constant RECEIVED_ITEM_TYPEHASH = keccak256(RECEIVED_ITEM_BYTES); + bytes32 internal constant RECEIVED_ITEM_TYPEHASH = + keccak256(RECEIVED_ITEM_BYTES); bytes32 internal constant CONSIDERATION_TYPEHASH = keccak256(abi.encodePacked(CONSIDERATION_BYTES, RECEIVED_ITEM_BYTES)); @@ -111,7 +116,11 @@ contract ImmutableSignedZone is * signed. * Request and response payloads are defined in SIP-7. */ - constructor(string memory zoneName, string memory apiEndpoint, string memory documentationURI) { + constructor( + string memory zoneName, + string memory apiEndpoint, + string memory documentationURI + ) { // Set the zone name. _ZONE_NAME = zoneName; // set name hash @@ -203,7 +212,10 @@ contract ImmutableSignedZone is // Revert with an error if the extraData does not have valid length. if (extraData.length < 93) { - revert InvalidExtraData("extraData length must be at least 93 bytes", orderHash); + revert InvalidExtraData( + "extraData length must be at least 93 bytes", + orderHash + ); } // Revert if SIP6 version is not accepted (0) @@ -236,23 +248,46 @@ contract ImmutableSignedZone is // Revert unless // Expected fulfiller is 0 address (any fulfiller) or // Expected fulfiller is the same as actual fulfiller - if (expectedFulfiller != address(0) && expectedFulfiller != actualFulfiller) { - revert InvalidFulfiller(expectedFulfiller, actualFulfiller, orderHash); + if ( + expectedFulfiller != address(0) && + expectedFulfiller != actualFulfiller + ) { + revert InvalidFulfiller( + expectedFulfiller, + actualFulfiller, + orderHash + ); } // validate supported substandards (3,4) - _validateSubstandards(context, _deriveConsiderationHash(zoneParameters.consideration), zoneParameters); + _validateSubstandards( + context, + _deriveConsiderationHash(zoneParameters.consideration), + zoneParameters + ); // Derive the signedOrder hash - bytes32 signedOrderHash = _deriveSignedOrderHash(expectedFulfiller, expiration, orderHash, context); + bytes32 signedOrderHash = _deriveSignedOrderHash( + expectedFulfiller, + expiration, + orderHash, + context + ); // Derive the EIP-712 digest using the domain separator and signedOrder // hash through openzepplin helper - bytes32 digest = ECDSA.toTypedDataHash(_domainSeparator(), signedOrderHash); + bytes32 digest = ECDSA.toTypedDataHash( + _domainSeparator(), + signedOrderHash + ); // Recover the signer address from the digest and signature. // Pass in R and VS from compact signature (ERC2098) - address recoveredSigner = ECDSA.recover(digest, bytes32(signature[0:32]), bytes32(signature[32:64])); + address recoveredSigner = ECDSA.recover( + digest, + bytes32(signature[0:32]), + bytes32(signature[32:64]) + ); // Revert if the signer is not active // !This also reverts if the digest constructed on serverside is incorrect @@ -273,7 +308,10 @@ contract ImmutableSignedZone is * @return The domain separator. */ function _domainSeparator() internal view returns (bytes32) { - return block.chainid == _CHAIN_ID ? _DOMAIN_SEPARATOR : _deriveDomainSeparator(); + return + block.chainid == _CHAIN_ID + ? _DOMAIN_SEPARATOR + : _deriveDomainSeparator(); } /** @@ -296,7 +334,14 @@ contract ImmutableSignedZone is schemas[0].id = 7; schemas[0].metadata = abi.encode( - keccak256(abi.encode(_domainSeparator(), _sip7APIEndpoint, _getSupportedSubstandards(), _documentationURI)) + keccak256( + abi.encode( + _domainSeparator(), + _sip7APIEndpoint, + _getSupportedSubstandards(), + _documentationURI + ) + ) ); } @@ -305,8 +350,21 @@ contract ImmutableSignedZone is * * @return domainSeparator The derived domain separator. */ - function _deriveDomainSeparator() internal view returns (bytes32 domainSeparator) { - return keccak256(abi.encode(_EIP_712_DOMAIN_TYPEHASH, _NAME_HASH, _VERSION_HASH, block.chainid, address(this))); + function _deriveDomainSeparator() + internal + view + returns (bytes32 domainSeparator) + { + return + keccak256( + abi.encode( + _EIP_712_DOMAIN_TYPEHASH, + _NAME_HASH, + _VERSION_HASH, + block.chainid, + address(this) + ) + ); } /** @@ -314,7 +372,9 @@ contract ImmutableSignedZone is * * @param newApiEndpoint The new API endpoint. */ - function updateAPIEndpoint(string calldata newApiEndpoint) external override onlyOwner { + function updateAPIEndpoint( + string calldata newApiEndpoint + ) external override onlyOwner { // Update to the new API endpoint. _sip7APIEndpoint = newApiEndpoint; } @@ -366,7 +426,11 @@ contract ImmutableSignedZone is // revert if order hash in context and payload do not match bytes32 expectedConsiderationHash = bytes32(context[0:32]); if (expectedConsiderationHash != actualConsiderationHash) { - revert SubstandardViolation(3, "invalid consideration hash", zoneParameters.orderHash); + revert SubstandardViolation( + 3, + "invalid consideration hash", + zoneParameters.orderHash + ); } // substandard 4 - validate order hashes actual match expected @@ -382,15 +446,28 @@ contract ImmutableSignedZone is } // compute expected order hashes array based on context bytes - bytes32[] memory expectedOrderHashes = new bytes32[](orderHashesBytes.length / 32); + bytes32[] memory expectedOrderHashes = new bytes32[]( + orderHashesBytes.length / 32 + ); for (uint256 i = 0; i < orderHashesBytes.length / 32; i++) { - expectedOrderHashes[i] = bytes32(orderHashesBytes[i * 32:i * 32 + 32]); + expectedOrderHashes[i] = bytes32( + orderHashesBytes[i * 32:i * 32 + 32] + ); } // revert if order hashes in context and payload do not match // every expected order hash need to exist in fulfilling order hashes - if (!_everyElementExists(expectedOrderHashes, zoneParameters.orderHashes)) { - revert SubstandardViolation(4, "invalid order hashes", zoneParameters.orderHash); + if ( + !_everyElementExists( + expectedOrderHashes, + zoneParameters.orderHashes + ) + ) { + revert SubstandardViolation( + 4, + "invalid order hashes", + zoneParameters.orderHash + ); } } @@ -400,7 +477,11 @@ contract ImmutableSignedZone is * @return substandards array of substandards supported * */ - function _getSupportedSubstandards() internal pure returns (uint256[] memory substandards) { + function _getSupportedSubstandards() + internal + pure + returns (uint256[] memory substandards) + { // support substandards 3 and 4 substandards = new uint256[](2); substandards[0] = 3; @@ -426,7 +507,13 @@ contract ImmutableSignedZone is ) internal view returns (bytes32 signedOrderHash) { // Derive the signed order hash. signedOrderHash = keccak256( - abi.encode(_SIGNED_ORDER_TYPEHASH, fulfiller, expiration, orderHash, keccak256(context)) + abi.encode( + _SIGNED_ORDER_TYPEHASH, + fulfiller, + expiration, + orderHash, + keccak256(context) + ) ); } @@ -434,7 +521,9 @@ contract ImmutableSignedZone is * @dev Derive the EIP712 consideration hash based on received item array * @param consideration expected consideration array */ - function _deriveConsiderationHash(ReceivedItem[] calldata consideration) internal pure returns (bytes32) { + function _deriveConsiderationHash( + ReceivedItem[] calldata consideration + ) internal pure returns (bytes32) { uint256 numberOfItems = consideration.length; bytes32[] memory considerationHashes = new bytes32[](numberOfItems); for (uint256 i; i < numberOfItems; i++) { @@ -449,7 +538,13 @@ contract ImmutableSignedZone is ) ); } - return keccak256(abi.encode(CONSIDERATION_TYPEHASH, keccak256(abi.encodePacked(considerationHashes)))); + return + keccak256( + abi.encode( + CONSIDERATION_TYPEHASH, + keccak256(abi.encodePacked(considerationHashes)) + ) + ); } /** @@ -459,7 +554,10 @@ contract ImmutableSignedZone is * @param array1 subset array * @param array2 superset array */ - function _everyElementExists(bytes32[] memory array1, bytes32[] calldata array2) internal pure returns (bool) { + function _everyElementExists( + bytes32[] memory array1, + bytes32[] calldata array2 + ) internal pure returns (bool) { // cache the length in memory for loop optimisation uint256 array1Size = array1.length; uint256 array2Size = array2.length; @@ -497,7 +595,11 @@ contract ImmutableSignedZone is return true; } - function supportsInterface(bytes4 interfaceId) public view override(ERC165, ZoneInterface) returns (bool) { - return interfaceId == type(ZoneInterface).interfaceId || super.supportsInterface(interfaceId); + function supportsInterface( + bytes4 interfaceId + ) public view override(ERC165, ZoneInterface) returns (bool) { + return + interfaceId == type(ZoneInterface).interfaceId || + super.supportsInterface(interfaceId); } } diff --git a/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol b/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol index 3808d6dd..9da10294 100644 --- a/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol +++ b/contracts/trading/seaport/zones/interfaces/SIP5Interface.sol @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2 pragma solidity 0.8.17; -import {Schema} from "seaport-types/src/lib/ConsiderationStructs.sol"; +import { Schema } from "seaport-types/src/lib/ConsiderationStructs.sol"; /** * @dev SIP-5: Contract Metadata Interface for Seaport Contracts @@ -21,5 +21,8 @@ interface SIP5Interface { * @return name The contract name * @return schemas The supported SIPs */ - function getSeaportMetadata() external view returns (string memory name, Schema[] memory schemas); + function getSeaportMetadata() + external + view + returns (string memory name, Schema[] memory schemas); } diff --git a/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol b/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol index d4d07dbb..75555db0 100644 --- a/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol +++ b/contracts/trading/seaport/zones/interfaces/SIP7EventsAndErrors.sol @@ -43,17 +43,29 @@ interface SIP7EventsAndErrors { /** * @dev Revert with an error when the signature has expired. */ - error SignatureExpired(uint256 currentTimestamp, uint256 expiration, bytes32 orderHash); + error SignatureExpired( + uint256 currentTimestamp, + uint256 expiration, + bytes32 orderHash + ); /** * @dev Revert with an error if the fulfiller does not match. */ - error InvalidFulfiller(address expectedFulfiller, address actualFulfiller, bytes32 orderHash); + error InvalidFulfiller( + address expectedFulfiller, + address actualFulfiller, + bytes32 orderHash + ); /** * @dev Revert with an error if a substandard validation fails */ - error SubstandardViolation(uint256 substandardId, string reason, bytes32 orderHash); + error SubstandardViolation( + uint256 substandardId, + string reason, + bytes32 orderHash + ); /** * @dev Revert with an error if supplied order extraData is invalid From 19eb7a7a6ead617b4f4f31902ec571506ad49af3 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 19 Jan 2024 17:22:02 +1000 Subject: [PATCH 067/100] Revert prettier changes --- .../token/erc721/abstract/ERC721Permit.sol | 88 ++++++++++++++----- 1 file changed, 66 insertions(+), 22 deletions(-) diff --git a/contracts/token/erc721/abstract/ERC721Permit.sol b/contracts/token/erc721/abstract/ERC721Permit.sol index 47fdefea..99026027 100644 --- a/contracts/token/erc721/abstract/ERC721Permit.sol +++ b/contracts/token/erc721/abstract/ERC721Permit.sol @@ -17,26 +17,30 @@ import {IImmutableERC721Errors} from "../../../errors/Errors.sol"; * @dev This contract implements ERC-4494 as well, allowing tokens to be approved via off-chain signed messages. */ -abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableERC721Errors { +abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableERC721Errors{ + /** @notice mapping used to keep track of nonces of each token ID for validating * signatures */ mapping(uint256 => uint256) private _nonces; + /** @dev the unique identifier for the permit struct to be EIP 712 compliant */ - bytes32 private constant _PERMIT_TYPEHASH = - keccak256( - abi.encodePacked( - "Permit(", + bytes32 private constant _PERMIT_TYPEHASH = keccak256( + abi.encodePacked( + "Permit(", "address spender," "uint256 tokenId," "uint256 nonce," "uint256 deadline" - ")" - ) - ); + ")" + ) + ); - constructor(string memory name, string memory symbol) ERC721(name, symbol) EIP712(name, "1") {} + constructor(string memory name, string memory symbol) + ERC721(name, symbol) + EIP712(name, "1") + {} /** * @notice Function to approve by way of owner signature @@ -45,7 +49,12 @@ abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableER * @param deadline a timestamp expiry for the permit * @param sig a traditional or EIP-2098 signature */ - function permit(address spender, uint256 tokenId, uint256 deadline, bytes memory sig) external override { + function permit( + address spender, + uint256 tokenId, + uint256 deadline, + bytes memory sig + ) external override { _permit(spender, tokenId, deadline, sig); } @@ -54,7 +63,9 @@ abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableER * @param tokenId The ID of the token for which to retrieve the nonce. * @return Current nonce of the given token. */ - function nonces(uint256 tokenId) external view returns (uint256) { + function nonces( + uint256 tokenId + ) external view returns (uint256) { return _nonces[tokenId]; } @@ -71,10 +82,16 @@ abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableER * @param interfaceId The interface identifier, which is a 4-byte selector. * @return True if the contract implements `interfaceId` and the call doesn't revert, otherwise false. */ - function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) { - return - interfaceId == type(IERC4494).interfaceId || // 0x5604e225 - super.supportsInterface(interfaceId); + function supportsInterface(bytes4 interfaceId) + public + view + virtual + override(IERC165, ERC721) + returns (bool) + { + return + interfaceId == type(IERC4494).interfaceId || // 0x5604e225 + super.supportsInterface(interfaceId); } /** @@ -83,12 +100,21 @@ abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableER * @param to The address to which the token is being transferred. * @param tokenId The ID of the token being transferred. */ - function _transfer(address from, address to, uint256 tokenId) internal virtual override(ERC721) { + function _transfer( + address from, + address to, + uint256 tokenId + ) internal virtual override(ERC721){ _nonces[tokenId]++; super._transfer(from, to, tokenId); } - function _permit(address spender, uint256 tokenId, uint256 deadline, bytes memory sig) internal virtual { + function _permit( + address spender, + uint256 tokenId, + uint256 deadline, + bytes memory sig + ) internal virtual { if (deadline < block.timestamp) { revert PermitExpired(); } @@ -132,8 +158,22 @@ abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableER * @param deadline The deadline until which the permit is valid. * @return A bytes32 digest, EIP-712 compliant, that serves as a unique identifier for the permit. */ - function _buildPermitDigest(address spender, uint256 tokenId, uint256 deadline) internal view returns (bytes32) { - return _hashTypedDataV4(keccak256(abi.encode(_PERMIT_TYPEHASH, spender, tokenId, _nonces[tokenId], deadline))); + function _buildPermitDigest( + address spender, + uint256 tokenId, + uint256 deadline + ) internal view returns (bytes32) { + return _hashTypedDataV4( + keccak256( + abi.encode( + _PERMIT_TYPEHASH, + spender, + tokenId, + _nonces[tokenId], + deadline + ) + ) + ); } /** @@ -142,7 +182,7 @@ abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableER * @param tokenId The token id. * @return True if the signature is from an approved operator or owner, otherwise false. */ - function _isValidEOASignature(address recoveredSigner, uint256 tokenId) private view returns (bool) { + function _isValidEOASignature(address recoveredSigner, uint256 tokenId) private view returns(bool) { return recoveredSigner != address(0) && _isApprovedOrOwner(recoveredSigner, tokenId); } @@ -153,9 +193,13 @@ abstract contract ERC721Permit is ERC721Burnable, IERC4494, EIP712, IImmutableER * @param sig The actual signature bytes. * @return True if the signature is valid according to EIP-1271, otherwise false. */ - function _isValidERC1271Signature(address spender, bytes32 digest, bytes memory sig) private view returns (bool) { + function _isValidERC1271Signature(address spender, bytes32 digest, bytes memory sig) private view returns(bool) { (bool success, bytes memory res) = spender.staticcall( - abi.encodeWithSelector(IERC1271.isValidSignature.selector, digest, sig) + abi.encodeWithSelector( + IERC1271.isValidSignature.selector, + digest, + sig + ) ); if (success && res.length == 32) { From a43fad61e4ef13b7bcf3a6e2119cf38e8bc59be9 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 22 Jan 2024 11:04:30 +1000 Subject: [PATCH 068/100] Remove package lock file --- package-lock.json | 32414 -------------------------------------------- 1 file changed, 32414 deletions(-) delete mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index f7fe5dbf..00000000 --- a/package-lock.json +++ /dev/null @@ -1,32414 +0,0 @@ -{ - "name": "@imtbl/contracts", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@imtbl/contracts", - "version": "0.0.0", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@chainlink/contracts": "^0.8.0", - "@openzeppelin/contracts": "^4.9.3", - "@openzeppelin/contracts-upgradeable": "^4.9.3", - "@rari-capital/solmate": "^6.4.0", - "chainlink": "^0.8.2", - "openzeppelin-contracts-upgradeable-4.9.3": "npm:@openzeppelin/contracts-upgradeable@^4.9.3", - "seaport": "https://github.com/immutable/seaport.git#1.5.0+im.1.3", - "solidity-bits": "^0.4.0", - "solidity-bytes-utils": "^0.8.0" - }, - "devDependencies": { - "@nomiclabs/hardhat-ethers": "^2.2.2", - "@nomiclabs/hardhat-etherscan": "^3.1.6", - "@nomiclabs/hardhat-waffle": "^2.0.5", - "@nomiclabs/hardhat-web3": "^2.0.0", - "@openzeppelin/test-helpers": "^0.5.16", - "@typechain/ethers-v5": "^10.2.0", - "@typechain/hardhat": "^6.1.4", - "@types/chai": "^4.3.4", - "@types/mocha": "^9.1.1", - "@types/node": "^18.17.14", - "@typescript-eslint/eslint-plugin": "^5.60.0", - "@typescript-eslint/parser": "^5.60.0", - "chai": "^4.3.7", - "dotenv": "^16.0.3", - "eslint": "^8.43.0", - "eslint-config-prettier": "^8.8.0", - "eslint-config-standard": "^17.1.0", - "eslint-plugin-import": "^2.28.1", - "eslint-plugin-n": "^16.1.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-promise": "^6.1.1", - "ethereum-waffle": "^4.0.10", - "ethers": "^5.7.2", - "hardhat": "^2.17.3", - "hardhat-gas-reporter": "^1.0.9", - "prettier": "^3.2.4", - "prettier-plugin-solidity": "^1.3.1", - "solhint": "^3.3.8", - "solhint-community": "^3.7.0", - "solhint-plugin-prettier": "^0.1.0", - "solidity-coverage": "^0.8.4", - "ts-node": "^10.9.1", - "typechain": "^8.1.1", - "typescript": "^4.9.5" - } - }, - "node_modules/@0x/assert": { - "version": "3.0.36", - "resolved": "https://registry.npmjs.org/@0x/assert/-/assert-3.0.36.tgz", - "integrity": "sha512-sUtrV5MhixXvWZpATjFqIDtgvvv64duSTuOyPdPJjB+/Lcl5jQhlSNuoN0X3XP0P79Sp+6tuez5MupgFGPA2QQ==", - "dependencies": { - "@0x/json-schemas": "^6.4.6", - "@0x/typescript-typings": "^5.3.2", - "@0x/utils": "^7.0.0", - "@types/node": "12.12.54", - "lodash": "^4.17.21", - "valid-url": "^1.0.9" - }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/@0x/assert/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/dev-utils": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@0x/dev-utils/-/dev-utils-5.0.3.tgz", - "integrity": "sha512-V58tT2aiiHNSQtEt2XQWZDsPMsQ4wPDnjZRUaW38W46QasIFfCbcpKmfCsAGJyFxM7t0m0JJJwmYTJwZhCGcoQ==", - "dependencies": { - "@0x/subproviders": "^8.0.1", - "@0x/types": "^3.3.7", - "@0x/typescript-typings": "^5.3.2", - "@0x/utils": "^7.0.0", - "@0x/web3-wrapper": "^8.0.1", - "@types/node": "12.12.54", - "@types/web3-provider-engine": "^14.0.0", - "chai": "^4.0.1", - "chai-as-promised": "^7.1.0", - "chai-bignumber": "^3.0.0", - "dirty-chai": "^2.0.1", - "ethereum-types": "^3.7.1", - "lodash": "^4.17.21", - "web3-provider-engine": "16.0.4" - }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/@0x/dev-utils/node_modules/@0x/subproviders": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@0x/subproviders/-/subproviders-8.0.1.tgz", - "integrity": "sha512-Lax7Msb1Ef9D6Dd7PQ19oPgjl5GIrKje7XsrO7YCfx5A0RM3Hr4nSQIxgg78jwvuulSFxQ5Sr8WiZ2hTHATtQg==", - "dependencies": { - "@0x/assert": "^3.0.36", - "@0x/types": "^3.3.7", - "@0x/typescript-typings": "^5.3.2", - "@0x/utils": "^7.0.0", - "@0x/web3-wrapper": "^8.0.1", - "@ethereumjs/common": "^2.6.3", - "@ethereumjs/tx": "^3.5.1", - "@types/hdkey": "^0.7.0", - "@types/node": "12.12.54", - "@types/web3-provider-engine": "^14.0.0", - "bip39": "2.5.0", - "ethereum-types": "^3.7.1", - "ethereumjs-util": "^7.1.5", - "ganache": "^7.4.0", - "hdkey": "2.1.0", - "json-rpc-error": "2.0.0", - "lodash": "^4.17.21", - "web3-provider-engine": "16.0.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@0x/dev-utils/node_modules/@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@0x/dev-utils/node_modules/@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "dependencies": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@0x/dev-utils/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/dev-utils/node_modules/bip39": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", - "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", - "dependencies": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" - } - }, - "node_modules/@0x/dev-utils/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@0x/dev-utils/node_modules/hdkey": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", - "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", - "dependencies": { - "bs58check": "^2.1.2", - "ripemd160": "^2.0.2", - "safe-buffer": "^5.1.1", - "secp256k1": "^4.0.0" - } - }, - "node_modules/@0x/dev-utils/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/@0x/dev-utils/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==", - "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" - } - }, - "node_modules/@0x/dev-utils/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/@0x/dev-utils/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==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/@0x/dev-utils/node_modules/web3-provider-engine": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.4.tgz", - "integrity": "sha512-f5WxJ9+LTF+4aJo4tCOXtQ6SDytBtLkhvV+qh/9gImHAuG9sMr6utY0mn/pro1Rx7O3hbztBxvQKjGMdOo8muw==", - "dependencies": { - "@ethereumjs/tx": "^3.3.0", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-filters": "^4.2.1", - "eth-json-rpc-infura": "^5.1.0", - "eth-json-rpc-middleware": "^6.0.0", - "eth-rpc-errors": "^3.0.0", - "eth-sig-util": "^1.4.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@0x/dev-utils/node_modules/web3-provider-engine/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/@0x/dev-utils/node_modules/web3-provider-engine/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/@0x/dev-utils/node_modules/ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/@0x/json-schemas": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/@0x/json-schemas/-/json-schemas-6.4.6.tgz", - "integrity": "sha512-TaqvhOkmLN/vkcpMUNVFZBTnWP05ZVo9iGAnP1CG/B8l4rvnUbLZvWx8KeDKs62I/5d7jdYISvXyOwP4EwrG4w==", - "dependencies": { - "@0x/typescript-typings": "^5.3.2", - "@types/node": "12.12.54", - "ajv": "^6.12.5", - "lodash.values": "^4.3.0" - }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/@0x/json-schemas/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/sol-compiler": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/@0x/sol-compiler/-/sol-compiler-4.8.5.tgz", - "integrity": "sha512-hAc3ZjpD+/fgSt/UQaAim8d2fQL3kWpnP5+tSEVf3/xetDDp3BhTOMi+wKnVuYo9FzuTgHx5MFueWM+mojE41A==", - "dependencies": { - "@0x/assert": "^3.0.36", - "@0x/json-schemas": "^6.4.6", - "@0x/sol-resolver": "^3.1.13", - "@0x/types": "^3.3.7", - "@0x/typescript-typings": "^5.3.2", - "@0x/utils": "^7.0.0", - "@0x/web3-wrapper": "^8.0.1", - "@types/node": "12.12.54", - "@types/yargs": "^11.0.0", - "chalk": "^2.3.0", - "chokidar": "^3.0.2", - "ethereum-types": "^3.7.1", - "ethereumjs-util": "^7.1.5", - "lodash": "^4.17.21", - "mkdirp": "^0.5.1", - "pluralize": "^7.0.0", - "require-from-string": "^2.0.1", - "semver": "5.5.0", - "solc": "^0.8", - "source-map-support": "^0.5.0", - "strip-comments": "^2.0.1", - "web3-eth-abi": "^1.0.0-beta.24", - "yargs": "^17.5.1" - }, - "bin": { - "sol-compiler": "bin/sol-compiler.js" - }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/@0x/sol-compiler/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/sol-compiler/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@0x/sol-compiler/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@0x/sol-compiler/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/@0x/sol-compiler/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@0x/sol-compiler/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@0x/sol-compiler/node_modules/pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@0x/sol-compiler/node_modules/require-from-string": { - "version": "2.0.2", - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@0x/sol-compiler/node_modules/semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@0x/sol-compiler/node_modules/solc": { - "version": "0.8.23", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.23.tgz", - "integrity": "sha512-uqe69kFWfJc3cKdxj+Eg9CdW1CP3PLZDPeyJStQVWL8Q9jjjKD0VuRAKBFR8mrWiq5A7gJqERxJFYJsklrVsfA==", - "dependencies": { - "command-exists": "^1.2.8", - "commander": "^8.1.0", - "follow-redirects": "^1.12.1", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "n": "^9.2.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "bin": { - "solcjs": "solc.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@0x/sol-compiler/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@0x/sol-compiler/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@0x/sol-compiler/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@0x/sol-compiler/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/@0x/sol-resolver": { - "version": "3.1.13", - "resolved": "https://registry.npmjs.org/@0x/sol-resolver/-/sol-resolver-3.1.13.tgz", - "integrity": "sha512-nQHqW7sOsDEH4ejH9nu60sCgFXEW08LM0v+5DimA/R7MizOW4LAG7OoHM+Oq8uPcHbeU0peFEDOW0idBsIzZ6g==", - "dependencies": { - "@0x/types": "^3.3.7", - "@0x/typescript-typings": "^5.3.2", - "@types/node": "12.12.54", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/@0x/sol-resolver/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/sol-trace": { - "version": "3.0.49", - "resolved": "https://registry.npmjs.org/@0x/sol-trace/-/sol-trace-3.0.49.tgz", - "integrity": "sha512-mCNbUCX6Oh1Z1e1g4AsD7sSbgMN7IGQyR0w+4xQYApgjwtYOaRPZMiluMXqp9nNHX75LwCfVd7NEIJIUMVQf2A==", - "dependencies": { - "@0x/sol-tracing-utils": "^7.3.5", - "@0x/subproviders": "^8.0.1", - "@0x/typescript-typings": "^5.3.2", - "@types/node": "12.12.54", - "chalk": "^2.3.0", - "ethereum-types": "^3.7.1", - "ethereumjs-util": "^7.1.5", - "lodash": "^4.17.21", - "loglevel": "^1.6.1", - "web3-provider-engine": "16.0.4" - }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/@0x/sol-trace/node_modules/@0x/subproviders": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@0x/subproviders/-/subproviders-8.0.1.tgz", - "integrity": "sha512-Lax7Msb1Ef9D6Dd7PQ19oPgjl5GIrKje7XsrO7YCfx5A0RM3Hr4nSQIxgg78jwvuulSFxQ5Sr8WiZ2hTHATtQg==", - "dependencies": { - "@0x/assert": "^3.0.36", - "@0x/types": "^3.3.7", - "@0x/typescript-typings": "^5.3.2", - "@0x/utils": "^7.0.0", - "@0x/web3-wrapper": "^8.0.1", - "@ethereumjs/common": "^2.6.3", - "@ethereumjs/tx": "^3.5.1", - "@types/hdkey": "^0.7.0", - "@types/node": "12.12.54", - "@types/web3-provider-engine": "^14.0.0", - "bip39": "2.5.0", - "ethereum-types": "^3.7.1", - "ethereumjs-util": "^7.1.5", - "ganache": "^7.4.0", - "hdkey": "2.1.0", - "json-rpc-error": "2.0.0", - "lodash": "^4.17.21", - "web3-provider-engine": "16.0.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@0x/sol-trace/node_modules/@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@0x/sol-trace/node_modules/@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "dependencies": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@0x/sol-trace/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/sol-trace/node_modules/bip39": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", - "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", - "dependencies": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" - } - }, - "node_modules/@0x/sol-trace/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@0x/sol-trace/node_modules/hdkey": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", - "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", - "dependencies": { - "bs58check": "^2.1.2", - "ripemd160": "^2.0.2", - "safe-buffer": "^5.1.1", - "secp256k1": "^4.0.0" - } - }, - "node_modules/@0x/sol-trace/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/@0x/sol-trace/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==", - "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" - } - }, - "node_modules/@0x/sol-trace/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/@0x/sol-trace/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==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/@0x/sol-trace/node_modules/web3-provider-engine": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.4.tgz", - "integrity": "sha512-f5WxJ9+LTF+4aJo4tCOXtQ6SDytBtLkhvV+qh/9gImHAuG9sMr6utY0mn/pro1Rx7O3hbztBxvQKjGMdOo8muw==", - "dependencies": { - "@ethereumjs/tx": "^3.3.0", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-filters": "^4.2.1", - "eth-json-rpc-infura": "^5.1.0", - "eth-json-rpc-middleware": "^6.0.0", - "eth-rpc-errors": "^3.0.0", - "eth-sig-util": "^1.4.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@0x/sol-trace/node_modules/web3-provider-engine/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/@0x/sol-trace/node_modules/web3-provider-engine/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/@0x/sol-trace/node_modules/ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/@0x/sol-tracing-utils": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/@0x/sol-tracing-utils/-/sol-tracing-utils-7.3.5.tgz", - "integrity": "sha512-KzLTcUcLiQD5N/NzkZnIwI0i4w775z4w/H0o2FeM3Gp/0BcBx2DZ+sqKVoCEUSussm+jx2v8MNJnM3wcdvvDlg==", - "dependencies": { - "@0x/dev-utils": "^5.0.3", - "@0x/sol-compiler": "^4.8.5", - "@0x/sol-resolver": "^3.1.13", - "@0x/subproviders": "^8.0.1", - "@0x/typescript-typings": "^5.3.2", - "@0x/utils": "^7.0.0", - "@0x/web3-wrapper": "^8.0.1", - "@types/node": "12.12.54", - "@types/solidity-parser-antlr": "^0.2.3", - "chalk": "^2.3.0", - "ethereum-types": "^3.7.1", - "ethereumjs-util": "^7.1.5", - "ethers": "~4.0.4", - "glob": "^7.1.2", - "istanbul": "^0.4.5", - "lodash": "^4.17.21", - "loglevel": "^1.6.1", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.2", - "semaphore-async-await": "^1.5.1", - "solc": "^0.8", - "solidity-parser-antlr": "^0.4.2" - }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/@0x/sol-tracing-utils/node_modules/@0x/subproviders": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@0x/subproviders/-/subproviders-8.0.1.tgz", - "integrity": "sha512-Lax7Msb1Ef9D6Dd7PQ19oPgjl5GIrKje7XsrO7YCfx5A0RM3Hr4nSQIxgg78jwvuulSFxQ5Sr8WiZ2hTHATtQg==", - "dependencies": { - "@0x/assert": "^3.0.36", - "@0x/types": "^3.3.7", - "@0x/typescript-typings": "^5.3.2", - "@0x/utils": "^7.0.0", - "@0x/web3-wrapper": "^8.0.1", - "@ethereumjs/common": "^2.6.3", - "@ethereumjs/tx": "^3.5.1", - "@types/hdkey": "^0.7.0", - "@types/node": "12.12.54", - "@types/web3-provider-engine": "^14.0.0", - "bip39": "2.5.0", - "ethereum-types": "^3.7.1", - "ethereumjs-util": "^7.1.5", - "ganache": "^7.4.0", - "hdkey": "2.1.0", - "json-rpc-error": "2.0.0", - "lodash": "^4.17.21", - "web3-provider-engine": "16.0.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@0x/sol-tracing-utils/node_modules/@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@0x/sol-tracing-utils/node_modules/@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "dependencies": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@0x/sol-tracing-utils/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/sol-tracing-utils/node_modules/bip39": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", - "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", - "dependencies": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" - } - }, - "node_modules/@0x/sol-tracing-utils/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/@0x/sol-tracing-utils/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@0x/sol-tracing-utils/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/@0x/sol-tracing-utils/node_modules/ethers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/@0x/sol-tracing-utils/node_modules/ethers/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==" - }, - "node_modules/@0x/sol-tracing-utils/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/@0x/sol-tracing-utils/node_modules/hdkey": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", - "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", - "dependencies": { - "bs58check": "^2.1.2", - "ripemd160": "^2.0.2", - "safe-buffer": "^5.1.1", - "secp256k1": "^4.0.0" - } - }, - "node_modules/@0x/sol-tracing-utils/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/@0x/sol-tracing-utils/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==", - "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" - } - }, - "node_modules/@0x/sol-tracing-utils/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/@0x/sol-tracing-utils/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/@0x/sol-tracing-utils/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "node_modules/@0x/sol-tracing-utils/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@0x/sol-tracing-utils/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" - }, - "node_modules/@0x/sol-tracing-utils/node_modules/solc": { - "version": "0.8.23", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.23.tgz", - "integrity": "sha512-uqe69kFWfJc3cKdxj+Eg9CdW1CP3PLZDPeyJStQVWL8Q9jjjKD0VuRAKBFR8mrWiq5A7gJqERxJFYJsklrVsfA==", - "dependencies": { - "command-exists": "^1.2.8", - "commander": "^8.1.0", - "follow-redirects": "^1.12.1", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "n": "^9.2.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "bin": { - "solcjs": "solc.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@0x/sol-tracing-utils/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==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/@0x/sol-tracing-utils/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details." - }, - "node_modules/@0x/sol-tracing-utils/node_modules/web3-provider-engine": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.4.tgz", - "integrity": "sha512-f5WxJ9+LTF+4aJo4tCOXtQ6SDytBtLkhvV+qh/9gImHAuG9sMr6utY0mn/pro1Rx7O3hbztBxvQKjGMdOo8muw==", - "dependencies": { - "@ethereumjs/tx": "^3.3.0", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-filters": "^4.2.1", - "eth-json-rpc-infura": "^5.1.0", - "eth-json-rpc-middleware": "^6.0.0", - "eth-rpc-errors": "^3.0.0", - "eth-sig-util": "^1.4.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@0x/sol-tracing-utils/node_modules/web3-provider-engine/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/@0x/sol-tracing-utils/node_modules/web3-provider-engine/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/@0x/sol-tracing-utils/node_modules/ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/@0x/subproviders": { - "version": "6.6.5", - "resolved": "https://registry.npmjs.org/@0x/subproviders/-/subproviders-6.6.5.tgz", - "integrity": "sha512-tpkKH5XBgrlO4K9dMNqsYiTgrAOJUnThiu73y9tYl4mwX/1gRpyG1EebvD8w6VKPrLjnyPyMw50ZvTyaYgbXNQ==", - "hasInstallScript": true, - "dependencies": { - "@0x/assert": "^3.0.34", - "@0x/types": "^3.3.6", - "@0x/typescript-typings": "^5.3.1", - "@0x/utils": "^6.5.3", - "@0x/web3-wrapper": "^7.6.5", - "@ethereumjs/common": "^2.4.0", - "@ethereumjs/tx": "^3.3.0", - "@ledgerhq/hw-app-eth": "^4.3.0", - "@ledgerhq/hw-transport-u2f": "4.24.0", - "@types/hdkey": "^0.7.0", - "@types/node": "12.12.54", - "@types/web3-provider-engine": "^14.0.0", - "bip39": "^2.5.0", - "bn.js": "^4.11.8", - "ethereum-types": "^3.7.0", - "ethereumjs-util": "^7.1.0", - "ganache-core": "^2.13.2", - "hdkey": "^0.7.1", - "json-rpc-error": "2.0.0", - "lodash": "^4.17.11", - "semaphore-async-await": "^1.5.1", - "web3-provider-engine": "14.0.6" - }, - "engines": { - "node": ">=6.12" - }, - "optionalDependencies": { - "@ledgerhq/hw-transport-node-hid": "^4.3.0" - } - }, - "node_modules/@0x/subproviders/node_modules/@0x/utils": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/@0x/utils/-/utils-6.5.3.tgz", - "integrity": "sha512-C8Af9MeNvWTtSg5eEOObSZ+7gjOGSHkhqDWv8iPfrMMt7yFkAjHxpXW+xufk6ZG2VTg+hel82GDyhKaGtoQZDA==", - "dependencies": { - "@0x/types": "^3.3.6", - "@0x/typescript-typings": "^5.3.1", - "@types/mocha": "^5.2.7", - "@types/node": "12.12.54", - "abortcontroller-polyfill": "^1.1.9", - "bignumber.js": "~9.0.2", - "chalk": "^2.3.0", - "detect-node": "2.0.3", - "ethereum-types": "^3.7.0", - "ethereumjs-util": "^7.1.0", - "ethers": "~4.0.4", - "isomorphic-fetch": "2.2.1", - "js-sha3": "^0.7.0", - "lodash": "^4.17.11" - }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/@0x/subproviders/node_modules/@0x/web3-wrapper": { - "version": "7.6.5", - "resolved": "https://registry.npmjs.org/@0x/web3-wrapper/-/web3-wrapper-7.6.5.tgz", - "integrity": "sha512-AyaisigXUsuwLcLqfji7DzQ+komL9NpaH1k2eTZMn7sxPfZZBSIMFbu3vgSKYvRnJdrXrkeKjE5h0BhIvTngMA==", - "dependencies": { - "@0x/assert": "^3.0.34", - "@0x/json-schemas": "^6.4.4", - "@0x/typescript-typings": "^5.3.1", - "@0x/utils": "^6.5.3", - "@types/node": "12.12.54", - "ethereum-types": "^3.7.0", - "ethereumjs-util": "^7.1.0", - "ethers": "~4.0.4", - "lodash": "^4.17.11" - }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/@0x/subproviders/node_modules/@types/mocha": { - "version": "5.2.7", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", - "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" - }, - "node_modules/@0x/subproviders/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/subproviders/node_modules/bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", - "engines": { - "node": "*" - } - }, - "node_modules/@0x/subproviders/node_modules/bip39": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.6.0.tgz", - "integrity": "sha512-RrnQRG2EgEoqO24ea+Q/fftuPUZLmrEM3qNhhGsA3PbaXaCW791LTzPuVyx/VprXQcTbPJ3K3UeTna8ZnVl2sg==", - "dependencies": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" - } - }, - "node_modules/@0x/subproviders/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/@0x/subproviders/node_modules/eth-block-tracker": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-3.0.1.tgz", - "integrity": "sha512-WUVxWLuhMmsfenfZvFO5sbl1qFY2IqUlw/FPVmjjdElpqLsZtSG+wPe9Dz7W/sB6e80HgFKknOmKk2eNlznHug==", - "dependencies": { - "eth-query": "^2.1.0", - "ethereumjs-tx": "^1.3.3", - "ethereumjs-util": "^5.1.3", - "ethjs-util": "^0.1.3", - "json-rpc-engine": "^3.6.0", - "pify": "^2.3.0", - "tape": "^4.6.3" - } - }, - "node_modules/@0x/subproviders/node_modules/eth-block-tracker/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/@0x/subproviders/node_modules/eth-json-rpc-infura": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz", - "integrity": "sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dependencies": { - "cross-fetch": "^2.1.1", - "eth-json-rpc-middleware": "^1.5.0", - "json-rpc-engine": "^3.4.0", - "json-rpc-error": "^2.0.0" - } - }, - "node_modules/@0x/subproviders/node_modules/eth-json-rpc-middleware": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz", - "integrity": "sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q==", - "dependencies": { - "async": "^2.5.0", - "eth-query": "^2.1.2", - "eth-tx-summary": "^3.1.2", - "ethereumjs-block": "^1.6.0", - "ethereumjs-tx": "^1.3.3", - "ethereumjs-util": "^5.1.2", - "ethereumjs-vm": "^2.1.0", - "fetch-ponyfill": "^4.0.0", - "json-rpc-engine": "^3.6.0", - "json-rpc-error": "^2.0.0", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "tape": "^4.6.3" - } - }, - "node_modules/@0x/subproviders/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/@0x/subproviders/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/@0x/subproviders/node_modules/ethers/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==" - }, - "node_modules/@0x/subproviders/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/@0x/subproviders/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/@0x/subproviders/node_modules/isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", - "dependencies": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "node_modules/@0x/subproviders/node_modules/js-sha3": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.7.0.tgz", - "integrity": "sha512-Wpks3yBDm0UcL5qlVhwW9Jr9n9i4FfeWBFOOXP5puDS/SiudJGhw7DPyBqn3487qD4F0lsC0q3zxink37f7zeA==" - }, - "node_modules/@0x/subproviders/node_modules/json-rpc-engine": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz", - "integrity": "sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA==", - "dependencies": { - "async": "^2.0.1", - "babel-preset-env": "^1.7.0", - "babelify": "^7.3.0", - "json-rpc-error": "^2.0.0", - "promise-to-callback": "^1.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/@0x/subproviders/node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node_modules/@0x/subproviders/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@0x/subproviders/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==", - "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" - } - }, - "node_modules/@0x/subproviders/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/@0x/subproviders/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "node_modules/@0x/subproviders/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" - }, - "node_modules/@0x/subproviders/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==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/@0x/subproviders/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details." - }, - "node_modules/@0x/subproviders/node_modules/web3-provider-engine": { - "version": "14.0.6", - "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-14.0.6.tgz", - "integrity": "sha512-tr5cGSyxfSC/JqiUpBlJtfZpwQf1yAA8L/zy1C6fDFm0ntR974pobJ4v4676atpZne4Ze5VFy3kPPahHe9gQiQ==", - "dependencies": { - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^3.0.0", - "eth-json-rpc-infura": "^3.1.0", - "eth-sig-util": "^1.4.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-tx": "^1.2.0", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-rpc-error": "^2.0.0", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.67.0", - "semaphore": "^1.0.3", - "tape": "^4.4.0", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - } - }, - "node_modules/@0x/subproviders/node_modules/web3-provider-engine/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/@0x/subproviders/node_modules/ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/@0x/types": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@0x/types/-/types-3.3.7.tgz", - "integrity": "sha512-6lPXPnvKaIfAJ5hIgs81SytqNCPCLstQ/DA598iLpb90KKjjz8QsdrfII4JeKdrEREvLcWSH9SeH4sNPWyLhlA==", - "dependencies": { - "@types/node": "12.12.54", - "bignumber.js": "~9.0.2", - "ethereum-types": "^3.7.1" - }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/@0x/types/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/types/node_modules/bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", - "engines": { - "node": "*" - } - }, - "node_modules/@0x/typescript-typings": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/@0x/typescript-typings/-/typescript-typings-5.3.2.tgz", - "integrity": "sha512-VIo8PS/IRXrI1aEzM8TenUMViX4MFMKBnIAwqC4K/ewVDSnKyYZSk8fzw0XZph6tN07obchPf+1sHIWYe8EUow==", - "dependencies": { - "@types/bn.js": "^4.11.0", - "@types/node": "12.12.54", - "@types/react": "*", - "bignumber.js": "~9.0.2", - "ethereum-types": "^3.7.1", - "popper.js": "1.14.3" - }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/@0x/typescript-typings/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@0x/typescript-typings/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/typescript-typings/node_modules/bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", - "engines": { - "node": "*" - } - }, - "node_modules/@0x/utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@0x/utils/-/utils-7.0.0.tgz", - "integrity": "sha512-g+Bp0eHUGhnVGeVZqGn7UVtpzs/FuoXksiDaajfJrHFW0owwo5YwpwFIAVU7/ca0B6IKa74e71gskLwWGINEFg==", - "dependencies": { - "@0x/types": "^3.3.7", - "@0x/typescript-typings": "^5.3.2", - "@types/mocha": "^5.2.7", - "@types/node": "12.12.54", - "abortcontroller-polyfill": "^1.1.9", - "bignumber.js": "~9.0.2", - "chalk": "^2.3.0", - "detect-node": "2.0.3", - "ethereum-types": "^3.7.1", - "ethereumjs-util": "^7.1.5", - "ethers": "~4.0.4", - "isomorphic-fetch": "^3.0.0", - "js-sha3": "^0.7.0", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/@0x/utils/node_modules/@types/mocha": { - "version": "5.2.7", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", - "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" - }, - "node_modules/@0x/utils/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/utils/node_modules/bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", - "engines": { - "node": "*" - } - }, - "node_modules/@0x/utils/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@0x/utils/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/@0x/utils/node_modules/ethers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/@0x/utils/node_modules/ethers/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==" - }, - "node_modules/@0x/utils/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/@0x/utils/node_modules/js-sha3": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.7.0.tgz", - "integrity": "sha512-Wpks3yBDm0UcL5qlVhwW9Jr9n9i4FfeWBFOOXP5puDS/SiudJGhw7DPyBqn3487qD4F0lsC0q3zxink37f7zeA==" - }, - "node_modules/@0x/utils/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "node_modules/@0x/utils/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" - }, - "node_modules/@0x/utils/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details." - }, - "node_modules/@0x/web3-wrapper": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@0x/web3-wrapper/-/web3-wrapper-8.0.1.tgz", - "integrity": "sha512-2rqugeCld5r/3yg+Un9sPCUNVeZW5J64Fm6i/W6qRE87X+spIJG48oJymTjSMDXw/w3FaP4nAvhSj2C5fvhN6w==", - "dependencies": { - "@0x/assert": "^3.0.36", - "@0x/json-schemas": "^6.4.6", - "@0x/typescript-typings": "^5.3.2", - "@0x/utils": "^7.0.0", - "@types/node": "12.12.54", - "ethereum-types": "^3.7.1", - "ethereumjs-util": "^7.1.5", - "ethers": "~4.0.4", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/@0x/web3-wrapper/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/@0x/web3-wrapper/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@0x/web3-wrapper/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/@0x/web3-wrapper/node_modules/ethers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/@0x/web3-wrapper/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/@0x/web3-wrapper/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==" - }, - "node_modules/@0x/web3-wrapper/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "node_modules/@0x/web3-wrapper/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" - }, - "node_modules/@0x/web3-wrapper/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details." - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", - "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", - "peer": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.7", - "@babel/parser": "^7.23.6", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "peer": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", - "peer": true, - "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", - "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "peer": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "peer": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "peer": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "peer": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "peer": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", - "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", - "peer": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", - "peer": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz", - "integrity": "sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g==", - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.23.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.1.tgz", - "integrity": "sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", - "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@chainlink/contracts": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@chainlink/contracts/-/contracts-0.8.0.tgz", - "integrity": "sha512-nUv1Uxw5Mn92wgLs2bgPYmo8hpdQ3s9jB/lcbdU0LmNOVu0hbfmouVnqwRLa28Ll50q6GczUA+eO0ikNIKLZsA==", - "dependencies": { - "@eth-optimism/contracts": "^0.5.21", - "@openzeppelin/contracts": "~4.3.3", - "@openzeppelin/contracts-upgradeable-4.7.3": "npm:@openzeppelin/contracts-upgradeable@v4.7.3", - "@openzeppelin/contracts-v0.7": "npm:@openzeppelin/contracts@v3.4.2" - } - }, - "node_modules/@chainlink/contracts/node_modules/@openzeppelin/contracts": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.3.tgz", - "integrity": "sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g==" - }, - "node_modules/@chainlink/test-helpers": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@chainlink/test-helpers/-/test-helpers-0.0.1.tgz", - "integrity": "sha512-rxNg1R9ywhttvFCQWEA6KVR9Zr88cm+YgaXA3DD6QYP3GKtVX4U1AvJvrgP0gIM/Kk0a/wvJnY/3p644HmWNAg==", - "dependencies": { - "@0x/sol-trace": "^3.0.4", - "@0x/subproviders": "^6.0.4", - "bn.js": "^4.11.0", - "cbor": "^5.0.1", - "chai": "^4.2.0", - "chalk": "^2.4.2", - "debug": "^4.1.1", - "ethers": "^4.0.41" - } - }, - "node_modules/@chainlink/test-helpers/node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "engines": { - "node": "*" - } - }, - "node_modules/@chainlink/test-helpers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/@chainlink/test-helpers/node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@chainlink/test-helpers/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/@chainlink/test-helpers/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/@chainlink/test-helpers/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==" - }, - "node_modules/@chainlink/test-helpers/node_modules/nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@chainlink/test-helpers/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "node_modules/@chainlink/test-helpers/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" - }, - "node_modules/@chainlink/test-helpers/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details." - }, - "node_modules/@chainsafe/as-sha256": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz", - "integrity": "sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==" - }, - "node_modules/@chainsafe/persistent-merkle-tree": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz", - "integrity": "sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==", - "dependencies": { - "@chainsafe/as-sha256": "^0.3.1" - } - }, - "node_modules/@chainsafe/ssz": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.9.4.tgz", - "integrity": "sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==", - "dependencies": { - "@chainsafe/as-sha256": "^0.3.1", - "@chainsafe/persistent-merkle-tree": "^0.4.2", - "case": "^1.6.3" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "devOptional": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@ensdomains/address-encoder": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz", - "integrity": "sha512-E2d2gP4uxJQnDu2Kfg1tHNspefzbLT8Tyjrm5sEuim32UkU2sm5xL4VXtgc2X33fmPEw9+jUMpGs4veMbf+PYg==", - "dev": true, - "dependencies": { - "bech32": "^1.1.3", - "blakejs": "^1.1.0", - "bn.js": "^4.11.8", - "bs58": "^4.0.1", - "crypto-addr-codec": "^0.1.7", - "nano-base32": "^1.0.1", - "ripemd160": "^2.0.2" - } - }, - "node_modules/@ensdomains/address-encoder/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/@ensdomains/ens": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz", - "integrity": "sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw==", - "deprecated": "Please use @ensdomains/ens-contracts", - "dev": true, - "dependencies": { - "bluebird": "^3.5.2", - "eth-ens-namehash": "^2.0.8", - "solc": "^0.4.20", - "testrpc": "0.0.1", - "web3-utils": "^1.0.0-beta.31" - } - }, - "node_modules/@ensdomains/ensjs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@ensdomains/ensjs/-/ensjs-2.1.0.tgz", - "integrity": "sha512-GRbGPT8Z/OJMDuxs75U/jUNEC0tbL0aj7/L/QQznGYKm/tiasp+ndLOaoULy9kKJFC0TBByqfFliEHDgoLhyog==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.4.4", - "@ensdomains/address-encoder": "^0.1.7", - "@ensdomains/ens": "0.4.5", - "@ensdomains/resolver": "0.2.4", - "content-hash": "^2.5.2", - "eth-ens-namehash": "^2.0.8", - "ethers": "^5.0.13", - "js-sha3": "^0.8.0" - } - }, - "node_modules/@ensdomains/resolver": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz", - "integrity": "sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA==", - "deprecated": "Please use @ensdomains/ens-contracts", - "dev": true - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.2.tgz", - "integrity": "sha512-0MGxAVt1m/ZK+LTJp/j0qF7Hz97D9O/FH9Ms3ltnyIdDD57cbb1ACIQTkbHvNXtWDv5TPq7w5Kq56+cNukbo7g==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", - "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@eth-optimism/contracts": { - "version": "0.5.40", - "resolved": "https://registry.npmjs.org/@eth-optimism/contracts/-/contracts-0.5.40.tgz", - "integrity": "sha512-MrzV0nvsymfO/fursTB7m/KunkPsCndltVgfdHaT1Aj5Vi6R/doKIGGkOofHX+8B6VMZpuZosKCMQ5lQuqjt8w==", - "dependencies": { - "@eth-optimism/core-utils": "0.12.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0" - }, - "peerDependencies": { - "ethers": "^5" - } - }, - "node_modules/@eth-optimism/core-utils": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@eth-optimism/core-utils/-/core-utils-0.12.0.tgz", - "integrity": "sha512-qW+7LZYCz7i8dRa7SRlUKIo1VBU8lvN0HeXCxJR+z+xtMzMQpPds20XJNCMclszxYQHkXY00fOT6GvFw9ZL6nw==", - "dependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/address": "^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/keccak256": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/providers": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0", - "bufio": "^1.0.7", - "chai": "^4.3.4" - } - }, - "node_modules/@ethereum-waffle/chai": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/@ethereum-waffle/chai/-/chai-4.0.10.tgz", - "integrity": "sha512-X5RepE7Dn8KQLFO7HHAAe+KeGaX/by14hn90wePGBhzL54tq4Y8JscZFu+/LCwCl6TnkAAy5ebiMoqJ37sFtWw==", - "dev": true, - "dependencies": { - "@ethereum-waffle/provider": "4.0.5", - "debug": "^4.3.4", - "json-bigint": "^1.0.0" - }, - "engines": { - "node": ">=10.0" - }, - "peerDependencies": { - "ethers": "*" - } - }, - "node_modules/@ethereum-waffle/compiler": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@ethereum-waffle/compiler/-/compiler-4.0.3.tgz", - "integrity": "sha512-5x5U52tSvEVJS6dpCeXXKvRKyf8GICDwiTwUvGD3/WD+DpvgvaoHOL82XqpTSUHgV3bBq6ma5/8gKUJUIAnJCw==", - "dev": true, - "dependencies": { - "@resolver-engine/imports": "^0.3.3", - "@resolver-engine/imports-fs": "^0.3.3", - "@typechain/ethers-v5": "^10.0.0", - "@types/mkdirp": "^0.5.2", - "@types/node-fetch": "^2.6.1", - "mkdirp": "^0.5.1", - "node-fetch": "^2.6.7" - }, - "engines": { - "node": ">=10.0" - }, - "peerDependencies": { - "ethers": "*", - "solc": "*", - "typechain": "^8.0.0" - } - }, - "node_modules/@ethereum-waffle/ens": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@ethereum-waffle/ens/-/ens-4.0.3.tgz", - "integrity": "sha512-PVLcdnTbaTfCrfSOrvtlA9Fih73EeDvFS28JQnT5M5P4JMplqmchhcZB1yg/fCtx4cvgHlZXa0+rOCAk2Jk0Jw==", - "dev": true, - "engines": { - "node": ">=10.0" - }, - "peerDependencies": { - "@ensdomains/ens": "^0.4.4", - "@ensdomains/resolver": "^0.2.4", - "ethers": "*" - } - }, - "node_modules/@ethereum-waffle/mock-contract": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@ethereum-waffle/mock-contract/-/mock-contract-4.0.4.tgz", - "integrity": "sha512-LwEj5SIuEe9/gnrXgtqIkWbk2g15imM/qcJcxpLyAkOj981tQxXmtV4XmQMZsdedEsZ/D/rbUAOtZbgwqgUwQA==", - "dev": true, - "engines": { - "node": ">=10.0" - }, - "peerDependencies": { - "ethers": "*" - } - }, - "node_modules/@ethereum-waffle/provider": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@ethereum-waffle/provider/-/provider-4.0.5.tgz", - "integrity": "sha512-40uzfyzcrPh+Gbdzv89JJTMBlZwzya1YLDyim8mVbEqYLP5VRYWoGp0JMyaizgV3hMoUFRqJKVmIUw4v7r3hYw==", - "dev": true, - "dependencies": { - "@ethereum-waffle/ens": "4.0.3", - "@ganache/ethereum-options": "0.1.4", - "debug": "^4.3.4", - "ganache": "7.4.3" - }, - "engines": { - "node": ">=10.0" - }, - "peerDependencies": { - "ethers": "*" - } - }, - "node_modules/@ethereumjs/block": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.3.tgz", - "integrity": "sha512-CegDeryc2DVKnDkg5COQrE0bJfw/p0v3GBk2W5/Dj5dOVfEmb50Ux0GLnSPypooLnfqjwFaorGuT9FokWB3GRg==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.6.5", - "@ethereumjs/tx": "^3.5.2", - "ethereumjs-util": "^7.1.5", - "merkle-patricia-tree": "^4.2.4" - } - }, - "node_modules/@ethereumjs/block/node_modules/@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@ethereumjs/block/node_modules/@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@ethereumjs/block/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@ethereumjs/blockchain": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz", - "integrity": "sha512-bi0wuNJ1gw4ByNCV56H0Z4Q7D+SxUbwyG12Wxzbvqc89PXLRNR20LBcSUZRKpN0+YCPo6m0XZL/JLio3B52LTw==", - "dev": true, - "dependencies": { - "@ethereumjs/block": "^3.6.2", - "@ethereumjs/common": "^2.6.4", - "@ethereumjs/ethash": "^1.1.0", - "debug": "^4.3.3", - "ethereumjs-util": "^7.1.5", - "level-mem": "^5.0.1", - "lru-cache": "^5.1.1", - "semaphore-async-await": "^1.5.1" - } - }, - "node_modules/@ethereumjs/blockchain/node_modules/@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@ethereumjs/blockchain/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@ethereumjs/common": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.0.tgz", - "integrity": "sha512-Cq2qS0FTu6O2VU1sgg+WyU9Ps0M6j/BEMHN+hRaECXCV/r0aI78u4N6p52QW/BDVhwWZpCdrvG8X7NJdzlpNUA==", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.3" - } - }, - "node_modules/@ethereumjs/ethash": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz", - "integrity": "sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA==", - "dev": true, - "dependencies": { - "@ethereumjs/block": "^3.5.0", - "@types/levelup": "^4.3.0", - "buffer-xor": "^2.0.1", - "ethereumjs-util": "^7.1.1", - "miller-rabin": "^4.0.0" - } - }, - "node_modules/@ethereumjs/rlp": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", - "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", - "bin": { - "rlp": "bin/rlp" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@ethereumjs/tx": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.4.0.tgz", - "integrity": "sha512-WWUwg1PdjHKZZxPPo274ZuPsJCWV3SqATrEKQP1n2DrVYVP1aZIYpo/mFaA0BDoE0tIQmBeimRCEA0Lgil+yYw==", - "dependencies": { - "@ethereumjs/common": "^2.6.0", - "ethereumjs-util": "^7.1.3" - } - }, - "node_modules/@ethereumjs/util": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", - "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", - "dependencies": { - "@ethereumjs/rlp": "^4.0.1", - "ethereum-cryptography": "^2.0.0", - "micro-ftch": "^0.3.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz", - "integrity": "sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug==", - "dependencies": { - "@noble/curves": "1.1.0", - "@noble/hashes": "1.3.1", - "@scure/bip32": "1.3.1", - "@scure/bip39": "1.2.1" - } - }, - "node_modules/@ethereumjs/vm": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.6.0.tgz", - "integrity": "sha512-J2m/OgjjiGdWF2P9bj/4LnZQ1zRoZhY8mRNVw/N3tXliGI8ai1sI1mlDPkLpeUUM4vq54gH6n0ZlSpz8U/qlYQ==", - "dev": true, - "dependencies": { - "@ethereumjs/block": "^3.6.0", - "@ethereumjs/blockchain": "^5.5.0", - "@ethereumjs/common": "^2.6.0", - "@ethereumjs/tx": "^3.4.0", - "async-eventemitter": "^0.2.4", - "core-js-pure": "^3.0.1", - "debug": "^2.2.0", - "ethereumjs-util": "^7.1.3", - "functional-red-black-tree": "^1.0.1", - "mcl-wasm": "^0.7.1", - "merkle-patricia-tree": "^4.2.2", - "rustbn.js": "~0.2.0" - } - }, - "node_modules/@ethereumjs/vm/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/@ethereumjs/vm/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/@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "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/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "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/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" - } - }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "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/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "node_modules/@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "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/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" - } - }, - "node_modules/@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "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/bytes": "^5.7.0" - } - }, - "node_modules/@ethersproject/basex": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", - "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/bytes": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "node_modules/@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "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/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" - } - }, - "node_modules/@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "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/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "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/bignumber": "^5.7.0" - } - }, - "node_modules/@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", - "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/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" - } - }, - "node_modules/@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "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/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/hdnode": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", - "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/abstract-signer": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "node_modules/@ethersproject/json-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", - "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/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "node_modules/@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "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/bytes": "^5.7.0", - "js-sha3": "0.8.0" - } - }, - "node_modules/@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] - }, - "node_modules/@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", - "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/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/pbkdf2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", - "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/bytes": "^5.7.0", - "@ethersproject/sha2": "^5.7.0" - } - }, - "node_modules/@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", - "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/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/providers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", - "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/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/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0", - "bech32": "1.1.4", - "ws": "7.4.6" - } - }, - "node_modules/@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", - "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/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "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/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/sha2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", - "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/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", - "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/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/solidity": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", - "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/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "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/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "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/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" - } - }, - "node_modules/@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", - "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/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", - "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/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^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/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "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/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", - "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/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ganache/ethereum-address": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@ganache/ethereum-address/-/ethereum-address-0.1.4.tgz", - "integrity": "sha512-sTkU0M9z2nZUzDeHRzzGlW724xhMLXo2LeX1hixbnjHWY1Zg1hkqORywVfl+g5uOO8ht8T0v+34IxNxAhmWlbw==", - "dev": true, - "dependencies": { - "@ganache/utils": "0.1.4" - } - }, - "node_modules/@ganache/ethereum-options": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@ganache/ethereum-options/-/ethereum-options-0.1.4.tgz", - "integrity": "sha512-i4l46taoK2yC41FPkcoDlEVoqHS52wcbHPqJtYETRWqpOaoj9hAg/EJIHLb1t6Nhva2CdTO84bG+qlzlTxjAHw==", - "dev": true, - "dependencies": { - "@ganache/ethereum-address": "0.1.4", - "@ganache/ethereum-utils": "0.1.4", - "@ganache/options": "0.1.4", - "@ganache/utils": "0.1.4", - "bip39": "3.0.4", - "seedrandom": "3.0.5" - } - }, - "node_modules/@ganache/ethereum-utils": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@ganache/ethereum-utils/-/ethereum-utils-0.1.4.tgz", - "integrity": "sha512-FKXF3zcdDrIoCqovJmHLKZLrJ43234Em2sde/3urUT/10gSgnwlpFmrv2LUMAmSbX3lgZhW/aSs8krGhDevDAg==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "2.6.0", - "@ethereumjs/tx": "3.4.0", - "@ethereumjs/vm": "5.6.0", - "@ganache/ethereum-address": "0.1.4", - "@ganache/rlp": "0.1.4", - "@ganache/utils": "0.1.4", - "emittery": "0.10.0", - "ethereumjs-abi": "0.6.8", - "ethereumjs-util": "7.1.3" - } - }, - "node_modules/@ganache/options": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@ganache/options/-/options-0.1.4.tgz", - "integrity": "sha512-zAe/craqNuPz512XQY33MOAG6Si1Xp0hCvfzkBfj2qkuPcbJCq6W/eQ5MB6SbXHrICsHrZOaelyqjuhSEmjXRw==", - "dev": true, - "dependencies": { - "@ganache/utils": "0.1.4", - "bip39": "3.0.4", - "seedrandom": "3.0.5" - } - }, - "node_modules/@ganache/rlp": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@ganache/rlp/-/rlp-0.1.4.tgz", - "integrity": "sha512-Do3D1H6JmhikB+6rHviGqkrNywou/liVeFiKIpOBLynIpvZhRCgn3SEDxyy/JovcaozTo/BynHumfs5R085MFQ==", - "dev": true, - "dependencies": { - "@ganache/utils": "0.1.4", - "rlp": "2.2.6" - } - }, - "node_modules/@ganache/utils": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@ganache/utils/-/utils-0.1.4.tgz", - "integrity": "sha512-oatUueU3XuXbUbUlkyxeLLH3LzFZ4y5aSkNbx6tjSIhVTPeh+AuBKYt4eQ73FFcTB3nj/gZoslgAh5CN7O369w==", - "dev": true, - "dependencies": { - "emittery": "0.10.0", - "keccak": "3.0.1", - "seedrandom": "3.0.5" - }, - "optionalDependencies": { - "@trufflesuite/bigint-buffer": "1.1.9" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "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==", - "peer": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "peer": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@ledgerhq/devices": { - "version": "4.78.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-4.78.0.tgz", - "integrity": "sha512-tWKS5WM/UU82czihnVjRwz9SXNTQzWjGJ/7+j/xZ70O86nlnGJ1aaFbs5/WTzfrVKpOKgj1ZoZkAswX67i/JTw==", - "dependencies": { - "@ledgerhq/errors": "^4.78.0", - "@ledgerhq/logs": "^4.72.0", - "rxjs": "^6.5.3" - } - }, - "node_modules/@ledgerhq/errors": { - "version": "4.78.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-4.78.0.tgz", - "integrity": "sha512-FX6zHZeiNtegBvXabK6M5dJ+8OV8kQGGaGtuXDeK/Ss5EmG4Ltxc6Lnhe8hiHpm9pCHtktOsnUVL7IFBdHhYUg==" - }, - "node_modules/@ledgerhq/hw-app-eth": { - "version": "4.78.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-app-eth/-/hw-app-eth-4.78.0.tgz", - "integrity": "sha512-m4s4Zhy4lwYJjZB3xPeGV/8mxQcnoui+Eu1KDEl6atsquZHUpbtern/0hZl88+OlFUz0XrX34W3I9cqj61Y6KA==", - "dependencies": { - "@ledgerhq/errors": "^4.78.0", - "@ledgerhq/hw-transport": "^4.78.0" - } - }, - "node_modules/@ledgerhq/hw-transport": { - "version": "4.78.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-4.78.0.tgz", - "integrity": "sha512-xQu16OMPQjFYLjqCysij+8sXtdWv2YLxPrB6FoLvEWGTlQ7yL1nUBRQyzyQtWIYqZd4THQowQmzm1VjxuN6SZw==", - "dependencies": { - "@ledgerhq/devices": "^4.78.0", - "@ledgerhq/errors": "^4.78.0", - "events": "^3.0.0" - } - }, - "node_modules/@ledgerhq/hw-transport-node-hid": { - "version": "4.78.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-4.78.0.tgz", - "integrity": "sha512-OMrY2ecfQ1XjMAuuHqu3n3agMPR06HN1s0ENrKc+Twbb5A17jujpv07WzjxfTN2V1G7vgeZpRqrg2ulhowWbdg==", - "optional": true, - "dependencies": { - "@ledgerhq/devices": "^4.78.0", - "@ledgerhq/errors": "^4.78.0", - "@ledgerhq/hw-transport": "^4.78.0", - "@ledgerhq/hw-transport-node-hid-noevents": "^4.78.0", - "@ledgerhq/logs": "^4.72.0", - "lodash": "^4.17.15", - "node-hid": "^0.7.9", - "usb": "^1.6.0" - } - }, - "node_modules/@ledgerhq/hw-transport-node-hid-noevents": { - "version": "4.78.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-4.78.0.tgz", - "integrity": "sha512-CJPVR4wksq+apiXH2GnsttguBxmj9zdM2HjqZ3dHZN8SFW/9Xj3k+baS+pYoUISkECVxDrdfaW3Bd5dWv+jPUg==", - "optional": true, - "dependencies": { - "@ledgerhq/devices": "^4.78.0", - "@ledgerhq/errors": "^4.78.0", - "@ledgerhq/hw-transport": "^4.78.0", - "@ledgerhq/logs": "^4.72.0", - "node-hid": "^0.7.9" - } - }, - "node_modules/@ledgerhq/hw-transport-u2f": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-4.24.0.tgz", - "integrity": "sha512-/gFjhkM0sJfZ7iUf8HoIkGufAWgPacrbb1LW0TvWnZwvsATVJ1BZJBtrr90Wo401PKsjVwYtFt3Ce4gOAUv9jQ==", - "deprecated": "@ledgerhq/hw-transport-u2f is deprecated. Please use @ledgerhq/hw-transport-webusb or @ledgerhq/hw-transport-webhid. https://github.com/LedgerHQ/ledgerjs/blob/master/docs/migrate_webusb.md", - "dependencies": { - "@ledgerhq/hw-transport": "^4.24.0", - "u2f-api": "0.2.7" - } - }, - "node_modules/@ledgerhq/logs": { - "version": "4.72.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-4.72.0.tgz", - "integrity": "sha512-o+TYF8vBcyySRsb2kqBDv/KMeme8a2nwWoG+lAWzbDmWfb2/MrVWYCVYDYvjXdSoI/Cujqy1i0gIDrkdxa9chA==" - }, - "node_modules/@ljharb/resumer": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.0.1.tgz", - "integrity": "sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==", - "dependencies": { - "@ljharb/through": "^2.3.9" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/@ljharb/through": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", - "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/@metamask/eth-sig-util": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", - "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", - "dependencies": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^6.2.1", - "ethjs-util": "^0.1.6", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@metamask/eth-sig-util/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@metamask/eth-sig-util/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/@metamask/safe-event-emitter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz", - "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==" - }, - "node_modules/@noble/curves": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz", - "integrity": "sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==", - "dependencies": { - "@noble/hashes": "1.3.1" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/hashes": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz", - "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/secp256k1": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz", - "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nomicfoundation/ethereumjs-block": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.2.tgz", - "integrity": "sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q==", - "dependencies": { - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-trie": "6.0.2", - "@nomicfoundation/ethereumjs-tx": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "ethereum-cryptography": "0.1.3", - "ethers": "^5.7.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-blockchain": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.2.tgz", - "integrity": "sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w==", - "dependencies": { - "@nomicfoundation/ethereumjs-block": "5.0.2", - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-ethash": "3.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-trie": "6.0.2", - "@nomicfoundation/ethereumjs-tx": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "abstract-level": "^1.0.3", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "level": "^8.0.0", - "lru-cache": "^5.1.1", - "memory-level": "^1.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-common": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.2.tgz", - "integrity": "sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg==", - "dependencies": { - "@nomicfoundation/ethereumjs-util": "9.0.2", - "crc-32": "^1.2.0" - } - }, - "node_modules/@nomicfoundation/ethereumjs-ethash": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.2.tgz", - "integrity": "sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg==", - "dependencies": { - "@nomicfoundation/ethereumjs-block": "5.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "abstract-level": "^1.0.3", - "bigint-crypto-utils": "^3.0.23", - "ethereum-cryptography": "0.1.3" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-evm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.2.tgz", - "integrity": "sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ==", - "dependencies": { - "@ethersproject/providers": "^5.7.1", - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-tx": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "mcl-wasm": "^0.7.1", - "rustbn.js": "~0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-rlp": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.2.tgz", - "integrity": "sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA==", - "bin": { - "rlp": "bin/rlp" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-statemanager": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.2.tgz", - "integrity": "sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA==", - "dependencies": { - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "ethers": "^5.7.1", - "js-sdsl": "^4.1.4" - } - }, - "node_modules/@nomicfoundation/ethereumjs-trie": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.2.tgz", - "integrity": "sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ==", - "dependencies": { - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "@types/readable-stream": "^2.3.13", - "ethereum-cryptography": "0.1.3", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-tx": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.2.tgz", - "integrity": "sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g==", - "dependencies": { - "@chainsafe/ssz": "^0.9.2", - "@ethersproject/providers": "^5.7.2", - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "ethereum-cryptography": "0.1.3" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-util": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.2.tgz", - "integrity": "sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ==", - "dependencies": { - "@chainsafe/ssz": "^0.10.0", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "ethereum-cryptography": "0.1.3" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-util/node_modules/@chainsafe/persistent-merkle-tree": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz", - "integrity": "sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==", - "dependencies": { - "@chainsafe/as-sha256": "^0.3.1" - } - }, - "node_modules/@nomicfoundation/ethereumjs-util/node_modules/@chainsafe/ssz": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.10.2.tgz", - "integrity": "sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==", - "dependencies": { - "@chainsafe/as-sha256": "^0.3.1", - "@chainsafe/persistent-merkle-tree": "^0.5.0" - } - }, - "node_modules/@nomicfoundation/ethereumjs-vm": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.2.tgz", - "integrity": "sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA==", - "dependencies": { - "@nomicfoundation/ethereumjs-block": "5.0.2", - "@nomicfoundation/ethereumjs-blockchain": "7.0.2", - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-evm": "2.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-statemanager": "2.0.2", - "@nomicfoundation/ethereumjs-trie": "6.0.2", - "@nomicfoundation/ethereumjs-tx": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "mcl-wasm": "^0.7.1", - "rustbn.js": "~0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "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==", - "dependencies": { - "ethereumjs-util": "^7.1.4" - }, - "peerDependencies": { - "hardhat": "^2.9.5" - } - }, - "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", - "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", - "engines": { - "node": ">= 12" - }, - "optionalDependencies": { - "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", - "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1", - "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", - "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", - "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-freebsd-x64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", - "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", - "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", - "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", - "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", - "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", - "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", - "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", - "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "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, - "peerDependencies": { - "ethers": "^5.0.0", - "hardhat": "^2.0.0" - } - }, - "node_modules/@nomiclabs/hardhat-etherscan": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.7.tgz", - "integrity": "sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ==", - "deprecated": "The @nomiclabs/hardhat-etherscan package is deprecated, please use @nomicfoundation/hardhat-verify instead", - "dev": 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-waffle": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.6.tgz", - "integrity": "sha512-+Wz0hwmJGSI17B+BhU/qFRZ1l6/xMW82QGXE/Gi+WTmwgJrQefuBs1lIf7hzQ1hLk6hpkvb/zwcNkpVKRYTQYg==", - "dev": true, - "peerDependencies": { - "@nomiclabs/hardhat-ethers": "^2.0.0", - "@types/sinon-chai": "^3.2.3", - "ethereum-waffle": "*", - "ethers": "^5.0.0", - "hardhat": "^2.0.0" - } - }, - "node_modules/@nomiclabs/hardhat-web3": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-web3/-/hardhat-web3-2.0.0.tgz", - "integrity": "sha512-zt4xN+D+fKl3wW2YlTX3k9APR3XZgPkxJYf36AcliJn3oujnKEVRZaHu0PhgLjO+gR+F/kiYayo9fgd2L8970Q==", - "dev": true, - "dependencies": { - "@types/bignumber.js": "^5.0.0" - }, - "peerDependencies": { - "hardhat": "^2.0.0", - "web3": "^1.0.0-beta.36" - } - }, - "node_modules/@openzeppelin/contract-loader": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz", - "integrity": "sha512-cOFIjBjwbGgZhDZsitNgJl0Ye1rd5yu/Yx5LMgeq3u0ZYzldm4uObzHDFq4gjDdoypvyORjjJa3BlFA7eAnVIg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "fs-extra": "^8.1.0" - } - }, - "node_modules/@openzeppelin/contract-loader/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, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@openzeppelin/contracts": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.3.tgz", - "integrity": "sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg==" - }, - "node_modules/@openzeppelin/contracts-upgradeable": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.3.tgz", - "integrity": "sha512-jjaHAVRMrE4UuZNfDwjlLGDxTHWIOwTJS2ldnc278a0gevfXfPr8hxKEVBGFBE96kl2G3VHDZhUimw/+G3TG2A==" - }, - "node_modules/@openzeppelin/contracts-upgradeable-4.7.3": { - "name": "@openzeppelin/contracts-upgradeable", - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.7.3.tgz", - "integrity": "sha512-+wuegAMaLcZnLCJIvrVUDzA9z/Wp93f0Dla/4jJvIhijRrPabjQbZe6fWiECLaJyfn5ci9fqf9vTw3xpQOad2A==" - }, - "node_modules/@openzeppelin/contracts-v0.7": { - "name": "@openzeppelin/contracts", - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.2.tgz", - "integrity": "sha512-z0zMCjyhhp4y7XKAcDAi3Vgms4T2PstwBdahiO0+9NaGICQKjynK3wduSRplTgk4LXmoO1yfDGO5RbjKYxtuxA==" - }, - "node_modules/@openzeppelin/test-helpers": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/@openzeppelin/test-helpers/-/test-helpers-0.5.16.tgz", - "integrity": "sha512-T1EvspSfH1qQO/sgGlskLfYVBbqzJR23SZzYl/6B2JnT4EhThcI85UpvDk0BkLWKaDScQTabGHt4GzHW+3SfZg==", - "dev": true, - "dependencies": { - "@openzeppelin/contract-loader": "^0.6.2", - "@truffle/contract": "^4.0.35", - "ansi-colors": "^3.2.3", - "chai": "^4.2.0", - "chai-bn": "^0.2.1", - "ethjs-abi": "^0.2.1", - "lodash.flatten": "^4.4.0", - "semver": "^5.6.0", - "web3": "^1.2.5", - "web3-utils": "^1.2.5" - } - }, - "node_modules/@openzeppelin/test-helpers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "peer": true - }, - "node_modules/@openzeppelin/test-helpers/node_modules/chai-bn": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/chai-bn/-/chai-bn-0.2.2.tgz", - "integrity": "sha512-MzjelH0p8vWn65QKmEq/DLBG1Hle4WeyqT79ANhXZhn/UxRWO0OogkAxi5oGGtfzwU9bZR8mvbvYdoqNVWQwFg==", - "dev": true, - "peerDependencies": { - "bn.js": "^4.11.0", - "chai": "^4.0.0" - } - }, - "node_modules/@openzeppelin/test-helpers/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@prettier/sync": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@prettier/sync/-/sync-0.3.0.tgz", - "integrity": "sha512-3dcmCyAxIcxy036h1I7MQU/uEEBq8oLwf1CE3xeze+MPlgkdlb/+w6rGR/1dhp6Hqi17fRS6nvwnOzkESxEkOw==", - "dev": true, - "funding": { - "url": "https://github.com/prettier/prettier-synchronized?sponsor=1" - }, - "peerDependencies": { - "prettier": "^3.0.0" - } - }, - "node_modules/@rari-capital/solmate": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@rari-capital/solmate/-/solmate-6.4.0.tgz", - "integrity": "sha512-BXWIHHbG5Zbgrxi0qVYe0Zs+bfx+XgOciVUACjuIApV0KzC0kY8XdO1higusIei/ZKCC+GUKdcdQZflxYPUTKQ==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." - }, - "node_modules/@resolver-engine/core": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@resolver-engine/core/-/core-0.3.3.tgz", - "integrity": "sha512-eB8nEbKDJJBi5p5SrvrvILn4a0h42bKtbCTri3ZxCGt6UvoQyp7HnGOfki944bUjBSHKK3RvgfViHn+kqdXtnQ==", - "dev": true, - "dependencies": { - "debug": "^3.1.0", - "is-url": "^1.2.4", - "request": "^2.85.0" - } - }, - "node_modules/@resolver-engine/core/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@resolver-engine/fs": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.3.3.tgz", - "integrity": "sha512-wQ9RhPUcny02Wm0IuJwYMyAG8fXVeKdmhm8xizNByD4ryZlx6PP6kRen+t/haF43cMfmaV7T3Cx6ChOdHEhFUQ==", - "dev": true, - "dependencies": { - "@resolver-engine/core": "^0.3.3", - "debug": "^3.1.0" - } - }, - "node_modules/@resolver-engine/fs/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@resolver-engine/imports": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.3.3.tgz", - "integrity": "sha512-anHpS4wN4sRMwsAbMXhMfOD/y4a4Oo0Cw/5+rue7hSwGWsDOQaAU1ClK1OxjUC35/peazxEl8JaSRRS+Xb8t3Q==", - "dev": true, - "dependencies": { - "@resolver-engine/core": "^0.3.3", - "debug": "^3.1.0", - "hosted-git-info": "^2.6.0", - "path-browserify": "^1.0.0", - "url": "^0.11.0" - } - }, - "node_modules/@resolver-engine/imports-fs": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.3.3.tgz", - "integrity": "sha512-7Pjg/ZAZtxpeyCFlZR5zqYkz+Wdo84ugB5LApwriT8XFeQoLwGUj4tZFFvvCuxaNCcqZzCYbonJgmGObYBzyCA==", - "dev": true, - "dependencies": { - "@resolver-engine/fs": "^0.3.3", - "@resolver-engine/imports": "^0.3.3", - "debug": "^3.1.0" - } - }, - "node_modules/@resolver-engine/imports-fs/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@resolver-engine/imports/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@scure/base": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.3.tgz", - "integrity": "sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip32": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.1.tgz", - "integrity": "sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A==", - "dependencies": { - "@noble/curves": "~1.1.0", - "@noble/hashes": "~1.3.1", - "@scure/base": "~1.1.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip39": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", - "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", - "dependencies": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@sentry/core": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", - "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/hub": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", - "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", - "dependencies": { - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/minimal": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", - "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/node": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", - "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", - "dependencies": { - "@sentry/core": "5.30.0", - "@sentry/hub": "5.30.0", - "@sentry/tracing": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/tracing": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", - "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/types": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", - "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/utils": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", - "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", - "dependencies": { - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "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/@solidity-parser/parser": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", - "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", - "dev": true, - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" - } - }, - "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/abi-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-1.0.3.tgz", - "integrity": "sha512-AWhs01HCShaVKjml7Z4AbVREr/u4oiWxCcoR7Cktm0mEvtT04pvnxW5xB/cI4znRkrbPdFQlFt67kgrAjesYkw==", - "dev": true, - "dependencies": { - "change-case": "3.0.2", - "fast-check": "3.1.1", - "web3-utils": "1.10.0" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" - } - }, - "node_modules/@truffle/abi-utils/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/blockchain-utils": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.9.tgz", - "integrity": "sha512-RHfumgbIVo68Rv9ofDYfynjnYZIfP/f1vZy4RoqkfYAO+fqfc58PDRzB1WAGq2U6GPuOnipOJxQhnqNnffORZg==", - "dev": true, - "engines": { - "node": "^16.20 || ^18.16 || >=20" - } - }, - "node_modules/@truffle/codec": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.17.3.tgz", - "integrity": "sha512-Ko/+dsnntNyrJa57jUD9u4qx9nQby+H4GsUO6yjiCPSX0TQnEHK08XWqBSg0WdmCH2+h0y1nr2CXSx8gbZapxg==", - "dev": true, - "dependencies": { - "@truffle/abi-utils": "^1.0.3", - "@truffle/compile-common": "^0.9.8", - "big.js": "^6.0.3", - "bn.js": "^5.1.3", - "cbor": "^5.2.0", - "debug": "^4.3.1", - "lodash": "^4.17.21", - "semver": "^7.5.4", - "utf8": "^3.0.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" - } - }, - "node_modules/@truffle/codec/node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/@truffle/codec/node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@truffle/codec/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/@truffle/codec/node_modules/nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@truffle/codec/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@truffle/codec/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/codec/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/@truffle/compile-common": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.8.tgz", - "integrity": "sha512-DTpiyo32t/YhLI1spn84D3MHYHrnoVqO+Gp7ZHrYNwDs86mAxtNiH5lsVzSb8cPgiqlvNsRCU9nm9R0YmKMTBQ==", - "dev": true, - "dependencies": { - "@truffle/error": "^0.2.2", - "colors": "1.4.0" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" - } - }, - "node_modules/@truffle/contract": { - "version": "4.6.31", - "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.6.31.tgz", - "integrity": "sha512-s+oHDpXASnZosiCdzu+X1Tx5mUJUs1L1CYXIcgRmzMghzqJkaUFmR6NpNo7nJYliYbO+O9/aW8oCKqQ7rCHfmQ==", - "dev": true, - "dependencies": { - "@ensdomains/ensjs": "^2.1.0", - "@truffle/blockchain-utils": "^0.1.9", - "@truffle/contract-schema": "^3.4.16", - "@truffle/debug-utils": "^6.0.57", - "@truffle/error": "^0.2.2", - "@truffle/interface-adapter": "^0.5.37", - "bignumber.js": "^7.2.1", - "debug": "^4.3.1", - "ethers": "^4.0.32", - "web3": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" - } - }, - "node_modules/@truffle/contract-schema": { - "version": "3.4.16", - "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.16.tgz", - "integrity": "sha512-g0WNYR/J327DqtJPI70ubS19K1Fth/1wxt2jFqLsPmz5cGZVjCwuhiie+LfBde4/Mc9QR8G+L3wtmT5cyoBxAg==", - "dev": true, - "dependencies": { - "ajv": "^6.10.0", - "debug": "^4.3.1" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" - } - }, - "node_modules/@truffle/contract/node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "node_modules/@truffle/contract/node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - } - }, - "node_modules/@truffle/contract/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/@truffle/contract/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==", - "dev": true, - "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "node_modules/@truffle/contract/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/@truffle/contract/node_modules/eth-lib/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/@truffle/contract/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/@truffle/contract/node_modules/ethers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/@truffle/contract/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/@truffle/contract/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==", - "dev": true - }, - "node_modules/@truffle/contract/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - }, - "node_modules/@truffle/contract/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", - "dev": true - }, - "node_modules/@truffle/contract/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true - }, - "node_modules/@truffle/contract/node_modules/web3": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", - "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.10.0", - "web3-core": "1.10.0", - "web3-eth": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-shh": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-bzz": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", - "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", - "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-requestmanager": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-core-method": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", - "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", - "dev": true, - "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-core-requestmanager": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", - "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", - "dev": true, - "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.0", - "web3-providers-http": "1.10.0", - "web3-providers-ipc": "1.10.0", - "web3-providers-ws": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-core-subscriptions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", - "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-core/node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/@truffle/contract/node_modules/web3-eth": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", - "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", - "dev": true, - "dependencies": { - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-accounts": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-eth-ens": "1.10.0", - "web3-eth-iban": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-eth-accounts": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", - "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-eth-accounts/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "node_modules/@truffle/contract/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@truffle/contract/node_modules/web3-eth-contract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", - "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-eth-ens": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", - "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", - "dev": true, - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-eth-personal": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", - "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", - "dev": true, - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-net": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", - "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", - "dev": true, - "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-providers-http": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", - "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", - "dev": true, - "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-providers-ipc": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", - "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", - "dev": true, - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-providers-ws": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", - "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-shh": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", - "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-net": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/contract/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debug-utils": { - "version": "6.0.57", - "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.57.tgz", - "integrity": "sha512-Q6oI7zLaeNLB69ixjwZk2UZEWBY6b2OD1sjLMGDKBGR7GaHYiw96GLR2PFgPH1uwEeLmV4N78LYaQCrDsHbNeA==", - "dev": true, - "dependencies": { - "@truffle/codec": "^0.17.3", - "@trufflesuite/chromafi": "^3.0.0", - "bn.js": "^5.1.3", - "chalk": "^2.4.2", - "debug": "^4.3.1", - "highlightjs-solidity": "^2.0.6" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" - } - }, - "node_modules/@truffle/error": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.2.tgz", - "integrity": "sha512-TqbzJ0O8DHh34cu8gDujnYl4dUl6o2DE4PR6iokbybvnIm/L2xl6+Gv1VC+YJS45xfH83Yo3/Zyg/9Oq8/xZWg==", - "dev": true, - "engines": { - "node": "^16.20 || ^18.16 || >=20" - } - }, - "node_modules/@truffle/hdwallet": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@truffle/hdwallet/-/hdwallet-0.1.4.tgz", - "integrity": "sha512-D3SN0iw3sMWUXjWAedP6RJtopo9qQXYi80inzbtcsoso4VhxFxCwFvCErCl4b27AEJ9pkAtgnxEFRaSKdMmi1Q==", - "dependencies": { - "ethereum-cryptography": "1.1.2", - "keccak": "3.0.2", - "secp256k1": "4.0.3" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" - } - }, - "node_modules/@truffle/hdwallet-provider": { - "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==", - "dependencies": { - "@ethereumjs/common": "^2.4.0", - "@ethereumjs/tx": "^3.3.0", - "@metamask/eth-sig-util": "4.0.1", - "@truffle/hdwallet": "^0.1.4", - "@types/ethereum-protocol": "^1.0.0", - "@types/web3": "1.0.20", - "@types/web3-provider-engine": "^14.0.0", - "ethereum-cryptography": "1.1.2", - "ethereum-protocol": "^1.0.1", - "ethereumjs-util": "^7.1.5", - "web3": "1.10.0", - "web3-provider-engine": "16.0.3" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/@noble/hashes": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", - "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@truffle/hdwallet-provider/node_modules/@scure/bip32": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz", - "integrity": "sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.1.1", - "@noble/secp256k1": "~1.6.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" - } - }, - "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/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "engines": { - "node": "*" - } - }, - "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/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/eth-lib/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/@truffle/hdwallet-provider/node_modules/ethereum-cryptography": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz", - "integrity": "sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ==", - "dependencies": { - "@noble/hashes": "1.1.2", - "@noble/secp256k1": "1.6.3", - "@scure/bip32": "1.1.0", - "@scure/bip39": "1.1.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/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==", - "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/@truffle/hdwallet-provider/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", - "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.10.0", - "web3-core": "1.10.0", - "web3-eth": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-shh": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-bzz": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", - "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", - "hasInstallScript": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", - "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", - "dependencies": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-requestmanager": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-core-method": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", - "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", - "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-core-requestmanager": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", - "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", - "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.0", - "web3-providers-http": "1.10.0", - "web3-providers-ipc": "1.10.0", - "web3-providers-ws": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-core-subscriptions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", - "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", - "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", - "dependencies": { - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-accounts": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-eth-ens": "1.10.0", - "web3-eth-iban": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth-accounts": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", - "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", - "dependencies": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth-contract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", - "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", - "dependencies": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth-ens": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", - "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-eth-personal": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", - "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-net": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", - "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", - "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-providers-http": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", - "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", - "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-providers-ipc": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", - "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-providers-ws": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", - "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-shh": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", - "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", - "hasInstallScript": true, - "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-net": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet/node_modules/@noble/hashes": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", - "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@truffle/hdwallet/node_modules/@scure/bip32": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz", - "integrity": "sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.1.1", - "@noble/secp256k1": "~1.6.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/@truffle/hdwallet/node_modules/@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" - } - }, - "node_modules/@truffle/hdwallet/node_modules/ethereum-cryptography": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz", - "integrity": "sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ==", - "dependencies": { - "@noble/hashes": "1.1.2", - "@noble/secp256k1": "1.6.3", - "@scure/bip32": "1.1.0", - "@scure/bip39": "1.1.0" - } - }, - "node_modules/@truffle/hdwallet/node_modules/keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@truffle/interface-adapter": { - "version": "0.5.37", - "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.37.tgz", - "integrity": "sha512-lPH9MDgU+7sNDlJSClwyOwPCfuOimqsCx0HfGkznL3mcFRymc1pukAR1k17zn7ErHqBwJjiKAZ6Ri72KkS+IWw==", - "dev": true, - "dependencies": { - "bn.js": "^5.1.3", - "ethers": "^4.0.32", - "web3": "1.10.0" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - } - }, - "node_modules/@truffle/interface-adapter/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/@truffle/interface-adapter/node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/@truffle/interface-adapter/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==", - "dev": true, - "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/eth-lib/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/@truffle/interface-adapter/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/ethers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/@truffle/interface-adapter/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/@truffle/interface-adapter/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==", - "dev": true - }, - "node_modules/@truffle/interface-adapter/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - }, - "node_modules/@truffle/interface-adapter/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", - "dev": true - }, - "node_modules/@truffle/interface-adapter/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true - }, - "node_modules/@truffle/interface-adapter/node_modules/web3": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", - "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.10.0", - "web3-core": "1.10.0", - "web3-eth": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-shh": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-bzz": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", - "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", - "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-requestmanager": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-method": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", - "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", - "dev": true, - "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-requestmanager": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", - "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", - "dev": true, - "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.0", - "web3-providers-http": "1.10.0", - "web3-providers-ipc": "1.10.0", - "web3-providers-ws": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-subscriptions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", - "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", - "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", - "dev": true, - "dependencies": { - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-accounts": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-eth-ens": "1.10.0", - "web3-eth-iban": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", - "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-contract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", - "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-ens": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", - "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", - "dev": true, - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-personal": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", - "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", - "dev": true, - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-net": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", - "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", - "dev": true, - "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-providers-http": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", - "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", - "dev": true, - "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-providers-ipc": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", - "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", - "dev": true, - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-providers-ws": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", - "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-shh": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", - "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-net": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@trufflesuite/bigint-buffer": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.9.tgz", - "integrity": "sha512-bdM5cEGCOhDSwminryHJbRmXc1x7dPKg6Pqns3qyTwFlxsqUgxE29lsERS3PlIW1HTjoIGMUqsk1zQQwST1Yxw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "node-gyp-build": "4.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@trufflesuite/chromafi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-3.0.0.tgz", - "integrity": "sha512-oqWcOqn8nT1bwlPPfidfzS55vqcIDdpfzo3HbU9EnUmcSTX+I8z0UyUFI3tZQjByVJulbzxHxUGS3ZJPwK/GPQ==", - "dev": true, - "dependencies": { - "camelcase": "^4.1.0", - "chalk": "^2.3.2", - "cheerio": "^1.0.0-rc.2", - "detect-indent": "^5.0.0", - "highlight.js": "^10.4.1", - "lodash.merge": "^4.6.2", - "strip-ansi": "^4.0.0", - "strip-indent": "^2.0.0" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "devOptional": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "devOptional": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "devOptional": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "devOptional": true - }, - "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==", - "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" - } - }, - "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==", - "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", - "hardhat": "^2.9.9", - "typechain": "^8.1.1" - } - }, - "node_modules/@typechain/hardhat/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "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.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@types/abstract-leveldown": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.3.tgz", - "integrity": "sha512-YAdL8tIYbiKoFjAf/0Ir3mvRJ/iFvBP/FK0I8Xa5rGWgVcq0xWOEInzlJfs6TIPWFweEOTKgNSBdxneUcHRvaw==", - "dev": true - }, - "node_modules/@types/bignumber.js": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/bignumber.js/-/bignumber.js-5.0.0.tgz", - "integrity": "sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA==", - "deprecated": "This is a stub types definition for bignumber.js (https://github.com/MikeMcl/bignumber.js/). bignumber.js provides its own type definitions, so you don't need @types/bignumber.js installed!", - "dev": true, - "dependencies": { - "bignumber.js": "*" - } - }, - "node_modules/@types/bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "node_modules/@types/chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==", - "dev": true - }, - "node_modules/@types/concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ethereum-protocol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/ethereum-protocol/-/ethereum-protocol-1.0.3.tgz", - "integrity": "sha512-peaCYb+wAT3Gnttt8Ep6+b3ciVK+mWX5wyVnJiDtmWXU1c9RXi5qDxEjGyZrjU/9EYdXPd3hMiXXBjDDPu96yQ==", - "dependencies": { - "bignumber.js": "7.2.1" - } - }, - "node_modules/@types/form-data": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/hdkey": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@types/hdkey/-/hdkey-0.7.1.tgz", - "integrity": "sha512-4Kkr06hq+R8a9EzVNqXGOY2x1xA7dhY6qlp6OvaZ+IJy1BCca1Cv126RD9X7CMJoXoLo8WvAizy8gQHpqW6K0Q==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz", - "integrity": "sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw==" - }, - "node_modules/@types/json-schema": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/level-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/level-errors/-/level-errors-3.0.0.tgz", - "integrity": "sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ==", - "dev": true - }, - "node_modules/@types/levelup": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@types/levelup/-/levelup-4.3.3.tgz", - "integrity": "sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA==", - "dev": true, - "dependencies": { - "@types/abstract-leveldown": "*", - "@types/level-errors": "*", - "@types/node": "*" - } - }, - "node_modules/@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==" - }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, - "node_modules/@types/mkdirp": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", - "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/mocha": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", - "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.18.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.0.tgz", - "integrity": "sha512-3xA4X31gHT1F1l38ATDIL9GpRLdwVhnEFC8Uikv5ZLlXATwrCYyPq7ZWHxzxc3J/30SUiwiYT+bQe0/XvKlWbw==" - }, - "node_modules/@types/node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-95X8guJYhfqiuVVhRFxVQcf4hW/2bCuoPwDasMf/531STFoNoWTT7YDnWdXHEZKqAGUigmpG31r2FE70LwnzJw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "form-data": "^4.0.0" - } - }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/prettier": { - "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 - }, - "node_modules/@types/prop-types": { - "version": "15.7.11", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" - }, - "node_modules/@types/qs": { - "version": "6.9.8", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", - "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==", - "dev": true - }, - "node_modules/@types/react": { - "version": "18.2.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.47.tgz", - "integrity": "sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/readable-stream": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz", - "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==", - "dependencies": { - "@types/node": "*", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/@types/readable-stream/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/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" - }, - "node_modules/@types/secp256k1": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.4.tgz", - "integrity": "sha512-oN0PFsYxDZnX/qSJ5S5OwaEDTYfekhvaM5vqui2bu1AA39pKofmgL104Q29KiOXizXS2yLjSzc5YdTyMKdcy4A==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", - "dev": true - }, - "node_modules/@types/sinon": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.3.tgz", - "integrity": "sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==", - "dev": true, - "peer": true, - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "node_modules/@types/sinon-chai": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.12.tgz", - "integrity": "sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ==", - "dev": true, - "peer": true, - "dependencies": { - "@types/chai": "*", - "@types/sinon": "*" - } - }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz", - "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==", - "dev": true, - "peer": true - }, - "node_modules/@types/solidity-parser-antlr": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@types/solidity-parser-antlr/-/solidity-parser-antlr-0.2.3.tgz", - "integrity": "sha512-FoSyZT+1TTaofbEtGW1oC9wHND1YshvVeHerME/Jh6gIdHbBAWFW8A97YYqO/dpHcFjIwEPEepX0Efl2ckJgwA==" - }, - "node_modules/@types/underscore": { - "version": "1.11.9", - "resolved": "https://registry.npmjs.org/@types/underscore/-/underscore-1.11.9.tgz", - "integrity": "sha512-M63wKUdsjDFUfyFt1TCUZHGFk9KDAa5JP0adNUErbm0U45Lr06HtANdYRP+GyleEopEoZ4UyBcdAC5TnW4Uz2w==" - }, - "node_modules/@types/web3": { - "version": "1.0.20", - "resolved": "https://registry.npmjs.org/@types/web3/-/web3-1.0.20.tgz", - "integrity": "sha512-KTDlFuYjzCUlBDGt35Ir5QRtyV9klF84MMKUsEJK10sTWga/71V+8VYLT7yysjuBjaOx2uFYtIWNGoz3yrNDlg==", - "dependencies": { - "@types/bn.js": "*", - "@types/underscore": "*" - } - }, - "node_modules/@types/web3-provider-engine": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/@types/web3-provider-engine/-/web3-provider-engine-14.0.2.tgz", - "integrity": "sha512-i+vgIh873kDu6MnYZkIqrho4JCan1c8TcPnYY6te2lq1ODD4SPA8JxFCyQjK+vwbLMr5F3N/I37AfK/wxiyuEA==", - "dependencies": { - "@types/ethereum-protocol": "*" - } - }, - "node_modules/@types/yargs": { - "version": "11.1.8", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-11.1.8.tgz", - "integrity": "sha512-49Pmk3GBUOrs/ZKJodGMJeEeiulv2VdfAYpGgkTCSXpNWx7KCX36+PbrkItwzrjTDHO2QoEZDpbhFoMN1lxe9A==" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "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==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "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==", - "dev": true - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "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==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^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==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==" - }, - "node_modules/abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==" - }, - "node_modules/abstract-level": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", - "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", - "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.1.0", - "is-buffer": "^2.0.5", - "level-supports": "^4.0.0", - "level-transcoder": "^1.0.1", - "module-error": "^1.0.1", - "queue-microtask": "^1.2.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/abstract-level/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "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.2.1" - } - }, - "node_modules/abstract-leveldown": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", - "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/abstract-leveldown/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "devOptional": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "devOptional": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "engines": { - "node": ">=0.3.0" - } - }, - "node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "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==", - "optional": true, - "engines": { - "node": ">=0.4.2" - } - }, - "node_modules/ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "devOptional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/antlr4": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.13.1.tgz", - "integrity": "sha512-kiXTspaRYvnIArgE97z5YVVf/cDVQABr3abFRR6mE7yesLMkgu4ujuyV/sgxafQ8wgve0DJQUJ38Z8tkgA2izA==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/antlr4ts": { - "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 - }, - "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==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "optional": true - }, - "node_modules/are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/are-we-there-yet/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "optional": true - }, - "node_modules/are-we-there-yet/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==", - "optional": 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" - } - }, - "node_modules/are-we-there-yet/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==", - "optional": true - }, - "node_modules/are-we-there-yet/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==", - "optional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "devOptional": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.reduce": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", - "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "engines": { - "node": ">=0.8" - } - }, - "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==", - "engines": { - "node": "*" - } - }, - "node_modules/ast-parents": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz", - "integrity": "sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==", - "dev": true - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "dependencies": { - "async": "^2.4.0" - } - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "node_modules/async-mutex": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz", - "integrity": "sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==", - "dependencies": { - "tslib": "^2.0.0" - } - }, - "node_modules/async-mutex/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "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, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" - }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==" - }, - "node_modules/babel-code-frame/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "node_modules/babel-core/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, - "node_modules/babel-core/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/babel-core/node_modules/json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/babel-core/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/babel-core/node_modules/slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-core/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dependencies": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "node_modules/babel-generator/node_modules/detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-generator/node_modules/jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/babel-generator/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q==", - "dependencies": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ==", - "dependencies": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA==", - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ==", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q==", - "dependencies": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng==", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw==", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA==", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg==", - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha512-RYqaPD0mQyQIFRu7Ho5wE2yvA/5jxqCIj/Lv4BXNq23mHYu/vxikOy2JueLiBxQknwapwrJeNCesvY0ZcfnlHg==", - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw==", - "dependencies": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA==", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", - "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.2", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz", - "integrity": "sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2", - "core-js-compat": "^3.32.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", - "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw==" - }, - "node_modules/babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ==" - }, - "node_modules/babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ==" - }, - "node_modules/babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw==", - "dependencies": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg==", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A==", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw==", - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag==", - "dependencies": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw==", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA==", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug==", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw==", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg==", - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ==", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA==", - "dependencies": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "dependencies": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg==", - "dependencies": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw==", - "dependencies": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA==", - "dependencies": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ==", - "dependencies": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw==", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg==", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ==", - "dependencies": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg==", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw==", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ==", - "dependencies": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "node_modules/babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ==", - "dependencies": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg==", - "dependencies": { - "regenerator-transform": "^0.10.0" - } - }, - "node_modules/babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw==", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "dependencies": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } - }, - "node_modules/babel-preset-env/node_modules/browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "dependencies": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - }, - "bin": { - "browserslist": "cli.js" - } - }, - "node_modules/babel-preset-env/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==", - "dependencies": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "node_modules/babel-register/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-register/node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-runtime/node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, - "node_modules/babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/babel-traverse/node_modules/globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-traverse/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", - "dependencies": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "node_modules/babel-types/node_modules/to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babelify": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", - "integrity": "sha512-vID8Fz6pPN5pJMdlUnNFSfrlcx5MUule4k9aKs/zbZPyXxMTcRrB0M4Tarw22L8afr8eYSWxDPYCob3TdrqtlA==", - "dependencies": { - "babel-core": "^6.0.14", - "object-assign": "^4.0.0" - } - }, - "node_modules/babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "bin": { - "babylon": "bin/babylon.js" - } - }, - "node_modules/backoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", - "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", - "dependencies": { - "precond": "0.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, - "node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "node_modules/big-integer": { - "version": "1.6.36", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", - "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bigjs" - } - }, - "node_modules/bigint-crypto-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz", - "integrity": "sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/bignumber.js": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", - "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", - "engines": { - "node": "*" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "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==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bip39": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz", - "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==", - "dev": true, - "dependencies": { - "@types/node": "11.11.6", - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1" - } - }, - "node_modules/bip39/node_modules/@types/node": { - "version": "11.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", - "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==", - "dev": true - }, - "node_modules/bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "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/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" - }, - "node_modules/browser-level": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", - "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", - "dependencies": { - "abstract-level": "^1.0.2", - "catering": "^2.1.1", - "module-error": "^1.0.2", - "run-parallel-limit": "^1.1.0" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-aes/node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" - }, - "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "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/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/buffer-reverse": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz", - "integrity": "sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==" - }, - "node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==" - }, - "node_modules/buffer-xor": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", - "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.1" - } - }, - "node_modules/bufferutil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/bufio": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bufio/-/bufio-1.2.1.tgz", - "integrity": "sha512-9oR3zNdupcg/Ge2sSHQF3GX+kmvL/fTPvD0nd5AGLq8SjUYnTz+SlFjK/GXidndbZtIj+pVKXiWeR9w6e9wKCA==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, - "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": ">=10" - } - }, - "node_modules/builtins/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "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/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "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": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", - "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", - "engines": { - "node": ">=10.6.0" - } - }, - "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/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/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/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "node_modules/camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001576", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", - "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/case": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz", - "integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, - "node_modules/catering": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/cbor": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", - "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", - "dev": true, - "dependencies": { - "nofilter": "^3.1.0" - }, - "engines": { - "node": ">=12.19" - } - }, - "node_modules/chai": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.8.tgz", - "integrity": "sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dependencies": { - "check-error": "^1.0.2" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 5" - } - }, - "node_modules/chai-bignumber": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/chai-bignumber/-/chai-bignumber-3.1.0.tgz", - "integrity": "sha512-omxEc80jAU+pZwRmoWr3aEzeLad4JW3iBhLRQlgISvghBdIxrMT7mVAGsDz4WSyCkKowENshH2j9OABAhld7QQ==" - }, - "node_modules/chainlink": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/chainlink/-/chainlink-0.8.2.tgz", - "integrity": "sha512-9gaLoChlo1A72ygESilIheULjHLpZPtie7451GF89ywtdn6V1NDVIjktgsKOFDIjr7jHsmyOwKBYv4VVNvtn0Q==", - "dependencies": { - "@chainlink/test-helpers": "0.0.1", - "cbor": "^5.0.1", - "ethers": "^4.0.41", - "link_token": "^1.0.6", - "openzeppelin-solidity": "^1.12.0" - } - }, - "node_modules/chainlink/node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "engines": { - "node": "*" - } - }, - "node_modules/chainlink/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/chainlink/node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/chainlink/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/chainlink/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/chainlink/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==" - }, - "node_modules/chainlink/node_modules/nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/chainlink/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "node_modules/chainlink/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" - }, - "node_modules/chainlink/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details." - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/change-case": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz", - "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==", - "dev": true, - "dependencies": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" - } - }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "engines": { - "node": "*" - } - }, - "node_modules/checkpoint-store": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", - "integrity": "sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg==", - "dependencies": { - "functional-red-black-tree": "^1.0.1" - } - }, - "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "dev": true, - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "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" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/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/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "node_modules/cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "node_modules/classic-level": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz", - "integrity": "sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==", - "hasInstallScript": true, - "dependencies": { - "abstract-level": "^1.0.2", - "catering": "^2.1.0", - "module-error": "^1.0.1", - "napi-macros": "^2.2.2", - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-table3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", - "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", - "dev": true, - "dependencies": { - "object-assign": "^4.1.0", - "string-width": "^2.1.1" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "colors": "^1.1.2" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/coinstring": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/coinstring/-/coinstring-2.3.1.tgz", - "integrity": "sha512-gLvivqtntteG2kOd7jpVQzKbIirJP7ijDEU+boVZTLj6V4tjVLBlUXGlijhBOcoWM7S/epqHVikQCD6x2J+E/Q==", - "dependencies": { - "bs58": "^2.0.1", - "create-hash": "^1.1.1" - } - }, - "node_modules/coinstring/node_modules/bs58": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-2.0.1.tgz", - "integrity": "sha512-77ld2g7Hn1GyIUpuUVfbZdhO1q9R9gv/GYam4HAeAW/tzhQDrbJ2ZttN1tIe4hmKrWFE+oUtAhBNx/EA5SVdTg==" - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" - }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", - "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", - "dev": true, - "dependencies": { - "array-back": "^4.0.2", - "chalk": "^2.4.2", - "table-layout": "^1.0.2", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/concat-stream/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==", - "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" - } - }, - "node_modules/concat-stream/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/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==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "optional": true - }, - "node_modules/constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==", - "dev": true, - "dependencies": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", - "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "peer": true - }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.32.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz", - "integrity": "sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==", - "dependencies": { - "browserslist": "^4.21.10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.32.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.32.2.tgz", - "integrity": "sha512-Y2rxThOuNywTjnX/PgA5vWM6CZ9QB9sz9oGeCixV8MqXZO70z/5SHzf9EeBrEBK0PN36DnEBBu9O/aGWzKuMZQ==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dev": true, - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "devOptional": true - }, - "node_modules/cross-fetch": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", - "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==", - "dependencies": { - "node-fetch": "^2.6.7", - "whatwg-fetch": "^2.0.4" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/crypto-addr-codec": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.8.tgz", - "integrity": "sha512-GqAK90iLLgP3FvhNmHbpT3wR6dEdaM8hZyZtLX29SPardh3OA13RFLHDR6sntGCgRWOfiHqW6sIyohpNqOtV/g==", - "dev": true, - "dependencies": { - "base-x": "^3.0.8", - "big-integer": "1.6.36", - "blakejs": "^1.1.0", - "bs58": "^4.0.1", - "ripemd160-min": "0.0.6", - "safe-buffer": "^5.2.0", - "sha3": "^2.1.1" - } - }, - "node_modules/crypto-js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", - "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/death": { - "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 - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "engines": { - "node": ">=0.10" - } - }, - "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/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": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/deep-equal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", - "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", - "dependencies": { - "is-arguments": "^1.1.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.5.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "devOptional": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "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==" - }, - "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_modules/deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/deferred-leveldown/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/deferred-leveldown/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "optional": true - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/detect-node": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", - "integrity": "sha512-64uDTOK+fKEa6XoSbkkDoeAX8Ep1XhwxwZtL1aw1En5p5UOK/ekJoFqd5BB1o+uOvF1iHVv6qDUxdOQ/VgWEQg==" - }, - "node_modules/detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", - "dev": true, - "dependencies": { - "address": "^1.0.1", - "debug": "4" - }, - "bin": { - "detect": "bin/detect-port.js", - "detect-port": "bin/detect-port.js" - } - }, - "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==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/difflib": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", - "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", - "dev": true, - "dependencies": { - "heap": ">= 0.2.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dirty-chai": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/dirty-chai/-/dirty-chai-2.0.1.tgz", - "integrity": "sha512-ys79pWKvDMowIDEPC6Fig8d5THiC0DJ2gmTeGzVAoEH18J8OzLud0Jh7I9IWg3NSk8x2UocznUuFmfHCXYZx9w==", - "peerDependencies": { - "chai": ">=2.2.1 <5" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/dotenv": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" - } - }, - "node_modules/dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", - "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", - "dependencies": { - "minimatch": "^3.0.4" - }, - "bin": { - "ignored": "bin/ignored" - } - }, - "node_modules/drbg.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==", - "dependencies": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.628", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.628.tgz", - "integrity": "sha512-2k7t5PHvLsufpP6Zwk0nof62yLOsCf032wZx7/q0mv8gwlXjhcxI3lz6f0jBr0GrnWKcm3burXzI3t5IrcdUxw==" - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/emittery": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz", - "integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding-down": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", - "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", - "dev": true, - "dependencies": { - "abstract-leveldown": "^6.2.1", - "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/enquirer/node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/enquirer/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/enquirer/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", - "dependencies": { - "esprima": "^2.7.1", - "estraverse": "^1.9.1", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=0.12.0" - }, - "optionalDependencies": { - "source-map": "~0.2.0" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", - "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.50.0", - "@humanwhocodes/config-array": "^0.11.11", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-config-standard": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", - "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", - "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" - } - ], - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": "^8.0.1", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", - "eslint-plugin-promise": "^6.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dev": true, - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" - } - }, - "node_modules/eslint-plugin-es-x": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.2.0.tgz", - "integrity": "sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.1.2", - "@eslint-community/regexpp": "^4.6.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ota-meshi" - }, - "peerDependencies": { - "eslint": ">=8" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.28.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", - "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.findlastindex": "^1.2.2", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.8.0", - "has": "^1.0.3", - "is-core-module": "^2.13.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.6", - "object.groupby": "^1.0.0", - "object.values": "^1.1.6", - "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-n": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.1.0.tgz", - "integrity": "sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "builtins": "^5.0.1", - "eslint-plugin-es-x": "^7.1.0", - "get-tsconfig": "^4.7.0", - "ignore": "^5.2.4", - "is-core-module": "^2.12.1", - "minimatch": "^3.1.2", - "resolve": "^1.22.2", - "semver": "^7.5.3" - }, - "engines": { - "node": ">=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-n/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/eslint-plugin-n/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-n/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/eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "dependencies": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "peerDependencies": { - "eslint": ">=5.16.0" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-promise": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", - "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/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==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eth-block-tracker": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", - "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", - "dependencies": { - "@babel/plugin-transform-runtime": "^7.5.5", - "@babel/runtime": "^7.5.5", - "eth-query": "^2.1.0", - "json-rpc-random-id": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/eth-block-tracker/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "engines": { - "node": ">=4" - } - }, - "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==" - }, - "node_modules/eth-gas-reporter": { - "version": "0.2.25", - "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.25.tgz", - "integrity": "sha512-1fRgyE4xUB8SoqLgN3eDfpDfwEfRxh2Sz1b7wzFbyQA+9TekMmvSjjoRu9SKcSVyK+vLkLIsVbJDsTWjw195OQ==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.0.0-beta.146", - "@solidity-parser/parser": "^0.14.0", - "cli-table3": "^0.5.0", - "colors": "1.4.0", - "ethereum-cryptography": "^1.0.3", - "ethers": "^4.0.40", - "fs-readdir-recursive": "^1.1.0", - "lodash": "^4.17.14", - "markdown-table": "^1.1.3", - "mocha": "^7.1.1", - "req-cwd": "^2.0.0", - "request": "^2.88.0", - "request-promise-native": "^1.0.5", - "sha1": "^1.1.1", - "sync-request": "^6.0.0" - }, - "peerDependencies": { - "@codechecks/client": "^0.1.0" - }, - "peerDependenciesMeta": { - "@codechecks/client": { - "optional": true - } - } - }, - "node_modules/eth-gas-reporter/node_modules/@noble/hashes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", - "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/eth-gas-reporter/node_modules/@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/eth-gas-reporter/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/eth-gas-reporter/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/eth-gas-reporter/node_modules/ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/eth-gas-reporter/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/eth-gas-reporter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/eth-gas-reporter/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/eth-gas-reporter/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/eth-gas-reporter/node_modules/chokidar": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.1.1" - } - }, - "node_modules/eth-gas-reporter/node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/eth-gas-reporter/node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eth-gas-reporter/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eth-gas-reporter/node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/eth-gas-reporter/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/eth-gas-reporter/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eth-gas-reporter/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/eth-gas-reporter/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/eth-gas-reporter/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eth-gas-reporter/node_modules/flat": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", - "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", - "dev": true, - "dependencies": { - "is-buffer": "~2.0.3" - }, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/eth-gas-reporter/node_modules/fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "deprecated": "\"Please update to latest v2.3 or v2.2\"", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/eth-gas-reporter/node_modules/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eth-gas-reporter/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/eth-gas-reporter/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/eth-gas-reporter/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==", - "dev": true - }, - "node_modules/eth-gas-reporter/node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eth-gas-reporter/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eth-gas-reporter/node_modules/log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eth-gas-reporter/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eth-gas-reporter/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/eth-gas-reporter/node_modules/mocha": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", - "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", - "dev": true, - "dependencies": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "chokidar": "3.3.0", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "3.0.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.5", - "ms": "2.1.1", - "node-environment-flags": "1.0.6", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "1.6.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/eth-gas-reporter/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "node_modules/eth-gas-reporter/node_modules/object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/eth-gas-reporter/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eth-gas-reporter/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eth-gas-reporter/node_modules/readdirp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", - "dev": true, - "dependencies": { - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/eth-gas-reporter/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - }, - "node_modules/eth-gas-reporter/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", - "dev": true - }, - "node_modules/eth-gas-reporter/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eth-gas-reporter/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eth-gas-reporter/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eth-gas-reporter/node_modules/supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eth-gas-reporter/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true - }, - "node_modules/eth-gas-reporter/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/eth-gas-reporter/node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eth-gas-reporter/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/eth-gas-reporter/node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/eth-gas-reporter/node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/eth-gas-reporter/node_modules/yargs-unparser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", - "dev": true, - "dependencies": { - "flat": "^4.1.0", - "lodash": "^4.17.15", - "yargs": "^13.3.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eth-json-rpc-filters": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz", - "integrity": "sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw==", - "dependencies": { - "@metamask/safe-event-emitter": "^2.0.0", - "async-mutex": "^0.2.6", - "eth-json-rpc-middleware": "^6.0.0", - "eth-query": "^2.1.2", - "json-rpc-engine": "^6.1.0", - "pify": "^5.0.0" - } - }, - "node_modules/eth-json-rpc-filters/node_modules/pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eth-json-rpc-infura": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-5.1.0.tgz", - "integrity": "sha512-THzLye3PHUSGn1EXMhg6WTLW9uim7LQZKeKaeYsS9+wOBcamRiCQVGHa6D2/4P0oS0vSaxsBnU/J6qvn0MPdow==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dependencies": { - "eth-json-rpc-middleware": "^6.0.0", - "eth-rpc-errors": "^3.0.0", - "json-rpc-engine": "^5.3.0", - "node-fetch": "^2.6.0" - } - }, - "node_modules/eth-json-rpc-infura/node_modules/json-rpc-engine": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", - "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", - "dependencies": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/eth-json-rpc-middleware": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz", - "integrity": "sha512-qqBfLU2Uq1Ou15Wox1s+NX05S9OcAEL4JZ04VZox2NS0U+RtCMjSxzXhLFWekdShUPZ+P8ax3zCO2xcPrp6XJQ==", - "dependencies": { - "btoa": "^1.2.1", - "clone": "^2.1.1", - "eth-query": "^2.1.2", - "eth-rpc-errors": "^3.0.0", - "eth-sig-util": "^1.4.2", - "ethereumjs-util": "^5.1.2", - "json-rpc-engine": "^5.3.0", - "json-stable-stringify": "^1.0.1", - "node-fetch": "^2.6.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/eth-json-rpc-middleware/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/eth-json-rpc-middleware/node_modules/json-rpc-engine": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", - "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", - "dependencies": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/eth-json-rpc-middleware/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/eth-lib/node_modules/bn.js": { - "version": "4.12.0", - "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", - "integrity": "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==", - "dependencies": { - "json-rpc-random-id": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "node_modules/eth-rpc-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", - "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", - "dependencies": { - "fast-safe-stringify": "^2.0.6" - } - }, - "node_modules/eth-sig-util": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", - "integrity": "sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw==", - "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", - "dependencies": { - "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", - "ethereumjs-util": "^5.1.1" - } - }, - "node_modules/eth-sig-util/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/eth-sig-util/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/eth-tx-summary": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz", - "integrity": "sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg==", - "dependencies": { - "async": "^2.1.2", - "clone": "^2.0.0", - "concat-stream": "^1.5.1", - "end-of-stream": "^1.1.0", - "eth-query": "^2.0.2", - "ethereumjs-block": "^1.4.1", - "ethereumjs-tx": "^1.1.1", - "ethereumjs-util": "^5.0.1", - "ethereumjs-vm": "^2.6.0", - "through2": "^2.0.3" - } - }, - "node_modules/eth-tx-summary/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/eth-tx-summary/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", - "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", - "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "node_modules/ethereum-common": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" - }, - "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==", - "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/ethereum-protocol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz", - "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg==" - }, - "node_modules/ethereum-types": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ethereum-types/-/ethereum-types-3.7.1.tgz", - "integrity": "sha512-EBQwTGnGZQ9oHK7Za3DFEOxiElksRCoZECkk418vHiE2d59lLSejDZ1hzRVphtFjAu5YqONz4/XuAYdMBg+gWA==", - "dependencies": { - "@types/node": "12.12.54", - "bignumber.js": "~9.0.2" - }, - "engines": { - "node": ">=6.12" - } - }, - "node_modules/ethereum-types/node_modules/@types/node": { - "version": "12.12.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", - "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" - }, - "node_modules/ethereum-types/node_modules/bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", - "engines": { - "node": "*" - } - }, - "node_modules/ethereum-waffle": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/ethereum-waffle/-/ethereum-waffle-4.0.10.tgz", - "integrity": "sha512-iw9z1otq7qNkGDNcMoeNeLIATF9yKl1M8AIeu42ElfNBplq0e+5PeasQmm8ybY/elkZ1XyRO0JBQxQdVRb8bqQ==", - "dev": true, - "dependencies": { - "@ethereum-waffle/chai": "4.0.10", - "@ethereum-waffle/compiler": "4.0.3", - "@ethereum-waffle/mock-contract": "4.0.4", - "@ethereum-waffle/provider": "4.0.5", - "solc": "0.8.15", - "typechain": "^8.0.0" - }, - "bin": { - "waffle": "bin/waffle" - }, - "engines": { - "node": ">=10.0" - }, - "peerDependencies": { - "ethers": "*" - } - }, - "node_modules/ethereum-waffle/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/ethereum-waffle/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ethereum-waffle/node_modules/solc": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.15.tgz", - "integrity": "sha512-Riv0GNHNk/SddN/JyEuFKwbcWcEeho15iyupTSHw5Np6WuXA5D8kEHbyzDHi6sqmvLzu2l+8b1YmL8Ytple+8w==", - "dev": true, - "dependencies": { - "command-exists": "^1.2.8", - "commander": "^8.1.0", - "follow-redirects": "^1.12.1", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "bin": { - "solcjs": "solc.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git", - "integrity": "sha512-qs8G5KwnIO/thOQjv1RvR/4oiTsy6IaCsN+ory5dbiqFXz8sd239aWJH0wmsVNPimL5X1KzQheUpi6xAo6FU4w==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ethereumjs-abi/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ethereumjs-abi/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ethereumjs-account": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", - "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", - "dependencies": { - "ethereumjs-util": "^5.0.0", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-account/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/ethereumjs-account/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-block": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", - "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", - "dependencies": { - "async": "^2.0.1", - "ethereum-common": "0.2.0", - "ethereumjs-tx": "^1.2.2", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ethereumjs-block/node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ethereumjs-block/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/ethereumjs-block/node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "dependencies": { - "abstract-leveldown": "~2.6.0" - } - }, - "node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-block/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/ethereumjs-block/node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" - }, - "node_modules/ethereumjs-block/node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "dependencies": { - "errno": "~0.1.1" - } - }, - "node_modules/ethereumjs-block/node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", - "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - } - }, - "node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/ethereumjs-block/node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", - "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - } - }, - "node_modules/ethereumjs-block/node_modules/level-ws/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/ethereumjs-block/node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ethereumjs-block/node_modules/level-ws/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/ethereumjs-block/node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/ethereumjs-block/node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } - }, - "node_modules/ethereumjs-block/node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", - "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/ethereumjs-block/node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ethereumjs-block/node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - } - }, - "node_modules/ethereumjs-block/node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" - }, - "node_modules/ethereumjs-block/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==" - }, - "node_modules/ethereumjs-block/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==", - "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" - } - }, - "node_modules/ethereumjs-block/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/ethereumjs-block/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ethereumjs-block/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==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/ethereumjs-common": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", - "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==", - "deprecated": "New package name format for new versions: @ethereumjs/common. Please update." - }, - "node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", - "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "node_modules/ethereumjs-tx/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/ethereumjs-tx/node_modules/ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ==" - }, - "node_modules/ethereumjs-tx/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-util": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz", - "integrity": "sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ethereumjs-vm": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", - "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", - "deprecated": "New package name format for new versions: @ethereumjs/vm. Please update.", - "dependencies": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "ethereumjs-account": "^2.0.3", - "ethereumjs-block": "~2.2.0", - "ethereumjs-common": "^1.1.0", - "ethereumjs-util": "^6.0.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-vm/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ethereumjs-vm/node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ethereumjs-vm/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/ethereumjs-vm/node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "dependencies": { - "abstract-leveldown": "~2.6.0" - } - }, - "node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", - "dependencies": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", - "dependencies": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ethereumjs-vm/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ethereumjs-vm/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/ethereumjs-vm/node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" - }, - "node_modules/ethereumjs-vm/node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "dependencies": { - "errno": "~0.1.1" - } - }, - "node_modules/ethereumjs-vm/node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", - "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - } - }, - "node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/ethereumjs-vm/node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", - "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - } - }, - "node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/ethereumjs-vm/node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } - }, - "node_modules/ethereumjs-vm/node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", - "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/ethereumjs-vm/node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - } - }, - "node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" - }, - "node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-vm/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==" - }, - "node_modules/ethereumjs-vm/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==", - "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" - } - }, - "node_modules/ethereumjs-vm/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/ethereumjs-vm/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ethereumjs-vm/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==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "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/ethers-eip712": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ethers-eip712/-/ethers-eip712-0.2.0.tgz", - "integrity": "sha512-fgS196gCIXeiLwhsWycJJuxI9nL/AoUPGSQ+yvd+8wdWR+43G+J1n69LmWVWvAON0M6qNaf2BF4/M159U8fujQ==", - "peerDependencies": { - "ethers": "^4.0.47 || ^5.0.8" - } - }, - "node_modules/ethjs-abi": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz", - "integrity": "sha512-g2AULSDYI6nEJyJaEVEXtTimRY2aPC2fi7ddSy0W+LXvEVL8Fe1y76o43ecbgdUKwZD+xsmEgX1yJr1Ia3r1IA==", - "dev": true, - "dependencies": { - "bn.js": "4.11.6", - "js-sha3": "0.5.5", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethjs-abi/node_modules/bn.js": { - "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 - }, - "node_modules/ethjs-abi/node_modules/js-sha3": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz", - "integrity": "sha512-yLLwn44IVeunwjpDVTDZmQeVbB0h+dZpY2eO68B/Zik8hu6dH+rKeLxwua79GGIvW6xr8NBAcrtiUbYrTjEFTA==", - "dev": true - }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" - }, - "node_modules/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "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.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/express/node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/express/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fake-merkle-patricia-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", - "integrity": "sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==", - "dependencies": { - "checkpoint-store": "^1.1.0" - } - }, - "node_modules/fast-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz", - "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==", - "dev": true, - "dependencies": { - "pure-rand": "^5.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - }, - "node_modules/fast-deep-equal": { - "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==" - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "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", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fetch-ponyfill": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", - "integrity": "sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g==", - "dependencies": { - "node-fetch": "~1.7.1" - } - }, - "node_modules/fetch-ponyfill/node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "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==" - }, - "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/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", - "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", - "dev": true, - "dependencies": { - "flatted": "^3.2.7", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fp-ts": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", - "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==" - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "optional": true - }, - "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==", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs-readdir-recursive": { - "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 - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ganache/-/ganache-7.4.3.tgz", - "integrity": "sha512-RpEDUiCkqbouyE7+NMXG26ynZ+7sGiODU84Kz+FVoXUnQ4qQM4M8wif3Y4qUCt+D/eM1RVeGq0my62FPD6Y1KA==", - "bundleDependencies": [ - "@trufflesuite/bigint-buffer", - "emittery", - "keccak", - "leveldown", - "secp256k1", - "@types/bn.js", - "@types/lru-cache", - "@types/seedrandom" - ], - "hasShrinkwrap": true, - "dependencies": { - "@trufflesuite/bigint-buffer": "1.1.10", - "@types/bn.js": "^5.1.0", - "@types/lru-cache": "5.1.1", - "@types/seedrandom": "3.0.1", - "emittery": "0.10.0", - "keccak": "3.0.2", - "leveldown": "6.1.0", - "secp256k1": "4.0.3" - }, - "bin": { - "ganache": "dist/node/cli.js", - "ganache-cli": "dist/node/cli.js" - }, - "optionalDependencies": { - "bufferutil": "4.0.5", - "utf-8-validate": "5.0.7" - } - }, - "node_modules/ganache-core": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2.tgz", - "integrity": "sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw==", - "bundleDependencies": [ - "keccak" - ], - "deprecated": "ganache-core is now ganache; visit https://trfl.io/g7 for details", - "hasShrinkwrap": true, - "dependencies": { - "abstract-leveldown": "3.0.0", - "async": "2.6.2", - "bip39": "2.5.0", - "cachedown": "1.0.0", - "clone": "2.1.2", - "debug": "3.2.6", - "encoding-down": "5.0.4", - "eth-sig-util": "3.0.0", - "ethereumjs-abi": "0.6.8", - "ethereumjs-account": "3.0.0", - "ethereumjs-block": "2.2.2", - "ethereumjs-common": "1.5.0", - "ethereumjs-tx": "2.1.2", - "ethereumjs-util": "6.2.1", - "ethereumjs-vm": "4.2.0", - "heap": "0.2.6", - "keccak": "3.0.1", - "level-sublevel": "6.6.4", - "levelup": "3.1.1", - "lodash": "4.17.20", - "lru-cache": "5.1.1", - "merkle-patricia-tree": "3.0.0", - "patch-package": "6.2.2", - "seedrandom": "3.0.1", - "source-map-support": "0.5.12", - "tmp": "0.1.0", - "web3-provider-engine": "14.2.1", - "websocket": "1.0.32" - }, - "engines": { - "node": ">=8.9.0" - }, - "optionalDependencies": { - "ethereumjs-wallet": "0.6.5", - "web3": "1.2.11" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/abi": { - "version": "5.0.0-beta.153", - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/address": ">=5.0.0-beta.128", - "@ethersproject/bignumber": ">=5.0.0-beta.130", - "@ethersproject/bytes": ">=5.0.0-beta.129", - "@ethersproject/constants": ">=5.0.0-beta.128", - "@ethersproject/hash": ">=5.0.0-beta.128", - "@ethersproject/keccak256": ">=5.0.0-beta.127", - "@ethersproject/logger": ">=5.0.0-beta.129", - "@ethersproject/properties": ">=5.0.0-beta.131", - "@ethersproject/strings": ">=5.0.0-beta.130" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/abstract-provider": { - "version": "5.0.8", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/networks": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/web": "^5.0.12" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/abstract-signer": { - "version": "5.0.10", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/address": { - "version": "5.0.9", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/rlp": "^5.0.7" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/base64": { - "version": "5.0.7", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/bytes": "^5.0.9" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/bignumber": { - "version": "5.0.13", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "bn.js": "^4.4.0" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/bytes": { - "version": "5.0.9", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/constants": { - "version": "5.0.8", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/bignumber": "^5.0.13" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/hash": { - "version": "5.0.10", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/keccak256": { - "version": "5.0.7", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "js-sha3": "0.5.7" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/logger": { - "version": "5.0.8", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/@ethersproject/networks": { - "version": "5.0.7", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/properties": { - "version": "5.0.7", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/rlp": { - "version": "5.0.7", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/signing-key": { - "version": "5.0.8", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "elliptic": "6.5.3" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/strings": { - "version": "5.0.8", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/transactions": { - "version": "5.0.9", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/rlp": "^5.0.7", - "@ethersproject/signing-key": "^5.0.8" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/web": { - "version": "5.0.12", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@ethersproject/base64": "^5.0.7", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "node_modules/ganache-core/node_modules/@sindresorhus/is": { - "version": "0.14.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "license": "MIT", - "optional": true, - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ganache-core/node_modules/@types/node": { - "version": "14.14.20", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ganache-core/node_modules/@types/secp256k1": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ganache-core/node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "license": "BSD-2-Clause" - }, - "node_modules/ganache-core/node_modules/abstract-leveldown": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/accepts": { - "version": "1.3.7", - "license": "MIT", - "optional": true, - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/aes-js": { - "version": "3.1.2", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ganache-core/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/arr-diff": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/arr-flatten": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/arr-union": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/array-unique": { - "version": "0.3.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/asn1": { - "version": "0.2.4", - "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/ganache-core/node_modules/asn1.js": { - "version": "5.4.1", - "license": "MIT", - "optional": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ganache-core/node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/ganache-core/node_modules/assign-symbols": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/async": { - "version": "2.6.2", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.11" - } - }, - "node_modules/ganache-core/node_modules/async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "license": "MIT", - "dependencies": { - "async": "^2.4.0" - } - }, - "node_modules/ganache-core/node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/atob": { - "version": "2.1.2", - "license": "(MIT OR Apache-2.0)", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/ganache-core/node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/aws4": { - "version": "1.11.0", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", - "license": "MIT", - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ganache-core/node_modules/babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "license": "MIT", - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "node_modules/ganache-core/node_modules/babel-core/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/babel-core/node_modules/json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/ganache-core/node_modules/babel-core/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/babel-core/node_modules/slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "license": "MIT", - "dependencies": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/babel-generator/node_modules/jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q==", - "license": "MIT", - "dependencies": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ==", - "license": "MIT", - "dependencies": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA==", - "license": "MIT", - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q==", - "license": "MIT", - "dependencies": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha512-RYqaPD0mQyQIFRu7Ho5wE2yvA/5jxqCIj/Lv4BXNq23mHYu/vxikOy2JueLiBxQknwapwrJeNCesvY0ZcfnlHg==", - "license": "MIT", - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw==", - "license": "MIT", - "dependencies": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw==", - "license": "MIT", - "dependencies": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag==", - "license": "MIT", - "dependencies": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg==", - "license": "MIT", - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA==", - "license": "MIT", - "dependencies": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "license": "MIT", - "dependencies": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg==", - "license": "MIT", - "dependencies": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw==", - "license": "MIT", - "dependencies": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA==", - "license": "MIT", - "dependencies": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ==", - "license": "MIT", - "dependencies": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ==", - "license": "MIT", - "dependencies": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ==", - "license": "MIT", - "dependencies": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ==", - "license": "MIT", - "dependencies": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg==", - "license": "MIT", - "dependencies": { - "regenerator-transform": "^0.10.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "license": "MIT", - "dependencies": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } - }, - "node_modules/ganache-core/node_modules/babel-preset-env/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ganache-core/node_modules/babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==", - "license": "MIT", - "dependencies": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "node_modules/ganache-core/node_modules/babel-register/node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "license": "MIT", - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/ganache-core/node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", - "license": "MIT", - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/ganache-core/node_modules/babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "node_modules/ganache-core/node_modules/babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", - "license": "MIT", - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "node_modules/ganache-core/node_modules/babel-traverse/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/babel-traverse/node_modules/globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/babel-traverse/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "node_modules/ganache-core/node_modules/babel-types/node_modules/to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/babelify": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", - "integrity": "sha512-vID8Fz6pPN5pJMdlUnNFSfrlcx5MUule4k9aKs/zbZPyXxMTcRrB0M4Tarw22L8afr8eYSWxDPYCob3TdrqtlA==", - "license": "MIT", - "dependencies": { - "babel-core": "^6.0.14", - "object-assign": "^4.0.0" - } - }, - "node_modules/ganache-core/node_modules/babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "license": "MIT", - "bin": { - "babylon": "bin/babylon.js" - } - }, - "node_modules/ganache-core/node_modules/backoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", - "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", - "license": "MIT", - "dependencies": { - "precond": "0.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/balanced-match": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/base": { - "version": "0.11.2", - "license": "MIT", - "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/ganache-core/node_modules/base-x": { - "version": "3.0.8", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ganache-core/node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "license": "BSD-3-Clause", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/ganache-core/node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "license": "Unlicense" - }, - "node_modules/ganache-core/node_modules/bignumber.js": { - "version": "9.0.1", - "license": "MIT", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/bip39": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", - "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", - "license": "ISC", - "dependencies": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" - } - }, - "node_modules/ganache-core/node_modules/blakejs": { - "version": "1.1.0", - "license": "CC0-1.0" - }, - "node_modules/ganache-core/node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/bn.js": { - "version": "4.11.9", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/body-parser": { - "version": "1.19.0", - "license": "MIT", - "optional": true, - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/body-parser/node_modules/qs": { - "version": "6.7.0", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/ganache-core/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/ganache-core/node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "license": "MIT", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ganache-core/node_modules/browserify-cipher": { - "version": "1.0.1", - "license": "MIT", - "optional": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/browserify-des": { - "version": "1.0.2", - "license": "MIT", - "optional": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/ganache-core/node_modules/browserify-rsa": { - "version": "4.1.0", - "license": "MIT", - "optional": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/ganache-core/node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.1.3", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/browserify-sign": { - "version": "4.2.1", - "license": "ISC", - "optional": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/ganache-core/node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.1.3", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ganache-core/node_modules/browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - }, - "bin": { - "browserslist": "cli.js" - } - }, - "node_modules/ganache-core/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/ganache-core/node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "license": "MIT", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/ganache-core/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" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/ganache-core/node_modules/buffer-from": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/bufferutil": { - "version": "4.0.3", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "node-gyp-build": "^4.2.0" - } - }, - "node_modules/ganache-core/node_modules/bytes": { - "version": "3.1.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/bytewise": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "bytewise-core": "^1.2.2", - "typewise": "^1.0.3" - } - }, - "node_modules/ganache-core/node_modules/bytewise-core": { - "version": "1.2.3", - "license": "MIT", - "dependencies": { - "typewise-core": "^1.2" - } - }, - "node_modules/ganache-core/node_modules/cache-base": { - "version": "1.0.1", - "license": "MIT", - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/cacheable-request": { - "version": "6.1.0", - "license": "MIT", - "optional": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ganache-core/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==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ganache-core/node_modules/cachedown": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "abstract-leveldown": "^2.4.1", - "lru-cache": "^3.2.0" - } - }, - "node_modules/ganache-core/node_modules/cachedown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "license": "MIT", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/cachedown/node_modules/lru-cache": { - "version": "3.2.0", - "license": "ISC", - "dependencies": { - "pseudomap": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/caniuse-lite": { - "version": "1.0.30001174", - "license": "CC-BY-4.0" - }, - "node_modules/ganache-core/node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "license": "Apache-2.0" - }, - "node_modules/ganache-core/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/checkpoint-store": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", - "integrity": "sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg==", - "license": "ISC", - "dependencies": { - "functional-red-black-tree": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/chownr": { - "version": "1.1.4", - "license": "ISC", - "optional": true - }, - "node_modules/ganache-core/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "license": "MIT", - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ganache-core/node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "license": "MIT", - "optional": true, - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "node_modules/ganache-core/node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ganache-core/node_modules/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/class-utils": { - "version": "0.3.6", - "license": "MIT", - "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/ganache-core/node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/class-utils/node_modules/is-buffer": { - "version": "1.1.6", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/ganache-core/node_modules/clone-response": { - "version": "1.0.2", - "license": "MIT", - "optional": true, - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/collection-visit": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/ganache-core/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/component-emitter": { - "version": "1.3.0", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/ganache-core/node_modules/content-disposition": { - "version": "0.5.3", - "license": "MIT", - "optional": true, - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", - "license": "ISC", - "optional": true, - "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "node_modules/ganache-core/node_modules/content-type": { - "version": "1.0.4", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/convert-source-map": { - "version": "1.7.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/ganache-core/node_modules/convert-source-map/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==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/cookie": { - "version": "0.4.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/cookiejar": { - "version": "2.1.2", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/copy-descriptor": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "hasInstallScript": true, - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/core-js-pure": { - "version": "3.8.2", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/ganache-core/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "license": "MIT", - "optional": true, - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ganache-core/node_modules/create-ecdh": { - "version": "4.0.4", - "license": "MIT", - "optional": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/ganache-core/node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/ganache-core/node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/ganache-core/node_modules/cross-fetch": { - "version": "2.2.3", - "license": "MIT", - "dependencies": { - "node-fetch": "2.1.2", - "whatwg-fetch": "2.0.4" - } - }, - "node_modules/ganache-core/node_modules/crypto-browserify": { - "version": "3.12.0", - "license": "MIT", - "optional": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "license": "ISC", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/ganache-core/node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/ganache-core/node_modules/decode-uri-component": { - "version": "0.2.0", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/ganache-core/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==", - "license": "MIT", - "optional": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/deep-equal": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/defer-to-connect": { - "version": "1.1.3", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/deferred-leveldown": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "abstract-leveldown": "~5.0.0", - "inherits": "^2.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/deferred-leveldown/node_modules/abstract-leveldown": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/define-properties": { - "version": "1.1.3", - "license": "MIT", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/define-property": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/defined": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ganache-core/node_modules/depd": { - "version": "1.1.2", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/des.js": { - "version": "1.0.1", - "license": "MIT", - "optional": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/destroy": { - "version": "1.0.4", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", - "license": "MIT", - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/diffie-hellman": { - "version": "5.0.3", - "license": "MIT", - "optional": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/ganache-core/node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "node_modules/ganache-core/node_modules/dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", - "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", - "license": "MIT", - "dependencies": { - "minimatch": "^3.0.4" - }, - "bin": { - "ignored": "bin/ignored" - } - }, - "node_modules/ganache-core/node_modules/duplexer3": { - "version": "0.1.4", - "license": "BSD-3-Clause", - "optional": true - }, - "node_modules/ganache-core/node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "license": "MIT", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ganache-core/node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/electron-to-chromium": { - "version": "1.3.636", - "license": "ISC" - }, - "node_modules/ganache-core/node_modules/elliptic": { - "version": "6.5.3", - "license": "MIT", - "dependencies": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "license": "MIT", - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/ganache-core/node_modules/encoding-down": { - "version": "5.0.4", - "license": "MIT", - "dependencies": { - "abstract-leveldown": "^5.0.0", - "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/encoding-down/node_modules/abstract-leveldown": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.2", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/ganache-core/node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "license": "MIT", - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/ganache-core/node_modules/es-abstract": { - "version": "1.18.0-next.1", - "license": "MIT", - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/es5-ext": { - "version": "0.10.53", - "license": "ISC", - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/ganache-core/node_modules/es6-iterator": { - "version": "2.0.3", - "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/ganache-core/node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "license": "ISC", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/ganache-core/node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ganache-core/node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/eth-block-tracker": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-3.0.1.tgz", - "integrity": "sha512-WUVxWLuhMmsfenfZvFO5sbl1qFY2IqUlw/FPVmjjdElpqLsZtSG+wPe9Dz7W/sB6e80HgFKknOmKk2eNlznHug==", - "license": "MIT", - "dependencies": { - "eth-query": "^2.1.0", - "ethereumjs-tx": "^1.3.3", - "ethereumjs-util": "^5.1.3", - "ethjs-util": "^0.1.3", - "json-rpc-engine": "^3.6.0", - "pify": "^2.3.0", - "tape": "^4.6.3" - } - }, - "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "license": "MPL-2.0", - "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/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==", - "license": "ISC", - "optional": true, - "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-infura": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz", - "integrity": "sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw==", - "license": "ISC", - "dependencies": { - "cross-fetch": "^2.1.1", - "eth-json-rpc-middleware": "^1.5.0", - "json-rpc-engine": "^3.4.0", - "json-rpc-error": "^2.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz", - "integrity": "sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q==", - "license": "ISC", - "dependencies": { - "async": "^2.5.0", - "eth-query": "^2.1.2", - "eth-tx-summary": "^3.1.2", - "ethereumjs-block": "^1.6.0", - "ethereumjs-tx": "^1.3.3", - "ethereumjs-util": "^5.1.2", - "ethereumjs-vm": "^2.1.0", - "fetch-ponyfill": "^4.0.0", - "json-rpc-engine": "^3.6.0", - "json-rpc-error": "^2.0.0", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "tape": "^4.6.3" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "license": "MIT", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "license": "MIT", - "dependencies": { - "abstract-leveldown": "~2.6.0" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-account": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", - "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", - "license": "MPL-2.0", - "dependencies": { - "ethereumjs-util": "^5.0.0", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-block": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", - "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "license": "MPL-2.0", - "dependencies": { - "async": "^2.0.1", - "ethereum-common": "0.2.0", - "ethereumjs-tx": "^1.2.2", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-block/node_modules/ethereum-common": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "license": "MPL-2.0", - "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", - "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", - "license": "MPL-2.0", - "dependencies": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "ethereumjs-account": "^2.0.3", - "ethereumjs-block": "~2.2.0", - "ethereumjs-common": "^1.1.0", - "ethereumjs-util": "^6.0.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "license": "MPL-2.0", - "dependencies": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "license": "MPL-2.0", - "dependencies": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "license": "MPL-2.0", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "license": "MIT", - "dependencies": { - "errno": "~0.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", - "license": "MIT", - "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "license": "MIT", - "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", - "license": "MIT", - "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "license": "MIT", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "license": "MPL-2.0", - "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/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==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/ganache-core/node_modules/eth-query": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", - "integrity": "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==", - "license": "ISC", - "dependencies": { - "json-rpc-random-id": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "node_modules/ganache-core/node_modules/eth-sig-util": { - "version": "3.0.0", - "license": "ISC", - "dependencies": { - "buffer": "^5.2.1", - "elliptic": "^6.4.0", - "ethereumjs-abi": "0.6.5", - "ethereumjs-util": "^5.1.1", - "tweetnacl": "^1.0.0", - "tweetnacl-util": "^0.15.0" - } - }, - "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-abi": { - "version": "0.6.5", - "license": "MIT", - "dependencies": { - "bn.js": "^4.10.0", - "ethereumjs-util": "^4.3.0" - } - }, - "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { - "version": "4.5.1", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.8.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz", - "integrity": "sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg==", - "license": "ISC", - "dependencies": { - "async": "^2.1.2", - "clone": "^2.0.0", - "concat-stream": "^1.5.1", - "end-of-stream": "^1.1.0", - "eth-query": "^2.0.2", - "ethereumjs-block": "^1.4.1", - "ethereumjs-tx": "^1.1.1", - "ethereumjs-util": "^5.0.1", - "ethereumjs-vm": "^2.6.0", - "through2": "^2.0.3" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "license": "MIT", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "license": "MIT", - "dependencies": { - "abstract-leveldown": "~2.6.0" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-account": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", - "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", - "license": "MPL-2.0", - "dependencies": { - "ethereumjs-util": "^5.0.0", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-block": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", - "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "license": "MPL-2.0", - "dependencies": { - "async": "^2.0.1", - "ethereum-common": "0.2.0", - "ethereumjs-tx": "^1.2.2", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-block/node_modules/ethereum-common": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "license": "MPL-2.0", - "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", - "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", - "license": "MPL-2.0", - "dependencies": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "ethereumjs-account": "^2.0.3", - "ethereumjs-block": "~2.2.0", - "ethereumjs-common": "^1.1.0", - "ethereumjs-util": "^6.0.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "license": "MPL-2.0", - "dependencies": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "license": "MPL-2.0", - "dependencies": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "license": "MPL-2.0", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "license": "MIT", - "dependencies": { - "errno": "~0.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", - "license": "MIT", - "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "license": "MIT", - "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", - "license": "MIT", - "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "license": "MIT", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "license": "MPL-2.0", - "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/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==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethashjs": { - "version": "0.0.8", - "license": "MPL-2.0", - "dependencies": { - "async": "^2.1.2", - "buffer-xor": "^2.0.1", - "ethereumjs-util": "^7.0.2", - "miller-rabin": "^4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethashjs/node_modules/bn.js": { - "version": "5.1.3", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethashjs/node_modules/buffer-xor": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", - "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethashjs/node_modules/ethereumjs-util": { - "version": "7.0.7", - "license": "MPL-2.0", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereum-bloom-filters": { - "version": "1.0.7", - "license": "MIT", - "optional": true, - "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "node_modules/ganache-core/node_modules/ethereum-bloom-filters/node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ==", - "license": "MIT" - }, - "node_modules/ganache-core/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==", - "license": "MIT", - "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/ganache-core/node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git", - "integrity": "sha512-qs8G5KwnIO/thOQjv1RvR/4oiTsy6IaCsN+ory5dbiqFXz8sd239aWJH0wmsVNPimL5X1KzQheUpi6xAo6FU4w==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-account": { - "version": "3.0.0", - "license": "MPL-2.0", - "dependencies": { - "ethereumjs-util": "^6.0.0", - "rlp": "^2.2.1", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block": { - "version": "2.2.2", - "license": "MPL-2.0", - "dependencies": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "license": "MIT", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "license": "MIT", - "dependencies": { - "abstract-leveldown": "~2.6.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "license": "MIT", - "dependencies": { - "errno": "~0.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", - "license": "MIT", - "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "license": "MIT", - "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", - "license": "MIT", - "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "license": "MIT", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "license": "MPL-2.0", - "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/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==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethereumjs-blockchain": { - "version": "4.0.4", - "license": "MPL-2.0", - "dependencies": { - "async": "^2.6.1", - "ethashjs": "~0.0.7", - "ethereumjs-block": "~2.2.2", - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.1.0", - "flow-stoplight": "^1.0.0", - "level-mem": "^3.0.1", - "lru-cache": "^5.1.1", - "rlp": "^2.2.2", - "semaphore": "^1.1.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-common": { - "version": "1.5.0", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "license": "MPL-2.0", - "dependencies": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "license": "MPL-2.0", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm": { - "version": "4.2.0", - "license": "MPL-2.0", - "dependencies": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "core-js-pure": "^3.0.1", - "ethereumjs-account": "^3.0.0", - "ethereumjs-block": "^2.2.2", - "ethereumjs-blockchain": "^4.0.3", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.2", - "ethereumjs-util": "^6.2.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1", - "util.promisify": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "license": "MIT", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "license": "MIT", - "dependencies": { - "abstract-leveldown": "~2.6.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "license": "MIT", - "dependencies": { - "errno": "~0.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", - "license": "MIT", - "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "license": "MIT", - "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", - "license": "MIT", - "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "license": "MIT", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "license": "MPL-2.0", - "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/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==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ethereumjs-wallet": { - "version": "0.6.5", - "license": "MIT", - "optional": true, - "dependencies": { - "aes-js": "^3.1.1", - "bs58check": "^2.1.2", - "ethereum-cryptography": "^0.1.3", - "ethereumjs-util": "^6.0.0", - "randombytes": "^2.0.6", - "safe-buffer": "^5.1.2", - "scryptsy": "^1.2.1", - "utf8": "^3.0.0", - "uuid": "^3.3.2" - } - }, - "node_modules/ganache-core/node_modules/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", - "license": "MIT", - "optional": true, - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ganache-core/node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "license": "MIT", - "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ganache-core/node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/events": { - "version": "3.2.0", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/ganache-core/node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "license": "MIT", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets": { - "version": "2.1.4", - "license": "MIT", - "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/ganache-core/node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-buffer": { - "version": "1.1.6", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/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==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/express": { - "version": "4.17.1", - "license": "MIT", - "optional": true, - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/ganache-core/node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/express/node_modules/qs": { - "version": "6.7.0", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/ganache-core/node_modules/express/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/ext": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "type": "^2.0.0" - } - }, - "node_modules/ganache-core/node_modules/ext/node_modules/type": { - "version": "2.1.0", - "license": "ISC" - }, - "node_modules/ganache-core/node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/extend-shallow": { - "version": "3.0.2", - "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/extglob": { - "version": "2.0.4", - "license": "MIT", - "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/ganache-core/node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/fake-merkle-patricia-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", - "integrity": "sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==", - "license": "ISC", - "dependencies": { - "checkpoint-store": "^1.1.0" - } - }, - "node_modules/ganache-core/node_modules/fast-deep-equal": { - "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==", - "license": "MIT" - }, - "node_modules/ganache-core/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==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/fetch-ponyfill": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", - "integrity": "sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g==", - "license": "MIT", - "dependencies": { - "node-fetch": "~1.7.1" - } - }, - "node_modules/ganache-core/node_modules/fetch-ponyfill/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/fetch-ponyfill/node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "license": "MIT", - "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/finalhandler": { - "version": "1.1.2", - "license": "MIT", - "optional": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root": { - "version": "1.2.1", - "license": "Apache-2.0", - "dependencies": { - "fs-extra": "^4.0.3", - "micromatch": "^3.1.4" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/braces": { - "version": "2.3.2", - "license": "MIT", - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fill-range": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fs-extra": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-buffer": { - "version": "1.1.6", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-number": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/micromatch": { - "version": "3.1.10", - "license": "MIT", - "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/ganache-core/node_modules/find-yarn-workspace-root/node_modules/to-regex-range": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/flow-stoplight": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/ganache-core/node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/ganache-core/node_modules/for-in": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/ganache-core/node_modules/forwarded": { - "version": "0.1.2", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/fragment-cache": { - "version": "0.2.1", - "license": "MIT", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/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==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/ganache-core/node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC" - }, - "node_modules/ganache-core/node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/get-intrinsic": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/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==", - "license": "MIT", - "optional": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ganache-core/node_modules/get-value": { - "version": "2.0.6", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/glob": { - "version": "7.1.3", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "license": "MIT", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/ganache-core/node_modules/got": { - "version": "9.6.0", - "license": "MIT", - "optional": true, - "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" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/ganache-core/node_modules/got/node_modules/get-stream": { - "version": "4.1.0", - "license": "MIT", - "optional": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/graceful-fs": { - "version": "4.2.4", - "license": "ISC" - }, - "node_modules/ganache-core/node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "license": "MIT", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/ganache-core/node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/has-symbol-support-x": { - "version": "1.4.2", - "license": "MIT", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/has-symbols": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/has-to-string-tag-x": { - "version": "1.4.1", - "license": "MIT", - "optional": true, - "dependencies": { - "has-symbol-support-x": "^1.4.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/has-value": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/has-values": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/has-values/node_modules/is-buffer": { - "version": "1.1.6", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ganache-core/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/heap": { - "version": "0.2.6" - }, - "node_modules/ganache-core/node_modules/hmac-drbg": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==", - "license": "MIT", - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/http-cache-semantics": { - "version": "4.1.0", - "license": "BSD-2-Clause", - "optional": true - }, - "node_modules/ganache-core/node_modules/http-errors": { - "version": "1.7.2", - "license": "MIT", - "optional": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "license": "ISC", - "optional": true - }, - "node_modules/ganache-core/node_modules/http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==", - "license": "ISC", - "optional": true - }, - "node_modules/ganache-core/node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/ganache-core/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "license": "MIT", - "optional": true, - "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/ganache-core/node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ganache-core/node_modules/immediate": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", - "integrity": "sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/ganache-core/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ganache-core/node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ganache-core/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-arguments": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/is-callable": { - "version": "1.2.2", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/is-ci": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/ganache-core/node_modules/is-data-descriptor": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-date-object": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/is-descriptor": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-extendable": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ganache-core/node_modules/is-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", - "integrity": "sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", - "license": "MIT", - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ganache-core/node_modules/is-negative-zero": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/is-object": { - "version": "1.0.2", - "license": "MIT", - "optional": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/is-plain-obj": { - "version": "1.1.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-plain-object": { - "version": "2.0.4", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-regex": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/is-retry-allowed": { - "version": "1.2.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-symbol": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/is-windows": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/ganache-core/node_modules/isobject": { - "version": "3.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/isurl": { - "version": "1.0.0", - "license": "MIT", - "optional": true, - "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/ganache-core/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==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/json-buffer": { - "version": "3.0.0", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/json-rpc-engine": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz", - "integrity": "sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA==", - "license": "ISC", - "dependencies": { - "async": "^2.0.1", - "babel-preset-env": "^1.7.0", - "babelify": "^7.3.0", - "json-rpc-error": "^2.0.0", - "promise-to-callback": "^1.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/json-rpc-error": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/json-rpc-error/-/json-rpc-error-2.0.0.tgz", - "integrity": "sha512-EwUeWP+KgAZ/xqFpaP6YDAXMtCJi+o/QQpCQFIYyxr01AdADi2y413eM8hSqJcoQym9WMePAJWoaODEJufC4Ug==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1" - } - }, - "node_modules/ganache-core/node_modules/json-rpc-random-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", - "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==", - "license": "ISC" - }, - "node_modules/ganache-core/node_modules/json-schema": { - "version": "0.2.3" - }, - "node_modules/ganache-core/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/json-stable-stringify": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "jsonify": "~0.0.0" - } - }, - "node_modules/ganache-core/node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "license": "ISC" - }, - "node_modules/ganache-core/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/ganache-core/node_modules/jsonify": { - "version": "0.0.0", - "license": "Public Domain" - }, - "node_modules/ganache-core/node_modules/jsprim": { - "version": "1.4.1", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/ganache-core/node_modules/keccak": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", - "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", - "hasInstallScript": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ganache-core/node_modules/keyv": { - "version": "3.1.0", - "license": "MIT", - "optional": true, - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/ganache-core/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==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/klaw-sync": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.11" - } - }, - "node_modules/ganache-core/node_modules/level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "license": "MIT", - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "license": "MIT", - "dependencies": { - "errno": "~0.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/level-iterator-stream": { - "version": "2.0.3", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.5", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/level-mem": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "level-packager": "~4.0.0", - "memdown": "~3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/level-mem/node_modules/abstract-leveldown": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/level-mem/node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/level-mem/node_modules/memdown": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "abstract-leveldown": "~5.0.0", - "functional-red-black-tree": "~1.0.1", - "immediate": "~3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/level-mem/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==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/level-packager": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "encoding-down": "~5.0.0", - "levelup": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/level-post": { - "version": "1.0.7", - "license": "MIT", - "dependencies": { - "ltgt": "^2.1.2" - } - }, - "node_modules/ganache-core/node_modules/level-sublevel": { - "version": "6.6.4", - "license": "MIT", - "dependencies": { - "bytewise": "~1.1.0", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0", - "level-iterator-stream": "^2.0.3", - "ltgt": "~2.1.1", - "pull-defer": "^0.2.2", - "pull-level": "^2.0.3", - "pull-stream": "^3.6.8", - "typewiselite": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/level-ws": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.2.8", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/levelup": { - "version": "3.1.1", - "license": "MIT", - "dependencies": { - "deferred-leveldown": "~4.0.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~3.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/levelup/node_modules/level-iterator-stream": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/lodash": { - "version": "4.17.20", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/looper": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/ganache-core/node_modules/lowercase-keys": { - "version": "1.0.1", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/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==", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/ganache-core/node_modules/ltgt": { - "version": "2.1.3", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/map-cache": { - "version": "0.2.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/map-visit": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/ganache-core/node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/merkle-patricia-tree": { - "version": "3.0.0", - "license": "MPL-2.0", - "dependencies": { - "async": "^2.6.1", - "ethereumjs-util": "^5.2.0", - "level-mem": "^3.0.1", - "level-ws": "^1.0.0", - "readable-stream": "^3.0.6", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - } - }, - "node_modules/ganache-core/node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { - "version": "5.2.1", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/merkle-patricia-tree/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ganache-core/node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/ganache-core/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", - "optional": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/mime-db": { - "version": "1.45.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/mime-types": { - "version": "2.1.28", - "license": "MIT", - "dependencies": { - "mime-db": "1.45.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/ganache-core/node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "license": "ISC" - }, - "node_modules/ganache-core/node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/minimatch": { - "version": "3.0.4", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/minimist": { - "version": "1.2.5", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/minizlib": { - "version": "1.3.3", - "license": "MIT", - "optional": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/ganache-core/node_modules/minizlib/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "license": "ISC", - "optional": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/ganache-core/node_modules/mixin-deep": { - "version": "1.3.2", - "license": "MIT", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/mkdirp": { - "version": "0.5.5", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ganache-core/node_modules/mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", - "license": "ISC", - "optional": true, - "dependencies": { - "mkdirp": "*" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/mock-fs": { - "version": "4.13.0", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/ms": { - "version": "2.1.3", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "license": "MIT", - "optional": true, - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/ganache-core/node_modules/multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "license": "MIT", - "optional": true, - "dependencies": { - "varint": "^5.0.0" - } - }, - "node_modules/ganache-core/node_modules/multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "license": "MIT", - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "node_modules/ganache-core/node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "license": "MIT", - "optional": true, - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/ganache-core/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", - "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/nanomatch": { - "version": "1.2.13", - "license": "MIT", - "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/ganache-core/node_modules/negotiator": { - "version": "0.6.2", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/next-tick": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/nice-try": { - "version": "1.0.5", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/node-fetch": { - "version": "2.1.2", - "license": "MIT", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/ganache-core/node_modules/node-gyp-build": { - "version": "4.2.3", - "inBundle": true, - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/ganache-core/node_modules/normalize-url": { - "version": "4.5.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ganache-core/node_modules/number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", - "license": "MIT", - "optional": true, - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ganache-core/node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/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==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object-copy": { - "version": "0.1.0", - "license": "MIT", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object-copy/node_modules/is-buffer": { - "version": "1.1.6", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object-inspect": { - "version": "1.9.0", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/object-is": { - "version": "1.1.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/object-visit": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object.assign": { - "version": "4.1.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/object.getownpropertydescriptors": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/object.pick": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/oboe": { - "version": "2.1.4", - "license": "BSD", - "optional": true, - "dependencies": { - "http-https": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/on-finished": { - "version": "2.3.0", - "license": "MIT", - "optional": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/ganache-core/node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/p-cancelable": { - "version": "1.1.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/p-timeout": { - "version": "1.2.1", - "license": "MIT", - "optional": true, - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/p-timeout/node_modules/p-finally": { - "version": "1.0.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/parse-asn1": { - "version": "5.1.6", - "license": "ISC", - "optional": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/parse-headers": { - "version": "2.0.3", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/pascalcase": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/patch-package": { - "version": "6.2.2", - "license": "MIT", - "dependencies": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "find-yarn-workspace-root": "^1.2.1", - "fs-extra": "^7.0.1", - "is-ci": "^2.0.0", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.0", - "rimraf": "^2.6.3", - "semver": "^5.6.0", - "slash": "^2.0.0", - "tmp": "^0.0.33" - }, - "bin": { - "patch-package": "index.js" - }, - "engines": { - "npm": ">5" - } - }, - "node_modules/ganache-core/node_modules/patch-package/node_modules/cross-spawn": { - "version": "6.0.5", - "license": "MIT", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/ganache-core/node_modules/patch-package/node_modules/path-key": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/patch-package/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ganache-core/node_modules/patch-package/node_modules/shebang-command": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/patch-package/node_modules/shebang-regex": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/patch-package/node_modules/slash": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/patch-package/node_modules/tmp": { - "version": "0.0.33", - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/ganache-core/node_modules/patch-package/node_modules/which": { - "version": "1.3.1", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/ganache-core/node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/path-parse": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/pbkdf2": { - "version": "3.1.1", - "license": "MIT", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/ganache-core/node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/posix-character-classes": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/precond": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/prepend-http": { - "version": "2.0.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/ganache-core/node_modules/process-nextick-args": { - "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==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/promise-to-callback": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", - "integrity": "sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA==", - "license": "MIT", - "dependencies": { - "is-fn": "^1.0.0", - "set-immediate-shim": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/proxy-addr": { - "version": "2.0.6", - "license": "MIT", - "optional": true, - "dependencies": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ganache-core/node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/pseudomap": { - "version": "1.0.2", - "license": "ISC" - }, - "node_modules/ganache-core/node_modules/psl": { - "version": "1.8.0", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/public-encrypt": { - "version": "4.0.3", - "license": "MIT", - "optional": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/ganache-core/node_modules/pull-cat": { - "version": "1.1.11", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/pull-defer": { - "version": "0.2.3", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/pull-level": { - "version": "2.0.4", - "license": "MIT", - "dependencies": { - "level-post": "^1.0.7", - "pull-cat": "^1.1.9", - "pull-live": "^1.0.1", - "pull-pushable": "^2.0.0", - "pull-stream": "^3.4.0", - "pull-window": "^2.1.4", - "stream-to-pull-stream": "^1.7.1" - } - }, - "node_modules/ganache-core/node_modules/pull-live": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "pull-cat": "^1.1.9", - "pull-stream": "^3.4.0" - } - }, - "node_modules/ganache-core/node_modules/pull-pushable": { - "version": "2.2.0", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/pull-stream": { - "version": "3.6.14", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/pull-window": { - "version": "2.1.4", - "license": "MIT", - "dependencies": { - "looper": "^2.0.0" - } - }, - "node_modules/ganache-core/node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "license": "MIT", - "optional": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/ganache-core/node_modules/punycode": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/qs": { - "version": "6.5.2", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/ganache-core/node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "license": "MIT", - "optional": true, - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/ganache-core/node_modules/randomfill": { - "version": "1.0.4", - "license": "MIT", - "optional": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/ganache-core/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/raw-body": { - "version": "2.4.0", - "license": "MIT", - "optional": true, - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/readable-stream": { - "version": "2.3.7", - "license": "MIT", - "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" - } - }, - "node_modules/ganache-core/node_modules/readable-stream/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==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "license": "BSD", - "dependencies": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "node_modules/ganache-core/node_modules/regex-not": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/regexp.prototype.flags": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/regexp.prototype.flags/node_modules/es-abstract": { - "version": "1.17.7", - "license": "MIT", - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "node_modules/ganache-core/node_modules/regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw==", - "license": "BSD", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/ganache-core/node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/ganache-core/node_modules/repeat-element": { - "version": "1.1.3", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/repeat-string": { - "version": "1.6.1", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/ganache-core/node_modules/repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", - "license": "MIT", - "dependencies": { - "is-finite": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ganache-core/node_modules/resolve-url": { - "version": "0.2.1", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/responselike": { - "version": "1.0.2", - "license": "MIT", - "optional": true, - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/resumer": { - "version": "0.0.0", - "license": "MIT", - "dependencies": { - "through": "~2.3.4" - } - }, - "node_modules/ganache-core/node_modules/ret": { - "version": "0.1.15", - "license": "MIT", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/ganache-core/node_modules/rimraf": { - "version": "2.6.3", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ganache-core/node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/ganache-core/node_modules/rlp": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", - "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.11.1" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "node_modules/ganache-core/node_modules/rustbn.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", - "license": "(MIT OR Apache-2.0)" - }, - "node_modules/ganache-core/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/safe-event-emitter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", - "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", - "license": "ISC", - "dependencies": { - "events": "^3.0.0" - } - }, - "node_modules/ganache-core/node_modules/safe-regex": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/ganache-core/node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/scryptsy": { - "version": "1.2.1", - "license": "MIT", - "optional": true, - "dependencies": { - "pbkdf2": "^3.0.3" - } - }, - "node_modules/ganache-core/node_modules/secp256k1": { - "version": "4.0.2", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "elliptic": "^6.5.2", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ganache-core/node_modules/seedrandom": { - "version": "3.0.1", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/semaphore": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", - "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ganache-core/node_modules/send": { - "version": "0.17.1", - "license": "MIT", - "optional": true, - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ganache-core/node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/serve-static": { - "version": "1.14.1", - "license": "MIT", - "optional": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ganache-core/node_modules/servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "license": "MIT", - "optional": true, - "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/set-value": { - "version": "2.0.1", - "license": "MIT", - "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/ganache-core/node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/setprototypeof": { - "version": "1.1.1", - "license": "ISC", - "optional": true - }, - "node_modules/ganache-core/node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/ganache-core/node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/simple-get": { - "version": "2.8.1", - "license": "MIT", - "optional": true, - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon": { - "version": "0.8.2", - "license": "MIT", - "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/ganache-core/node_modules/snapdragon-node": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon-util": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon-util/node_modules/is-buffer": { - "version": "1.1.6", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/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==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-buffer": { - "version": "1.1.6", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/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==", - "license": "MIT" - }, - "node_modules/ganache-core/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==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/source-map-resolve": { - "version": "0.5.3", - "license": "MIT", - "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/ganache-core/node_modules/source-map-support": { - "version": "0.5.12", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/ganache-core/node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/source-map-url": { - "version": "0.4.0", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/split-string": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/sshpk": { - "version": "1.16.1", - "license": "MIT", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/sshpk/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "license": "Unlicense" - }, - "node_modules/ganache-core/node_modules/static-extend": { - "version": "0.1.2", - "license": "MIT", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/static-extend/node_modules/is-buffer": { - "version": "1.1.6", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/statuses": { - "version": "1.5.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/stream-to-pull-stream": { - "version": "1.7.3", - "license": "MIT", - "dependencies": { - "looper": "^3.0.0", - "pull-stream": "^3.2.3" - } - }, - "node_modules/ganache-core/node_modules/stream-to-pull-stream/node_modules/looper": { - "version": "3.0.0", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/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==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/ganache-core/node_modules/string_decoder/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==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/string.prototype.trim": { - "version": "1.2.3", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/string.prototype.trimend": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/string.prototype.trimstart": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", - "license": "MIT", - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ganache-core/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/swarm-js": { - "version": "0.1.40", - "license": "MIT", - "optional": true, - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "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/ganache-core/node_modules/swarm-js/node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "license": "MIT", - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/ganache-core/node_modules/swarm-js/node_modules/get-stream": { - "version": "3.0.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", - "license": "MIT", - "optional": true, - "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/swarm-js/node_modules/is-stream": { - "version": "1.1.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/swarm-js/node_modules/p-cancelable": { - "version": "0.3.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/swarm-js/node_modules/prepend-http": { - "version": "1.0.4", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/swarm-js/node_modules/url-parse-lax": { - "version": "1.0.0", - "license": "MIT", - "optional": true, - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/tape": { - "version": "4.13.3", - "license": "MIT", - "dependencies": { - "deep-equal": "~1.1.1", - "defined": "~1.0.0", - "dotignore": "~0.1.2", - "for-each": "~0.3.3", - "function-bind": "~1.1.1", - "glob": "~7.1.6", - "has": "~1.0.3", - "inherits": "~2.0.4", - "is-regex": "~1.0.5", - "minimist": "~1.2.5", - "object-inspect": "~1.7.0", - "resolve": "~1.17.0", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.2.1", - "through": "~2.3.8" - }, - "bin": { - "tape": "bin/tape" - } - }, - "node_modules/ganache-core/node_modules/tape/node_modules/glob": { - "version": "7.1.6", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ganache-core/node_modules/tape/node_modules/is-regex": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/tape/node_modules/object-inspect": { - "version": "1.7.0", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/tape/node_modules/resolve": { - "version": "1.17.0", - "license": "MIT", - "dependencies": { - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/tar": { - "version": "4.4.13", - "license": "ISC", - "optional": true, - "dependencies": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/ganache-core/node_modules/tar/node_modules/fs-minipass": { - "version": "1.2.7", - "license": "ISC", - "optional": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/ganache-core/node_modules/tar/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "license": "ISC", - "optional": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/ganache-core/node_modules/through": { - "version": "2.3.8", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/ganache-core/node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/tmp": { - "version": "0.1.0", - "license": "MIT", - "dependencies": { - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/to-object-path": { - "version": "0.3.0", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/to-object-path/node_modules/is-buffer": { - "version": "1.1.6", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/to-readable-stream": { - "version": "1.0.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/to-regex": { - "version": "3.0.2", - "license": "MIT", - "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/ganache-core/node_modules/toidentifier": { - "version": "1.0.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/ganache-core/node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/ganache-core/node_modules/trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/tweetnacl": { - "version": "1.0.3", - "license": "Unlicense" - }, - "node_modules/ganache-core/node_modules/tweetnacl-util": { - "version": "0.15.1", - "license": "Unlicense" - }, - "node_modules/ganache-core/node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "license": "ISC" - }, - "node_modules/ganache-core/node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", - "optional": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/typewise": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "typewise-core": "^1.2.0" - } - }, - "node_modules/ganache-core/node_modules/typewise-core": { - "version": "1.2.0", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/typewiselite": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/underscore": { - "version": "1.9.1", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/union-value": { - "version": "1.0.1", - "license": "MIT", - "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/ganache-core/node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/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==", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/ganache-core/node_modules/unorm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", - "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==", - "license": "MIT or GPL-2.0", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/ganache-core/node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/unset-value": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "license": "MIT", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/ganache-core/node_modules/urix": { - "version": "0.1.0", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/url-parse-lax": { - "version": "3.0.0", - "license": "MIT", - "optional": true, - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/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==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/url-to-options": { - "version": "1.0.1", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/ganache-core/node_modules/use": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/utf-8-validate": { - "version": "5.0.4", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "node-gyp-build": "^4.2.0" - } - }, - "node_modules/ganache-core/node_modules/utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/util.promisify": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "for-each": "^0.3.3", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ganache-core/node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/ganache-core/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/ganache-core/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/ganache-core/node_modules/web3": { - "version": "1.2.11", - "hasInstallScript": true, - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "web3-bzz": "1.2.11", - "web3-core": "1.2.11", - "web3-eth": "1.2.11", - "web3-eth-personal": "1.2.11", - "web3-net": "1.2.11", - "web3-shh": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-bzz": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40", - "underscore": "1.9.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.19.12", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/web3-core": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-requestmanager": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-core-helpers": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-core-method": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-core-promievent": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-core-requestmanager": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "web3-providers-http": "1.2.11", - "web3-providers-ipc": "1.2.11", - "web3-providers-ws": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-core-subscriptions": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "eventemitter3": "4.0.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-core/node_modules/@types/node": { - "version": "12.19.12", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/web3-eth": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-eth-accounts": "1.2.11", - "web3-eth-contract": "1.2.11", - "web3-eth-ens": "1.2.11", - "web3-eth-iban": "1.2.11", - "web3-eth-personal": "1.2.11", - "web3-net": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-abi": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "@ethersproject/abi": "5.0.0-beta.153", - "underscore": "1.9.1", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-accounts": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "scrypt-js": "^3.0.1", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "license": "MIT", - "optional": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "license": "MIT", - "optional": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-contract": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "@types/bn.js": "^4.11.5", - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-ens": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-eth-contract": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-iban": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "bn.js": "^4.11.9", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-personal": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-net": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.19.12", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/web3-net": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "web3-core": "1.2.11", - "web3-core-method": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine": { - "version": "14.2.1", - "license": "MIT", - "dependencies": { - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^3.0.0", - "eth-json-rpc-infura": "^3.1.0", - "eth-sig-util": "3.0.0", - "ethereumjs-block": "^1.2.2", - "ethereumjs-tx": "^1.2.0", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-rpc-error": "^2.0.0", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "license": "MIT", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "license": "MIT", - "dependencies": { - "abstract-leveldown": "~2.6.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/eth-sig-util": { - "version": "1.4.2", - "license": "ISC", - "dependencies": { - "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", - "ethereumjs-util": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-account": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", - "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", - "license": "MPL-2.0", - "dependencies": { - "ethereumjs-util": "^5.0.0", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-block": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", - "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "license": "MPL-2.0", - "dependencies": { - "async": "^2.0.1", - "ethereum-common": "0.2.0", - "ethereumjs-tx": "^1.2.2", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-block/node_modules/ethereum-common": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "license": "MPL-2.0", - "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", - "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", - "license": "MPL-2.0", - "dependencies": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "ethereumjs-account": "^2.0.3", - "ethereumjs-block": "~2.2.0", - "ethereumjs-common": "^1.1.0", - "ethereumjs-util": "^6.0.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "license": "MPL-2.0", - "dependencies": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "license": "MPL-2.0", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "license": "MPL-2.0", - "dependencies": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "license": "MPL-2.0", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "license": "MIT", - "dependencies": { - "errno": "~0.1.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", - "license": "MIT", - "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "license": "MIT", - "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", - "license": "MIT", - "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "license": "MIT", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "license": "MPL-2.0", - "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/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==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ws": { - "version": "5.2.2", - "license": "MIT", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-providers-http": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "web3-core-helpers": "1.2.11", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-providers-ipc": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-providers-ws": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "eventemitter3": "4.0.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "websocket": "^1.0.31" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-shh": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "web3-core": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-net": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-utils": { - "version": "1.2.11", - "license": "LGPL-3.0", - "optional": true, - "dependencies": { - "bn.js": "^4.11.9", - "eth-lib": "0.2.8", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-utils/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "license": "MIT", - "optional": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/ganache-core/node_modules/websocket": { - "version": "1.0.32", - "license": "Apache-2.0", - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/ganache-core/node_modules/websocket/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/whatwg-fetch": { - "version": "2.0.4", - "license": "MIT" - }, - "node_modules/ganache-core/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==", - "license": "ISC" - }, - "node_modules/ganache-core/node_modules/ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "license": "MIT", - "optional": true, - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "node_modules/ganache-core/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==", - "license": "MIT", - "optional": true - }, - "node_modules/ganache-core/node_modules/xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "license": "MIT", - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/ganache-core/node_modules/xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "license": "MIT", - "optional": true, - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "node_modules/ganache-core/node_modules/xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "license": "MIT", - "optional": true, - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "node_modules/ganache-core/node_modules/xhr2-cookies": { - "version": "1.1.0", - "license": "MIT", - "optional": true, - "dependencies": { - "cookiejar": "^2.1.1" - } - }, - "node_modules/ganache-core/node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/ganache-core/node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", - "license": "MIT", - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/ganache-core/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "license": "ISC" - }, - "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz", - "integrity": "sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw==", - "hasInstallScript": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "node-gyp-build": "4.4.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer/node_modules/node-gyp-build": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", - "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", - "inBundle": true, - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/ganache/node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "inBundle": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ganache/node_modules/@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/@types/node": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz", - "integrity": "sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==", - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/@types/seedrandom": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.1.tgz", - "integrity": "sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw==", - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/ganache/node_modules/bufferutil": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", - "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - } - }, - "node_modules/ganache/node_modules/catering": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.0.tgz", - "integrity": "sha512-M5imwzQn6y+ODBfgi+cfgZv2hIUI6oYU/0f35Mdb1ujGeqeoI5tOnl9Q13DTH7LW+7er+NYq8stNOKZD/Z3U/A==", - "inBundle": true, - "license": "MIT", - "dependencies": { - "queue-tick": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache/node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "inBundle": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/ganache/node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/emittery": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz", - "integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/ganache/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/ganache/node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "inBundle": true, - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/ganache/node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "BSD-3-Clause" - }, - "node_modules/ganache/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "inBundle": true, - "license": "ISC" - }, - "node_modules/ganache/node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache/node_modules/keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "hasInstallScript": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ganache/node_modules/leveldown": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz", - "integrity": "sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==", - "hasInstallScript": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "abstract-leveldown": "^7.2.0", - "napi-macros": "~2.0.0", - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/ganache/node_modules/leveldown/node_modules/abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", - "inBundle": true, - "license": "MIT", - "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ganache/node_modules/leveldown/node_modules/level-concat-iterator": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", - "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", - "inBundle": true, - "license": "MIT", - "dependencies": { - "catering": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ganache/node_modules/leveldown/node_modules/level-supports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", - "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/ganache/node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "inBundle": true, - "license": "ISC" - }, - "node_modules/ganache/node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "inBundle": true, - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/ganache/node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/queue-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.0.tgz", - "integrity": "sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ==", - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ganache/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "hasInstallScript": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ganache/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "inBundle": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/ganache/node_modules/utf-8-validate": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", - "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - } - }, - "node_modules/ganache/node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "inBundle": true, - "license": "MIT" - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", - "optional": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "optional": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-tsconfig": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", - "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", - "dev": true, - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/ghost-testrpc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", - "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "node-emoji": "^1.10.0" - }, - "bin": { - "testrpc-sc": "index.js" - } - }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", - "optional": true - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/hardhat": { - "version": "2.17.3", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.17.3.tgz", - "integrity": "sha512-SFZoYVXW1bWJZrIIKXOA+IgcctfuKXDwENywiYNT2dM3YQc4fXNaTbuk/vpPzHIF50upByx4zW5EqczKYQubsA==", - "dependencies": { - "@ethersproject/abi": "^5.1.2", - "@metamask/eth-sig-util": "^4.0.0", - "@nomicfoundation/ethereumjs-block": "5.0.2", - "@nomicfoundation/ethereumjs-blockchain": "7.0.2", - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-evm": "2.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-statemanager": "2.0.2", - "@nomicfoundation/ethereumjs-trie": "6.0.2", - "@nomicfoundation/ethereumjs-tx": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "@nomicfoundation/ethereumjs-vm": "7.0.2", - "@nomicfoundation/solidity-analyzer": "^0.1.0", - "@sentry/node": "^5.18.1", - "@types/bn.js": "^5.1.0", - "@types/lru-cache": "^5.1.0", - "adm-zip": "^0.4.16", - "aggregate-error": "^3.0.0", - "ansi-escapes": "^4.3.0", - "chalk": "^2.4.2", - "chokidar": "^3.4.0", - "ci-info": "^2.0.0", - "debug": "^4.1.1", - "enquirer": "^2.3.0", - "env-paths": "^2.2.0", - "ethereum-cryptography": "^1.0.3", - "ethereumjs-abi": "^0.6.8", - "find-up": "^2.1.0", - "fp-ts": "1.19.3", - "fs-extra": "^7.0.1", - "glob": "7.2.0", - "immutable": "^4.0.0-rc.12", - "io-ts": "1.10.4", - "keccak": "^3.0.2", - "lodash": "^4.17.11", - "mnemonist": "^0.38.0", - "mocha": "^10.0.0", - "p-map": "^4.0.0", - "raw-body": "^2.4.1", - "resolve": "1.17.0", - "semver": "^6.3.0", - "solc": "0.7.3", - "source-map-support": "^0.5.13", - "stacktrace-parser": "^0.1.10", - "tsort": "0.0.1", - "undici": "^5.14.0", - "uuid": "^8.3.2", - "ws": "^7.4.6" - }, - "bin": { - "hardhat": "internal/cli/bootstrap.js" - }, - "peerDependencies": { - "ts-node": "*", - "typescript": "*" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/hardhat-gas-reporter": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz", - "integrity": "sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==", - "dev": true, - "dependencies": { - "array-uniq": "1.0.3", - "eth-gas-reporter": "^0.2.25", - "sha1": "^1.1.1" - }, - "peerDependencies": { - "hardhat": "^2.0.2" - } - }, - "node_modules/hardhat/node_modules/@noble/hashes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", - "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/hardhat/node_modules/@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "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==", - "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==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.2.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/hardhat/node_modules/commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==" - }, - "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==", - "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/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/hardhat/node_modules/keccak": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", - "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/hardhat/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/require-from-string": { - "version": "2.0.2", - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hardhat/node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dependencies": { - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hardhat/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/hardhat/node_modules/solc": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", - "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", - "dependencies": { - "command-exists": "^1.2.8", - "commander": "3.0.2", - "follow-redirects": "^1.12.1", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "bin": { - "solcjs": "solcjs" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/hardhat/node_modules/solc/node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/hardhat/node_modules/solc/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "optional": true - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hdkey": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-0.7.1.tgz", - "integrity": "sha512-ADjIY5Bqdvp3Sh+SLSS1W3/gTJnlDwwM3UsM/5sHPojc4pLf6X3MfMMiTa96MgtADNhTPa+E+SAKMtqdv1zUfw==", - "dependencies": { - "coinstring": "^2.0.0", - "secp256k1": "^3.0.1" - } - }, - "node_modules/hdkey/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/hdkey/node_modules/secp256k1": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz", - "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "bip66": "^1.1.5", - "bn.js": "^4.11.8", - "create-hash": "^1.2.0", - "drbg.js": "^1.0.1", - "elliptic": "^6.5.2", - "nan": "^2.14.0", - "safe-buffer": "^5.1.2" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, - "node_modules/header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" - } - }, - "node_modules/heap": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", - "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", - "dev": true - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/highlightjs-solidity": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz", - "integrity": "sha512-DySXWfQghjm2l6a/flF+cteroJqD4gI8GSdL4PtvxZSsAHie8m3yVe2JFoRg03ROKT6hp2Lc/BxXkqerNmtQYg==", - "dev": true - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==", - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "node_modules/http-basic": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", - "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", - "dev": true, - "dependencies": { - "caseless": "^0.12.0", - "concat-stream": "^1.6.2", - "http-response-object": "^3.0.1", - "parse-cache-control": "^1.0.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==" - }, - "node_modules/http-response-object": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", - "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", - "dev": true, - "dependencies": { - "@types/node": "^10.0.3" - } - }, - "node_modules/http-response-object/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", - "dev": true - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "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/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" - }, - "node_modules/immutable": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", - "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==" - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "devOptional": true - }, - "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/io-ts": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", - "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", - "dependencies": { - "fp-ts": "^1.0.0" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "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", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", - "integrity": "sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg==", - "engines": { - "node": ">=0.10.0" - } - }, - "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", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "devOptional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.0" - } - }, - "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==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==", - "dev": true, - "dependencies": { - "upper-case": "^1.1.0" - } - }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/isomorphic-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "dependencies": { - "node-fetch": "^2.6.1", - "whatwg-fetch": "^3.4.1" - } - }, - "node_modules/isomorphic-fetch/node_modules/whatwg-fetch": { - "version": "3.6.20", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", - "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, - "node_modules/istanbul": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", - "integrity": "sha512-nMtdn4hvK0HjUlzr1DrKSUY8ychprt8dzHOgY2KXsIhHu5PuQQEOTM27gV9Xblyon7aUH/TSFIjRHEODF/FRPg==", - "deprecated": "This module is no longer maintained, try this instead:\n npm i nyc\nVisit https://istanbul.js.org/integrations for other alternatives.", - "dependencies": { - "abbrev": "1.0.x", - "async": "1.x", - "escodegen": "1.8.x", - "esprima": "2.7.x", - "glob": "^5.0.15", - "handlebars": "^4.0.1", - "js-yaml": "3.x", - "mkdirp": "0.5.x", - "nopt": "3.x", - "once": "1.x", - "resolve": "1.1.x", - "supports-color": "^3.1.0", - "which": "^1.1.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "istanbul": "lib/cli.js" - } - }, - "node_modules/istanbul/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/istanbul/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" - }, - "node_modules/istanbul/node_modules/glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/istanbul/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/istanbul/node_modules/js-yaml/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/istanbul/node_modules/resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==" - }, - "node_modules/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==", - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/istanbul/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/js-sdsl": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz", - "integrity": "sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "peer": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "dev": true, - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, - "node_modules/json-bigint/node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-rpc-engine": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz", - "integrity": "sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==", - "dependencies": { - "@metamask/safe-event-emitter": "^2.0.0", - "eth-rpc-errors": "^4.0.2" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/json-rpc-engine/node_modules/eth-rpc-errors": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz", - "integrity": "sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==", - "dependencies": { - "fast-safe-stringify": "^2.0.6" - } - }, - "node_modules/json-rpc-error": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/json-rpc-error/-/json-rpc-error-2.0.0.tgz", - "integrity": "sha512-EwUeWP+KgAZ/xqFpaP6YDAXMtCJi+o/QQpCQFIYyxr01AdADi2y413eM8hSqJcoQym9WMePAJWoaODEJufC4Ug==", - "dependencies": { - "inherits": "^2.0.1" - } - }, - "node_modules/json-rpc-random-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", - "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-stable-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", - "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", - "dependencies": { - "jsonify": "^0.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.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/jsonify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", - "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/jsonschema": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", - "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/keccak": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", - "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/keyv": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", - "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "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/klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", - "optionalDependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", - "dev": true, - "dependencies": { - "invert-kv": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/level": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", - "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==", - "dependencies": { - "browser-level": "^1.0.1", - "classic-level": "^1.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/level" - } - }, - "node_modules/level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "dependencies": { - "errno": "~0.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-mem": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-5.0.1.tgz", - "integrity": "sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg==", - "dev": true, - "dependencies": { - "level-packager": "^5.0.3", - "memdown": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", - "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", - "dev": true, - "dependencies": { - "encoding-down": "^6.3.0", - "levelup": "^4.3.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-supports": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", - "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/level-transcoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", - "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", - "dependencies": { - "buffer": "^6.0.3", - "module-error": "^1.0.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/level-transcoder/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "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.2.1" - } - }, - "node_modules/level-ws": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz", - "integrity": "sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^3.1.0", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dev": true, - "dependencies": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/levelup/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/link_token": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/link_token/-/link_token-1.0.6.tgz", - "integrity": "sha512-WI6n2Ri9kWQFsFYPTnLvU+Y3DT87he55uqLLX/sAwCVkGTXI/wionGEHAoWU33y8RepWlh46y+RD+DAz5Wmejg==" - }, - "node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==", - "dev": true - }, - "node_modules/lodash.camelcase": { - "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 - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "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 - }, - "node_modules/lodash.values": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", - "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "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/log-symbols/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/log-symbols/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/loglevel": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", - "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "deprecated": "Please upgrade to 2.3.7 which fixes GHSA-4q6p-r6v2-jvc5", - "dependencies": { - "get-func-name": "^2.0.0" - } - }, - "node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "node_modules/lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.2" - } - }, - "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/lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==" - }, - "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/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==" - }, - "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==", - "devOptional": true - }, - "node_modules/markdown-table": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", - "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", - "dev": true - }, - "node_modules/mcl-wasm": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", - "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==", - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memdown": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-5.1.0.tgz", - "integrity": "sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw==", - "dev": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "functional-red-black-tree": "~1.0.1", - "immediate": "~3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/memdown/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/memdown/node_modules/immediate": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", - "integrity": "sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg==", - "dev": true - }, - "node_modules/memdown/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/memory-level": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz", - "integrity": "sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==", - "dependencies": { - "abstract-level": "^1.0.0", - "functional-red-black-tree": "^1.0.1", - "module-error": "^1.0.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/merkle-patricia-tree": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz", - "integrity": "sha512-eHbf/BG6eGNsqqfbLED9rIqbsF4+sykEaBn6OLNs71tjclbMcMOk1tEPmJKcNcNCLkvbpY/lwyOlizWsqPNo8w==", - "dev": true, - "dependencies": { - "@types/levelup": "^4.3.0", - "ethereumjs-util": "^7.1.4", - "level-mem": "^5.0.1", - "level-ws": "^2.0.0", - "readable-stream": "^3.6.0", - "semaphore-async-await": "^1.5.1" - } - }, - "node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/merkletreejs": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/merkletreejs/-/merkletreejs-0.3.11.tgz", - "integrity": "sha512-LJKTl4iVNTndhL+3Uz/tfkjD0klIWsHlUzgtuNnNrsf7bAlXR30m+xYB7lHr5Z/l6e/yAIsr26Dabx6Buo4VGQ==", - "dependencies": { - "bignumber.js": "^9.0.1", - "buffer-reverse": "^1.0.1", - "crypto-js": "^4.2.0", - "treeify": "^1.1.0", - "web3-utils": "^1.3.4" - }, - "engines": { - "node": ">= 7.6.0" - } - }, - "node_modules/merkletreejs/node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "engines": { - "node": "*" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micro-ftch": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", - "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==" - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "optional": true - }, - "node_modules/mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", - "deprecated": "This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.", - "dependencies": { - "mkdirp": "*" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mnemonist": { - "version": "0.38.5", - "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", - "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", - "dependencies": { - "obliterator": "^2.0.0" - } - }, - "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "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", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/mock-fs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", - "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" - }, - "node_modules/mock-property": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mock-property/-/mock-property-1.0.3.tgz", - "integrity": "sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ==", - "dependencies": { - "define-data-property": "^1.1.1", - "functions-have-names": "^1.2.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "hasown": "^2.0.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/module-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", - "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "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/multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/n": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/n/-/n-9.2.0.tgz", - "integrity": "sha512-R8mFN2OWwNVc+r1f9fDzcT34DnDwUIHskrpTesZ6SdluaXBBnRtTu5tlfaSPloBi1Z/eGJoPO9nhyawWPad5UQ==", - "os": [ - "!win32" - ], - "bin": { - "n": "bin/n" - }, - "engines": { - "node": "*" - } - }, - "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==" - }, - "node_modules/nano-base32": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nano-base32/-/nano-base32-1.0.1.tgz", - "integrity": "sha512-sxEtoTqAPdjWVGv71Q17koMFGsOMSiHsIFEvzOM7cNp8BXB4AnEwmDabm5dorusJf/v1z7QxaZYxUorU9RKaAw==", - "dev": 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", - "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==" - }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "optional": true - }, - "node_modules/napi-macros": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz", - "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==" - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.1" - } - }, - "node_modules/node-abi": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", - "optional": true, - "dependencies": { - "semver": "^5.4.1" - } - }, - "node_modules/node-abi/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21" - } - }, - "node_modules/node-environment-flags": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", - "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", - "dev": true, - "dependencies": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - } - }, - "node_modules/node-environment-flags/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-hid": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-0.7.9.tgz", - "integrity": "sha512-vJnonTqmq3frCyTumJqG4g2IZcny3ynkfmbfDfQ90P3ZhRzcWYS/Um1ux6HFmAxmkaQnrZqIYHcGpL7kdqY8jA==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.13.2", - "prebuild-install": "^5.3.0" - }, - "bin": { - "hid-showdevices": "src/show-devices.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" - }, - "node_modules/nofilter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", - "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", - "dev": true, - "engines": { - "node": ">=12.19" - } - }, - "node_modules/noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha512-6kM8CLXvuW5crTxsAtva2YLrRrDaiTIkIePWs9moLHqbFWT94WpNFjwS/5dfLfECg5i/lkmw3aoqVidxt23TEQ==", - "optional": true - }, - "node_modules/nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "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/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz", - "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==", - "dev": true, - "dependencies": { - "array.prototype.reduce": "^1.0.6", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "safe-array-concat": "^1.0.0" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" - } - }, - "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obliterator": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", - "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==" - }, - "node_modules/oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", - "dependencies": { - "http-https": "^1.0.0" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/openzeppelin-contracts-upgradeable-4.9.3": { - "name": "@openzeppelin/contracts-upgradeable", - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.3.tgz", - "integrity": "sha512-jjaHAVRMrE4UuZNfDwjlLGDxTHWIOwTJS2ldnc278a0gevfXfPr8hxKEVBGFBE96kl2G3VHDZhUimw/+G3TG2A==" - }, - "node_modules/openzeppelin-solidity": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/openzeppelin-solidity/-/openzeppelin-solidity-1.12.0.tgz", - "integrity": "sha512-WlorzMXIIurugiSdw121RVD5qA3EfSI7GybTn+/Du0mPNgairjt29NpVTAaH8eLjAeAwlw46y7uQKy0NYem/gA==" - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", - "dev": true, - "dependencies": { - "lcid": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "engines": { - "node": ">=0.10.0" - } - }, - "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/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-cache-control": { - "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 - }, - "node_modules/parse-headers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", - "dev": true, - "dependencies": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==", - "dev": true, - "dependencies": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "node_modules/path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "engines": { - "node": "*" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/popper.js": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.3.tgz", - "integrity": "sha512-3lmujhsHXzb83+sI0PzfrE3O1XHZG8m8MXNMTupvA6LrM1/nnsiqYaacYc/RIente9VqnTDPztGEM8uvPAMGyg==", - "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1" - }, - "node_modules/prebuild-install": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz", - "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==", - "optional": true, - "dependencies": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.7.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/prebuild-install/node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "optional": true, - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/prebuild-install/node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/prebuild-install/node_modules/simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "optional": true, - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/precond": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", - "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/prettier-plugin-solidity": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.3.1.tgz", - "integrity": "sha512-MN4OP5I2gHAzHZG1wcuJl0FsLS3c4Cc5494bbg+6oQWBPuEamjwDvmGfFMZ6NFzsh3Efd9UUxeT7ImgjNH4ozA==", - "dev": true, - "dependencies": { - "@solidity-parser/parser": "^0.17.0", - "semver": "^7.5.4", - "solidity-comments-extractor": "^0.0.8" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "prettier": ">=2.3.0" - } - }, - "node_modules/prettier-plugin-solidity/node_modules/@solidity-parser/parser": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.17.0.tgz", - "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.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "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/private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "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==" - }, - "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, - "dependencies": { - "asap": "~2.0.6" - } - }, - "node_modules/promise-to-callback": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", - "integrity": "sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA==", - "dependencies": { - "is-fn": "^1.0.0", - "set-immediate-shim": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pure-rand": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz", - "integrity": "sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] - }, - "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "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/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "optional": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", - "dev": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", - "dev": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/reduce-flatten": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, - "node_modules/regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dependencies": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ==", - "dependencies": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "node_modules/regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g==" - }, - "node_modules/regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw==", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", - "dependencies": { - "is-finite": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/req-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", - "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==", - "dev": true, - "dependencies": { - "req-from": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/req-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", - "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==", - "dev": true, - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/req-from/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.19" - }, - "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "request": "^2.34" - } - }, - "node_modules/request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, - "engines": { - "node": ">=0.12.0" - }, - "peerDependencies": { - "request": "^2.34" - } - }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "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/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/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/ripemd160-min": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", - "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/rlp": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", - "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", - "dependencies": { - "bn.js": "^4.11.1" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "node_modules/rlp/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "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": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/run-parallel-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", - "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", - "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": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rustbn.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==" - }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "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/safe-event-emitter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", - "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", - "deprecated": "Renamed to @metamask/safe-event-emitter", - "dependencies": { - "events": "^3.0.0" - } - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sc-istanbul": { - "version": "0.4.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, - "dependencies": { - "abbrev": "1.0.x", - "async": "1.x", - "escodegen": "1.8.x", - "esprima": "2.7.x", - "glob": "^5.0.15", - "handlebars": "^4.0.1", - "js-yaml": "3.x", - "mkdirp": "0.5.x", - "nopt": "3.x", - "once": "1.x", - "resolve": "1.1.x", - "supports-color": "^3.1.0", - "which": "^1.1.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "istanbul": "lib/cli.js" - } - }, - "node_modules/sc-istanbul/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/sc-istanbul/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", - "dev": true - }, - "node_modules/sc-istanbul/node_modules/glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", - "dev": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/sc-istanbul/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sc-istanbul/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/sc-istanbul/node_modules/js-yaml/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sc-istanbul/node_modules/resolve": { - "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 - }, - "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, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/sc-istanbul/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "node_modules/seaport": { - "version": "1.5.0+im.1", - "resolved": "git+ssh://git@github.com/immutable/seaport.git", - "integrity": "sha512-7rZ+DcqFaql9O/f0SVMwM86w+Q4uFDD380x46iqwSamSfsBPm73msDPJC6gXP9o/v1OMkGmci3lR9b8BdjEVLA==", - "license": "MIT", - "dependencies": { - "@nomicfoundation/hardhat-network-helpers": "^1.0.7", - "@openzeppelin/contracts": "^4.9.2", - "ethers": "^5.5.3", - "ethers-eip712": "^0.2.0", - "hardhat": "^2.17.3", - "merkletreejs": "^0.3.11", - "seaport-core": "immutable/seaport-core#1.5.0+im.1", - "seaport-sol": "^1.5.0", - "seaport-types": "^0.0.1", - "solady": "^0.0.84" - }, - "engines": { - "node": ">=16.15.1" - } - }, - "node_modules/seaport-core": { - "version": "1.5.0+im.1", - "resolved": "git+ssh://git@github.com/immutable/seaport-core.git#33e9030f308500b422926a1be12d7a1e4d6adc06", - "license": "MIT", - "dependencies": { - "seaport-types": "^0.0.1" - } - }, - "node_modules/seaport-sol": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/seaport-sol/-/seaport-sol-1.5.3.tgz", - "integrity": "sha512-6g91hs15v4zBx/ZN9YD0evhQSDhdMKu83c2CgBgtc517D8ipaYaFO71ZD6V0Z6/I0cwNfuN/ZljcA1J+xXr65A==", - "dependencies": { - "seaport-core": "^0.0.1", - "seaport-types": "^0.0.1" - } - }, - "node_modules/seaport-sol/node_modules/seaport-core": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/seaport-core/-/seaport-core-0.0.1.tgz", - "integrity": "sha512-fgdSIC0ru8xK+fdDfF4bgTFH8ssr6EwbPejC2g/JsWzxy+FvG7JfaX57yn/eIv6hoscgZL87Rm+kANncgwLH3A==", - "dependencies": { - "seaport-types": "^0.0.1" - } - }, - "node_modules/seaport-types": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/seaport-types/-/seaport-types-0.0.1.tgz", - "integrity": "sha512-m7MLa7sq3YPwojxXiVvoX1PM9iNVtQIn7AdEtBnKTwgxPfGRWUlbs/oMgetpjT/ZYTmv3X5/BghOcstWYvKqRA==" - }, - "node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/seedrandom": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", - "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==", - "dev": true - }, - "node_modules/semaphore": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", - "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/semaphore-async-await": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz", - "integrity": "sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg==", - "engines": { - "node": ">=4.1" - } - }, - "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/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "devOptional": true - }, - "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==", - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/sha1": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", - "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==", - "dev": true, - "dependencies": { - "charenc": ">= 0.0.1", - "crypt": ">= 0.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/sha3": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", - "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", - "dev": true, - "dependencies": { - "buffer": "6.0.3" - } - }, - "node_modules/sha3/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "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.2.1" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "optional": true - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "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/simple-get": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", - "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "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", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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/solady": { - "version": "0.0.84", - "resolved": "https://registry.npmjs.org/solady/-/solady-0.0.84.tgz", - "integrity": "sha512-1ccuZWcMR+g8Ont5LUTqMSFqrmEC+rYAbo6DjZFzdL7AJAtLiaOzO25BKZR10h6YBZNaqO5zUOFy09R6/AzAKQ==" - }, - "node_modules/solc": { - "version": "0.4.26", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz", - "integrity": "sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA==", - "dev": true, - "dependencies": { - "fs-extra": "^0.30.0", - "memorystream": "^0.3.1", - "require-from-string": "^1.1.0", - "semver": "^5.3.0", - "yargs": "^4.7.1" - }, - "bin": { - "solcjs": "solcjs" - } - }, - "node_modules/solc/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/solc/node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/solc/node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/solc/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/solc/node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/solc/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "node_modules/solc/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/solc/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/solc/node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", - "dev": true - }, - "node_modules/solc/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/solc/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/solc/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/solc/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/solc/node_modules/which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", - "dev": true - }, - "node_modules/solc/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/solc/node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, - "node_modules/solc/node_modules/yargs": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", - "integrity": "sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA==", - "dev": true, - "dependencies": { - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "lodash.assign": "^4.0.3", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.1", - "which-module": "^1.0.0", - "window-size": "^0.2.0", - "y18n": "^3.2.1", - "yargs-parser": "^2.4.1" - } - }, - "node_modules/solc/node_modules/yargs-parser": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz", - "integrity": "sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA==", - "dev": true, - "dependencies": { - "camelcase": "^3.0.0", - "lodash.assign": "^4.0.6" - } - }, - "node_modules/solhint": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/solhint/-/solhint-3.6.2.tgz", - "integrity": "sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ==", - "dev": true, - "dependencies": { - "@solidity-parser/parser": "^0.16.0", - "ajv": "^6.12.6", - "antlr4": "^4.11.0", - "ast-parents": "^0.0.1", - "chalk": "^4.1.2", - "commander": "^10.0.0", - "cosmiconfig": "^8.0.0", - "fast-diff": "^1.2.0", - "glob": "^8.0.3", - "ignore": "^5.2.4", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "pluralize": "^8.0.0", - "semver": "^7.5.2", - "strip-ansi": "^6.0.1", - "table": "^6.8.1", - "text-table": "^0.2.0" - }, - "bin": { - "solhint": "solhint.js" - }, - "optionalDependencies": { - "prettier": "^2.8.3" - } - }, - "node_modules/solhint-community": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/solhint-community/-/solhint-community-3.7.0.tgz", - "integrity": "sha512-8nfdaxVll+IIaEBHFz3CzagIZNNTGp4Mrr+6O4m7c9Bs/L8OcgR/xzZJFwROkGAhV8Nbiv4gqJ42nEXZPYl3Qw==", - "dev": true, - "dependencies": { - "@solidity-parser/parser": "^0.16.0", - "ajv": "^6.12.6", - "antlr4": "^4.11.0", - "ast-parents": "^0.0.1", - "chalk": "^4.1.2", - "commander": "^11.1.0", - "cosmiconfig": "^8.0.0", - "fast-diff": "^1.2.0", - "glob": "^8.0.3", - "ignore": "^5.2.4", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "pluralize": "^8.0.0", - "semver": "^6.3.0", - "strip-ansi": "^6.0.1", - "table": "^6.8.1", - "text-table": "^0.2.0" - }, - "bin": { - "solhint": "solhint.js" - }, - "optionalDependencies": { - "prettier": "^2.8.3" - } - }, - "node_modules/solhint-community/node_modules/@solidity-parser/parser": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.2.tgz", - "integrity": "sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==", - "dev": true, - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" - } - }, - "node_modules/solhint-community/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/solhint-community/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/solhint-community/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/solhint-community/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/solhint-community/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/solhint-community/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==", - "dev": true - }, - "node_modules/solhint-community/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/solhint-community/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/solhint-community/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/solhint-community/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/solhint-community/node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "optional": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/solhint-community/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/solhint-community/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/solhint-plugin-prettier": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.1.0.tgz", - "integrity": "sha512-SDOTSM6tZxZ6hamrzl3GUgzF77FM6jZplgL2plFBclj/OjKP8Z3eIPojKU73gRr0MvOS8ACZILn8a5g0VTz/Gw==", - "dev": true, - "dependencies": { - "@prettier/sync": "^0.3.0", - "prettier-linter-helpers": "^1.0.0" - }, - "peerDependencies": { - "prettier": "^3.0.0", - "prettier-plugin-solidity": "^1.0.0" - } - }, - "node_modules/solhint/node_modules/@solidity-parser/parser": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.1.tgz", - "integrity": "sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==", - "dev": true, - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" - } - }, - "node_modules/solhint/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/solhint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/solhint/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/solhint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/solhint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/solhint/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==", - "dev": true - }, - "node_modules/solhint/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/solhint/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, - "engines": { - "node": ">=8" - } - }, - "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", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/solhint/node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "optional": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/solhint/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/solhint/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/solhint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "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-bits": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/solidity-bits/-/solidity-bits-0.4.0.tgz", - "integrity": "sha512-bAU3OwfZ3DrZz0LqxyCjaxXQL5fcbUXygaz7Wjd+4Th5zUbkw6h1SWBdi2E4yGOv1VSGyvcmHI8gAdgLDCXaDQ==" - }, - "node_modules/solidity-bytes-utils": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/solidity-bytes-utils/-/solidity-bytes-utils-0.8.0.tgz", - "integrity": "sha512-r109ZHEf7zTMm1ENW6/IJFDWilFR/v0BZnGuFgDHJUV80ByobnV2k3txvwQaJ9ApL+6XAfwqsw5VFzjALbQPCw==", - "dependencies": { - "@truffle/hdwallet-provider": "latest" - } - }, - "node_modules/solidity-comments-extractor": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.8.tgz", - "integrity": "sha512-htM7Vn6LhHreR+EglVMd2s+sZhcXAirB1Zlyrv5zBuTxieCvjfnRpd7iZk75m/u6NOlEyQ94C6TWbBn2cY7w8g==", - "dev": true - }, - "node_modules/solidity-coverage": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.5.tgz", - "integrity": "sha512-6C6N6OV2O8FQA0FWA95FdzVH+L16HU94iFgg5wAFZ29UpLFkgNI/DRR2HotG1bC0F4gAc/OMs2BJI44Q/DYlKQ==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.0.9", - "@solidity-parser/parser": "^0.16.0", - "chalk": "^2.4.2", - "death": "^1.1.0", - "detect-port": "^1.3.0", - "difflib": "^0.2.4", - "fs-extra": "^8.1.0", - "ghost-testrpc": "^0.0.2", - "global-modules": "^2.0.0", - "globby": "^10.0.1", - "jsonschema": "^1.2.4", - "lodash": "^4.17.15", - "mocha": "10.2.0", - "node-emoji": "^1.10.0", - "pify": "^4.0.1", - "recursive-readdir": "^2.2.2", - "sc-istanbul": "^0.4.5", - "semver": "^7.3.4", - "shelljs": "^0.8.3", - "web3-utils": "^1.3.6" - }, - "bin": { - "solidity-coverage": "plugins/bin.js" - }, - "peerDependencies": { - "hardhat": "^2.11.0" - } - }, - "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.1.tgz", - "integrity": "sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==", - "dev": true, - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" - } - }, - "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, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/solidity-coverage/node_modules/globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/solidity-coverage/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "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 - }, - "node_modules/solidity-parser-antlr": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/solidity-parser-antlr/-/solidity-parser-antlr-0.4.11.tgz", - "integrity": "sha512-4jtxasNGmyC0midtjH/lTFPZYvTTUMy6agYcF+HoMnzW8+cqo3piFrINb4ZCzpPW+7tTVFCGa5ubP34zOzeuMg==" - }, - "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==", - "optional": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.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", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz", - "integrity": "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==", - "dev": true - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sshpk/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, - "node_modules/stacktrace-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", - "dependencies": { - "type-fest": "^0.7.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/stacktrace-parser/node_modules/type-fest": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", - "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", - "dev": true - }, - "node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "devOptional": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "devOptional": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.1", - "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/@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/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/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/swarm-js/node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/swarm-js/node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "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", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "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", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/sync-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", - "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", - "dev": true, - "dependencies": { - "http-response-object": "^3.0.1", - "sync-rpc": "^1.2.1", - "then-request": "^6.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/sync-rpc": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", - "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", - "dev": true, - "dependencies": { - "get-port": "^3.1.0" - } - }, - "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table-layout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", - "dev": true, - "dependencies": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/table-layout/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table-layout/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "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 - }, - "node_modules/table/node_modules/require-from-string": { - "version": "2.0.2", - "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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/table/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/table/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tape": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.17.0.tgz", - "integrity": "sha512-KCuXjYxCZ3ru40dmND+oCLsXyuA8hoseu2SS404Px5ouyS0A99v8X/mdiLqsR5MTAyamMBN7PRwt2Dv3+xGIxw==", - "dependencies": { - "@ljharb/resumer": "~0.0.1", - "@ljharb/through": "~2.3.9", - "call-bind": "~1.0.2", - "deep-equal": "~1.1.1", - "defined": "~1.0.1", - "dotignore": "~0.1.2", - "for-each": "~0.3.3", - "glob": "~7.2.3", - "has": "~1.0.3", - "inherits": "~2.0.4", - "is-regex": "~1.1.4", - "minimist": "~1.2.8", - "mock-property": "~1.0.0", - "object-inspect": "~1.12.3", - "resolve": "~1.22.6", - "string.prototype.trim": "~1.2.8" - }, - "bin": { - "tape": "bin/tape" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tape/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "optional": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "optional": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/testrpc": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/testrpc/-/testrpc-0.0.1.tgz", - "integrity": "sha512-afH1hO+SQ/VPlmaLUFj2636QMeDvPCeQMc/9RBMW0IfjNe9gFD9Ra3ShqYkB7py0do1ZcCna/9acHyzTJ+GcNA==", - "deprecated": "testrpc has been renamed to ganache-cli, please use this package from now on.", - "dev": true - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/then-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", - "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", - "dev": true, - "dependencies": { - "@types/concat-stream": "^1.6.0", - "@types/form-data": "0.0.33", - "@types/node": "^8.0.0", - "@types/qs": "^6.2.31", - "caseless": "~0.12.0", - "concat-stream": "^1.6.0", - "form-data": "^2.2.0", - "http-basic": "^8.1.1", - "http-response-object": "^3.0.1", - "promise": "^8.0.0", - "qs": "^6.4.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/then-request/node_modules/@types/node": { - "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", - "dev": true - }, - "node_modules/then-request/node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/through2/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==", - "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" - } - }, - "node_modules/through2/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/through2/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==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, - "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/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tough-cookie/node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/treeify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", - "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ts-command-line-args": { - "version": "2.5.1", - "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, - "dependencies": { - "chalk": "^4.1.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.0", - "string-format": "^2.0.0" - }, - "bin": { - "write-markdown": "dist/write-markdown.js" - } - }, - "node_modules/ts-command-line-args/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ts-command-line-args/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ts-command-line-args/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ts-command-line-args/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==", - "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, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-command-line-args/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-essentials": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", - "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", - "dev": true, - "peerDependencies": { - "typescript": ">=3.7.0" - } - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "devOptional": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "devOptional": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/tsort": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", - "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "node_modules/tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typechain": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.1.tgz", - "integrity": "sha512-fA7clol2IP/56yq6vkMTR+4URF1nGjV82Wx6Rf09EsqD4tkzMAvEaqYxVFCavJm/1xaRga/oD55K+4FtuXwQOQ==", - "dev": true, - "dependencies": { - "@types/prettier": "^2.1.1", - "debug": "^4.3.1", - "fs-extra": "^7.0.0", - "glob": "7.1.7", - "js-sha3": "^0.8.0", - "lodash": "^4.17.15", - "mkdirp": "^1.0.4", - "prettier": "^2.3.1", - "ts-command-line-args": "^2.2.0", - "ts-essentials": "^7.0.1" - }, - "bin": { - "typechain": "dist/cli/cli.js" - }, - "peerDependencies": { - "typescript": ">=4.3.0" - } - }, - "node_modules/typechain/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/typechain/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/typechain/node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - } - }, - "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==", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "devOptional": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/u2f-api": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/u2f-api/-/u2f-api-0.2.7.tgz", - "integrity": "sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg==" - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undici": { - "version": "5.25.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.25.2.tgz", - "integrity": "sha512-tch8RbCfn1UUH1PeVCXva4V8gDpGAud/w0WubD6sHC46vYQ3KDxL+xv1A2UxK0N6jrVedutuPHxe1XIoqerwMw==", - "dependencies": { - "busboy": "^1.6.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "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/unorm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", - "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==", - "engines": { - "node": ">= 0.4.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/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", - "dev": true - }, - "node_modules/upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==", - "dev": true, - "dependencies": { - "upper-case": "^1.1.1" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", - "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", - "dev": true, - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.11.2" - } - }, - "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/url/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "node_modules/url/node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/usb": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/usb/-/usb-1.9.2.tgz", - "integrity": "sha512-dryNz030LWBPAf6gj8vyq0Iev3vPbCLHCT8dBw3gQRXRzVNsIdeuU+VjPp3ksmSPkeMAl1k+kQ14Ij0QHyeiAg==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "node-addon-api": "^4.2.0", - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/usb/node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "optional": true - }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "devOptional": true - }, - "node_modules/valid-url": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==" - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/web3": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.3.tgz", - "integrity": "sha512-DgUdOOqC/gTqW+VQl1EdPxrVRPB66xVNtuZ5KD4adVBtko87hkgM8BTZ0lZ8IbUfnQk6DyjcDujMiH3oszllAw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.10.3", - "web3-core": "1.10.3", - "web3-eth": "1.10.3", - "web3-eth-personal": "1.10.3", - "web3-net": "1.10.3", - "web3-shh": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.3.tgz", - "integrity": "sha512-XDIRsTwekdBXtFytMpHBuun4cK4x0ZMIDXSoo1UVYp+oMyZj07c7gf7tNQY5qZ/sN+CJIas4ilhN25VJcjSijQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "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-core": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.3.tgz", - "integrity": "sha512-Vbk0/vUNZxJlz3RFjAhNNt7qTpX8yE3dn3uFxfX5OHbuon5u65YEOd3civ/aQNW745N0vGUlHFNxxmn+sG9DIw==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.3", - "web3-core-method": "1.10.3", - "web3-core-requestmanager": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-helpers": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz", - "integrity": "sha512-pIxAzFDS5vnbXvfvLSpaA1tfRykAe9adw43YCKsEYQwH0gCLL0kMLkaCX3q+Q8EVmAh+e1jWL/nl9U0de1+++g==", - "dependencies": { - "web3-eth-iban": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-helpers/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-method": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.3.tgz", - "integrity": "sha512-VZ/Dmml4NBmb0ep5PTSg9oqKoBtG0/YoMPei/bq/tUdlhB2dMB79sbeJPwx592uaV0Vpk7VltrrrBv5hTM1y4Q==", - "dev": true, - "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.3", - "web3-core-promievent": "1.10.3", - "web3-core-subscriptions": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-method/node_modules/web3-core-helpers": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", - "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", - "dev": true, - "dependencies": { - "web3-eth-iban": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-method/node_modules/web3-core-promievent": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.3.tgz", - "integrity": "sha512-HgjY+TkuLm5uTwUtaAfkTgRx/NzMxvVradCi02gy17NxDVdg/p6svBHcp037vcNpkuGeFznFJgULP+s2hdVgUQ==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-method/node_modules/web3-eth-iban": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", - "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-promievent": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.0.tgz", - "integrity": "sha512-68N7k5LWL5R38xRaKFrTFT2pm2jBNFaM4GioS00YjAKXRQ3KjmhijOMG3TICz6Aa5+6GDWYelDNx21YAeZ4YTg==", - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-requestmanager": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.3.tgz", - "integrity": "sha512-VT9sKJfgM2yBOIxOXeXiDuFMP4pxzF6FT+y8KTLqhDFHkbG3XRe42Vm97mB/IvLQCJOmokEjl3ps8yP1kbggyw==", - "dev": true, - "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.3", - "web3-providers-http": "1.10.3", - "web3-providers-ipc": "1.10.3", - "web3-providers-ws": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-requestmanager/node_modules/web3-core-helpers": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", - "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", - "dev": true, - "dependencies": { - "web3-eth-iban": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-requestmanager/node_modules/web3-eth-iban": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", - "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.3.tgz", - "integrity": "sha512-KW0Mc8sgn70WadZu7RjQ4H5sNDJ5Lx8JMI3BWos+f2rW0foegOCyWhRu33W1s6ntXnqeBUw5rRCXZRlA3z+HNA==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions/node_modules/web3-core-helpers": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", - "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", - "dev": true, - "dependencies": { - "web3-eth-iban": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions/node_modules/web3-eth-iban": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", - "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core/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-core/node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/web3-core/node_modules/web3-core-helpers": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", - "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", - "dev": true, - "dependencies": { - "web3-eth-iban": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core/node_modules/web3-eth-iban": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", - "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.3.tgz", - "integrity": "sha512-Uk1U2qGiif2mIG8iKu23/EQJ2ksB1BQXy3wF3RvFuyxt8Ft9OEpmGlO7wOtAyJdoKzD5vcul19bJpPcWSAYZhA==", - "dev": true, - "dependencies": { - "web3-core": "1.10.3", - "web3-core-helpers": "1.10.3", - "web3-core-method": "1.10.3", - "web3-core-subscriptions": "1.10.3", - "web3-eth-abi": "1.10.3", - "web3-eth-accounts": "1.10.3", - "web3-eth-contract": "1.10.3", - "web3-eth-ens": "1.10.3", - "web3-eth-iban": "1.10.3", - "web3-eth-personal": "1.10.3", - "web3-net": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz", - "integrity": "sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg==", - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.3.tgz", - "integrity": "sha512-8MipGgwusDVgn7NwKOmpeo3gxzzd+SmwcWeBdpXknuyDiZSQy9tXe+E9LeFGrmys/8mLLYP79n3jSbiTyv+6pQ==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "2.6.5", - "@ethereumjs/tx": "3.5.2", - "@ethereumjs/util": "^8.1.0", - "eth-lib": "0.2.8", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.3", - "web3-core-helpers": "1.10.3", - "web3-core-method": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts/node_modules/@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/web3-eth-accounts/node_modules/@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/web3-eth-accounts/node_modules/eth-lib/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/web3-eth-accounts/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/web3-eth-accounts/node_modules/web3-core-helpers": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", - "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", - "dev": true, - "dependencies": { - "web3-eth-iban": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts/node_modules/web3-eth-iban": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", - "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-contract": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.3.tgz", - "integrity": "sha512-Y2CW61dCCyY4IoUMD4JsEQWrILX4FJWDWC/Txx/pr3K/+fGsBGvS9kWQN5EsVXOp4g7HoFOfVh9Lf7BmVVSRmg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.3", - "web3-core-helpers": "1.10.3", - "web3-core-method": "1.10.3", - "web3-core-promievent": "1.10.3", - "web3-core-subscriptions": "1.10.3", - "web3-eth-abi": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-contract/node_modules/web3-core-helpers": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", - "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", - "dev": true, - "dependencies": { - "web3-eth-iban": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-contract/node_modules/web3-core-promievent": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.3.tgz", - "integrity": "sha512-HgjY+TkuLm5uTwUtaAfkTgRx/NzMxvVradCi02gy17NxDVdg/p6svBHcp037vcNpkuGeFznFJgULP+s2hdVgUQ==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-contract/node_modules/web3-eth-abi": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.3.tgz", - "integrity": "sha512-O8EvV67uhq0OiCMekqYsDtb6FzfYzMXT7VMHowF8HV6qLZXCGTdB/NH4nJrEh2mFtEwVdS6AmLFJAQd2kVyoMQ==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-contract/node_modules/web3-eth-iban": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", - "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-ens": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.3.tgz", - "integrity": "sha512-hR+odRDXGqKemw1GFniKBEXpjYwLgttTES+bc7BfTeoUyUZXbyDHe5ifC+h+vpzxh4oS0TnfcIoarK0Z9tFSiQ==", - "dev": true, - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.3", - "web3-core-helpers": "1.10.3", - "web3-core-promievent": "1.10.3", - "web3-eth-abi": "1.10.3", - "web3-eth-contract": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-ens/node_modules/web3-core-helpers": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", - "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", - "dev": true, - "dependencies": { - "web3-eth-iban": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-ens/node_modules/web3-core-promievent": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.3.tgz", - "integrity": "sha512-HgjY+TkuLm5uTwUtaAfkTgRx/NzMxvVradCi02gy17NxDVdg/p6svBHcp037vcNpkuGeFznFJgULP+s2hdVgUQ==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-ens/node_modules/web3-eth-abi": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.3.tgz", - "integrity": "sha512-O8EvV67uhq0OiCMekqYsDtb6FzfYzMXT7VMHowF8HV6qLZXCGTdB/NH4nJrEh2mFtEwVdS6AmLFJAQd2kVyoMQ==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-ens/node_modules/web3-eth-iban": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", - "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-iban": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.0.tgz", - "integrity": "sha512-0l+SP3IGhInw7Q20LY3IVafYEuufo4Dn75jAHT7c2aDJsIolvf2Lc6ugHkBajlwUneGfbRQs/ccYPQ9JeMUbrg==", - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-iban/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.3.tgz", - "integrity": "sha512-avrQ6yWdADIvuNQcFZXmGLCEzulQa76hUOuVywN7O3cklB4nFc/Gp3yTvD3bOAaE7DhjLQfhUTCzXL7WMxVTsw==", - "dev": true, - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.10.3", - "web3-core-helpers": "1.10.3", - "web3-core-method": "1.10.3", - "web3-net": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal/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-eth-personal/node_modules/web3-core-helpers": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", - "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", - "dev": true, - "dependencies": { - "web3-eth-iban": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal/node_modules/web3-eth-iban": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", - "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth/node_modules/web3-core-helpers": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", - "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", - "dev": true, - "dependencies": { - "web3-eth-iban": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth/node_modules/web3-eth-abi": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.3.tgz", - "integrity": "sha512-O8EvV67uhq0OiCMekqYsDtb6FzfYzMXT7VMHowF8HV6qLZXCGTdB/NH4nJrEh2mFtEwVdS6AmLFJAQd2kVyoMQ==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth/node_modules/web3-eth-iban": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", - "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-net": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.3.tgz", - "integrity": "sha512-IoSr33235qVoI1vtKssPUigJU9Fc/Ph0T9CgRi15sx+itysmvtlmXMNoyd6Xrgm9LuM4CIhxz7yDzH93B79IFg==", - "dev": true, - "dependencies": { - "web3-core": "1.10.3", - "web3-core-method": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-provider-engine": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.3.tgz", - "integrity": "sha512-Q3bKhGqLfMTdLvkd4TtkGYJHcoVQ82D1l8jTIwwuJp/sAp7VHnRYb9YJ14SW/69VMWoOhSpPLZV2tWb9V0WJoA==", - "dependencies": { - "@ethereumjs/tx": "^3.3.0", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-filters": "^4.2.1", - "eth-json-rpc-infura": "^5.1.0", - "eth-json-rpc-middleware": "^6.0.0", - "eth-rpc-errors": "^3.0.0", - "eth-sig-util": "^1.4.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/web3-provider-engine/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/web3-provider-engine/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/web3-provider-engine/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/web3-provider-engine/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==", - "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" - } - }, - "node_modules/web3-provider-engine/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/web3-provider-engine/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==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/web3-provider-engine/node_modules/ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/web3-providers-http": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.3.tgz", - "integrity": "sha512-6dAgsHR3MxJ0Qyu3QLFlQEelTapVfWNTu5F45FYh8t7Y03T1/o+YAkVxsbY5AdmD+y5bXG/XPJ4q8tjL6MgZHw==", - "dev": true, - "dependencies": { - "abortcontroller-polyfill": "^1.7.5", - "cross-fetch": "^4.0.0", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-http/node_modules/cross-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", - "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", - "dev": true, - "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "node_modules/web3-providers-http/node_modules/web3-core-helpers": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", - "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", - "dev": true, - "dependencies": { - "web3-eth-iban": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-http/node_modules/web3-eth-iban": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", - "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.3.tgz", - "integrity": "sha512-vP5WIGT8FLnGRfswTxNs9rMfS1vCbMezj/zHbBe/zB9GauBRTYVrUo2H/hVrhLg8Ut7AbsKZ+tCJ4mAwpKi2hA==", - "dev": true, - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc/node_modules/web3-core-helpers": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", - "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", - "dev": true, - "dependencies": { - "web3-eth-iban": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc/node_modules/web3-eth-iban": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", - "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.3.tgz", - "integrity": "sha512-/filBXRl48INxsh6AuCcsy4v5ndnTZ/p6bl67kmO9aK1wffv7CT++DrtclDtVMeDGCgB3van+hEf9xTAVXur7Q==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.3", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws/node_modules/web3-core-helpers": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz", - "integrity": "sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==", - "dev": true, - "dependencies": { - "web3-eth-iban": "1.10.3", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws/node_modules/web3-eth-iban": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz", - "integrity": "sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-shh": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.3.tgz", - "integrity": "sha512-cAZ60CPvs9azdwMSQ/PSUdyV4PEtaW5edAZhu3rCXf6XxQRliBboic+AvwUvB6j3eswY50VGa5FygfVmJ1JVng==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-core": "1.10.3", - "web3-core-method": "1.10.3", - "web3-core-subscriptions": "1.10.3", - "web3-net": "1.10.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.3.tgz", - "integrity": "sha512-OqcUrEE16fDBbGoQtZXWdavsPzbGIDc5v3VrRTZ0XrIpefC/viZ1ZU9bGEemazyS0catk/3rkOOxpzTfY+XsyQ==", - "dependencies": { - "@ethereumjs/util": "^8.1.0", - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereum-cryptography": "^2.1.2", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils/node_modules/ethereum-cryptography": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz", - "integrity": "sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug==", - "dependencies": { - "@noble/curves": "1.1.0", - "@noble/hashes": "1.3.1", - "@scure/bip32": "1.3.1", - "@scure/bip39": "1.2.1" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/websocket/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true - }, - "node_modules/which-pm-runs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", - "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "devOptional": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/window-size": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", - "integrity": "sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==", - "dev": true, - "bin": { - "window-size": "cli.js" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" - }, - "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, - "dependencies": { - "reduce-flatten": "^2.0.0", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/wordwrapjs/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "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/wrap-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/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "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/xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "node_modules/xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "node_modules/xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} From c6ca3dababe3738891b74505d0445c114c288b07 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 22 Jan 2024 12:44:23 +1000 Subject: [PATCH 069/100] Fixed yarn merge issue --- contracts/mocks/MockOnReceive.sol | 6 +- package.json | 3 +- yarn.lock | 4953 ++++------------------------- 3 files changed, 651 insertions(+), 4311 deletions(-) diff --git a/contracts/mocks/MockOnReceive.sol b/contracts/mocks/MockOnReceive.sol index fc014515..aa40379b 100644 --- a/contracts/mocks/MockOnReceive.sol +++ b/contracts/mocks/MockOnReceive.sol @@ -13,10 +13,10 @@ contract MockOnReceive { // Attempt to transfer token to another address on receive function onERC721Received( - address /* operator */, - address /* from */, + address operator, + address from, uint256 tokenId, - bytes calldata /* data */ + bytes calldata data ) public returns (bytes4) { tokenAddress.transferFrom(address(this), recipient, tokenId); return this.onERC721Received.selector; diff --git a/package.json b/package.json index 0d3db0ca..da0b5bce 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "eslint-plugin-promise": "^6.1.1", "ethereum-waffle": "^4.0.10", "ethers": "^5.7.2", - "hardhat": "^2.17.3", + "hardhat": "^2.12.7", "hardhat-gas-reporter": "^1.0.9", "prettier": "^3.2.4", "prettier-plugin-solidity": "^1.3.1", @@ -69,7 +69,6 @@ "@openzeppelin/contracts": "^4.9.3", "@openzeppelin/contracts-upgradeable": "^4.9.3", "@rari-capital/solmate": "^6.4.0", - "chainlink": "^0.8.2", "openzeppelin-contracts-upgradeable-4.9.3": "npm:@openzeppelin/contracts-upgradeable@^4.9.3", "seaport": "https://github.com/immutable/seaport.git#1.5.0+im.1.3", "solidity-bits": "^0.4.0", diff --git a/yarn.lock b/yarn.lock index 61fc54a8..61e9d130 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,276 +2,6 @@ # yarn lockfile v1 -"@0x/assert@^3.0.34", "@0x/assert@^3.0.36": - version "3.0.36" - resolved "https://registry.npmjs.org/@0x/assert/-/assert-3.0.36.tgz" - integrity sha512-sUtrV5MhixXvWZpATjFqIDtgvvv64duSTuOyPdPJjB+/Lcl5jQhlSNuoN0X3XP0P79Sp+6tuez5MupgFGPA2QQ== - dependencies: - "@0x/json-schemas" "^6.4.6" - "@0x/typescript-typings" "^5.3.2" - "@0x/utils" "^7.0.0" - "@types/node" "12.12.54" - lodash "^4.17.21" - valid-url "^1.0.9" - -"@0x/dev-utils@^5.0.3": - version "5.0.3" - resolved "https://registry.npmjs.org/@0x/dev-utils/-/dev-utils-5.0.3.tgz" - integrity sha512-V58tT2aiiHNSQtEt2XQWZDsPMsQ4wPDnjZRUaW38W46QasIFfCbcpKmfCsAGJyFxM7t0m0JJJwmYTJwZhCGcoQ== - dependencies: - "@0x/subproviders" "^8.0.1" - "@0x/types" "^3.3.7" - "@0x/typescript-typings" "^5.3.2" - "@0x/utils" "^7.0.0" - "@0x/web3-wrapper" "^8.0.1" - "@types/node" "12.12.54" - "@types/web3-provider-engine" "^14.0.0" - chai "^4.0.1" - chai-as-promised "^7.1.0" - chai-bignumber "^3.0.0" - dirty-chai "^2.0.1" - ethereum-types "^3.7.1" - lodash "^4.17.21" - web3-provider-engine "16.0.4" - -"@0x/json-schemas@^6.4.4", "@0x/json-schemas@^6.4.6": - version "6.4.6" - resolved "https://registry.npmjs.org/@0x/json-schemas/-/json-schemas-6.4.6.tgz" - integrity sha512-TaqvhOkmLN/vkcpMUNVFZBTnWP05ZVo9iGAnP1CG/B8l4rvnUbLZvWx8KeDKs62I/5d7jdYISvXyOwP4EwrG4w== - dependencies: - "@0x/typescript-typings" "^5.3.2" - "@types/node" "12.12.54" - ajv "^6.12.5" - lodash.values "^4.3.0" - -"@0x/sol-compiler@^4.8.5": - version "4.8.5" - resolved "https://registry.npmjs.org/@0x/sol-compiler/-/sol-compiler-4.8.5.tgz" - integrity sha512-hAc3ZjpD+/fgSt/UQaAim8d2fQL3kWpnP5+tSEVf3/xetDDp3BhTOMi+wKnVuYo9FzuTgHx5MFueWM+mojE41A== - dependencies: - "@0x/assert" "^3.0.36" - "@0x/json-schemas" "^6.4.6" - "@0x/sol-resolver" "^3.1.13" - "@0x/types" "^3.3.7" - "@0x/typescript-typings" "^5.3.2" - "@0x/utils" "^7.0.0" - "@0x/web3-wrapper" "^8.0.1" - "@types/node" "12.12.54" - "@types/yargs" "^11.0.0" - chalk "^2.3.0" - chokidar "^3.0.2" - ethereum-types "^3.7.1" - ethereumjs-util "^7.1.5" - lodash "^4.17.21" - mkdirp "^0.5.1" - pluralize "^7.0.0" - require-from-string "^2.0.1" - semver "5.5.0" - solc "^0.8" - source-map-support "^0.5.0" - strip-comments "^2.0.1" - web3-eth-abi "^1.0.0-beta.24" - yargs "^17.5.1" - -"@0x/sol-resolver@^3.1.13": - version "3.1.13" - resolved "https://registry.npmjs.org/@0x/sol-resolver/-/sol-resolver-3.1.13.tgz" - integrity sha512-nQHqW7sOsDEH4ejH9nu60sCgFXEW08LM0v+5DimA/R7MizOW4LAG7OoHM+Oq8uPcHbeU0peFEDOW0idBsIzZ6g== - dependencies: - "@0x/types" "^3.3.7" - "@0x/typescript-typings" "^5.3.2" - "@types/node" "12.12.54" - lodash "^4.17.21" - -"@0x/sol-trace@^3.0.4": - version "3.0.49" - resolved "https://registry.npmjs.org/@0x/sol-trace/-/sol-trace-3.0.49.tgz" - integrity sha512-mCNbUCX6Oh1Z1e1g4AsD7sSbgMN7IGQyR0w+4xQYApgjwtYOaRPZMiluMXqp9nNHX75LwCfVd7NEIJIUMVQf2A== - dependencies: - "@0x/sol-tracing-utils" "^7.3.5" - "@0x/subproviders" "^8.0.1" - "@0x/typescript-typings" "^5.3.2" - "@types/node" "12.12.54" - chalk "^2.3.0" - ethereum-types "^3.7.1" - ethereumjs-util "^7.1.5" - lodash "^4.17.21" - loglevel "^1.6.1" - web3-provider-engine "16.0.4" - -"@0x/sol-tracing-utils@^7.3.5": - version "7.3.5" - resolved "https://registry.npmjs.org/@0x/sol-tracing-utils/-/sol-tracing-utils-7.3.5.tgz" - integrity sha512-KzLTcUcLiQD5N/NzkZnIwI0i4w775z4w/H0o2FeM3Gp/0BcBx2DZ+sqKVoCEUSussm+jx2v8MNJnM3wcdvvDlg== - dependencies: - "@0x/dev-utils" "^5.0.3" - "@0x/sol-compiler" "^4.8.5" - "@0x/sol-resolver" "^3.1.13" - "@0x/subproviders" "^8.0.1" - "@0x/typescript-typings" "^5.3.2" - "@0x/utils" "^7.0.0" - "@0x/web3-wrapper" "^8.0.1" - "@types/node" "12.12.54" - "@types/solidity-parser-antlr" "^0.2.3" - chalk "^2.3.0" - ethereum-types "^3.7.1" - ethereumjs-util "^7.1.5" - ethers "~4.0.4" - glob "^7.1.2" - istanbul "^0.4.5" - lodash "^4.17.21" - loglevel "^1.6.1" - mkdirp "^0.5.1" - rimraf "^2.6.2" - semaphore-async-await "^1.5.1" - solc "^0.8" - solidity-parser-antlr "^0.4.2" - -"@0x/subproviders@^6.0.4": - version "6.6.5" - resolved "https://registry.npmjs.org/@0x/subproviders/-/subproviders-6.6.5.tgz" - integrity sha512-tpkKH5XBgrlO4K9dMNqsYiTgrAOJUnThiu73y9tYl4mwX/1gRpyG1EebvD8w6VKPrLjnyPyMw50ZvTyaYgbXNQ== - dependencies: - "@0x/assert" "^3.0.34" - "@0x/types" "^3.3.6" - "@0x/typescript-typings" "^5.3.1" - "@0x/utils" "^6.5.3" - "@0x/web3-wrapper" "^7.6.5" - "@ethereumjs/common" "^2.4.0" - "@ethereumjs/tx" "^3.3.0" - "@ledgerhq/hw-app-eth" "^4.3.0" - "@ledgerhq/hw-transport-u2f" "4.24.0" - "@types/hdkey" "^0.7.0" - "@types/node" "12.12.54" - "@types/web3-provider-engine" "^14.0.0" - bip39 "^2.5.0" - bn.js "^4.11.8" - ethereum-types "^3.7.0" - ethereumjs-util "^7.1.0" - ganache-core "^2.13.2" - hdkey "^0.7.1" - json-rpc-error "2.0.0" - lodash "^4.17.11" - semaphore-async-await "^1.5.1" - web3-provider-engine "14.0.6" - optionalDependencies: - "@ledgerhq/hw-transport-node-hid" "^4.3.0" - -"@0x/subproviders@^8.0.1": - version "8.0.1" - resolved "https://registry.npmjs.org/@0x/subproviders/-/subproviders-8.0.1.tgz" - integrity sha512-Lax7Msb1Ef9D6Dd7PQ19oPgjl5GIrKje7XsrO7YCfx5A0RM3Hr4nSQIxgg78jwvuulSFxQ5Sr8WiZ2hTHATtQg== - dependencies: - "@0x/assert" "^3.0.36" - "@0x/types" "^3.3.7" - "@0x/typescript-typings" "^5.3.2" - "@0x/utils" "^7.0.0" - "@0x/web3-wrapper" "^8.0.1" - "@ethereumjs/common" "^2.6.3" - "@ethereumjs/tx" "^3.5.1" - "@types/hdkey" "^0.7.0" - "@types/node" "12.12.54" - "@types/web3-provider-engine" "^14.0.0" - bip39 "2.5.0" - ethereum-types "^3.7.1" - ethereumjs-util "^7.1.5" - ganache "^7.4.0" - hdkey "2.1.0" - json-rpc-error "2.0.0" - lodash "^4.17.21" - web3-provider-engine "16.0.4" - -"@0x/types@^3.3.6", "@0x/types@^3.3.7": - version "3.3.7" - resolved "https://registry.npmjs.org/@0x/types/-/types-3.3.7.tgz" - integrity sha512-6lPXPnvKaIfAJ5hIgs81SytqNCPCLstQ/DA598iLpb90KKjjz8QsdrfII4JeKdrEREvLcWSH9SeH4sNPWyLhlA== - dependencies: - "@types/node" "12.12.54" - bignumber.js "~9.0.2" - ethereum-types "^3.7.1" - -"@0x/typescript-typings@^5.3.1", "@0x/typescript-typings@^5.3.2": - version "5.3.2" - resolved "https://registry.npmjs.org/@0x/typescript-typings/-/typescript-typings-5.3.2.tgz" - integrity sha512-VIo8PS/IRXrI1aEzM8TenUMViX4MFMKBnIAwqC4K/ewVDSnKyYZSk8fzw0XZph6tN07obchPf+1sHIWYe8EUow== - dependencies: - "@types/bn.js" "^4.11.0" - "@types/node" "12.12.54" - "@types/react" "*" - bignumber.js "~9.0.2" - ethereum-types "^3.7.1" - popper.js "1.14.3" - -"@0x/utils@^6.5.3": - version "6.5.3" - resolved "https://registry.npmjs.org/@0x/utils/-/utils-6.5.3.tgz" - integrity sha512-C8Af9MeNvWTtSg5eEOObSZ+7gjOGSHkhqDWv8iPfrMMt7yFkAjHxpXW+xufk6ZG2VTg+hel82GDyhKaGtoQZDA== - dependencies: - "@0x/types" "^3.3.6" - "@0x/typescript-typings" "^5.3.1" - "@types/mocha" "^5.2.7" - "@types/node" "12.12.54" - abortcontroller-polyfill "^1.1.9" - bignumber.js "~9.0.2" - chalk "^2.3.0" - detect-node "2.0.3" - ethereum-types "^3.7.0" - ethereumjs-util "^7.1.0" - ethers "~4.0.4" - isomorphic-fetch "2.2.1" - js-sha3 "^0.7.0" - lodash "^4.17.11" - -"@0x/utils@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@0x/utils/-/utils-7.0.0.tgz" - integrity sha512-g+Bp0eHUGhnVGeVZqGn7UVtpzs/FuoXksiDaajfJrHFW0owwo5YwpwFIAVU7/ca0B6IKa74e71gskLwWGINEFg== - dependencies: - "@0x/types" "^3.3.7" - "@0x/typescript-typings" "^5.3.2" - "@types/mocha" "^5.2.7" - "@types/node" "12.12.54" - abortcontroller-polyfill "^1.1.9" - bignumber.js "~9.0.2" - chalk "^2.3.0" - detect-node "2.0.3" - ethereum-types "^3.7.1" - ethereumjs-util "^7.1.5" - ethers "~4.0.4" - isomorphic-fetch "^3.0.0" - js-sha3 "^0.7.0" - lodash "^4.17.21" - -"@0x/web3-wrapper@^7.6.5": - version "7.6.5" - resolved "https://registry.npmjs.org/@0x/web3-wrapper/-/web3-wrapper-7.6.5.tgz" - integrity sha512-AyaisigXUsuwLcLqfji7DzQ+komL9NpaH1k2eTZMn7sxPfZZBSIMFbu3vgSKYvRnJdrXrkeKjE5h0BhIvTngMA== - dependencies: - "@0x/assert" "^3.0.34" - "@0x/json-schemas" "^6.4.4" - "@0x/typescript-typings" "^5.3.1" - "@0x/utils" "^6.5.3" - "@types/node" "12.12.54" - ethereum-types "^3.7.0" - ethereumjs-util "^7.1.0" - ethers "~4.0.4" - lodash "^4.17.11" - -"@0x/web3-wrapper@^8.0.1": - version "8.0.1" - resolved "https://registry.npmjs.org/@0x/web3-wrapper/-/web3-wrapper-8.0.1.tgz" - integrity sha512-2rqugeCld5r/3yg+Un9sPCUNVeZW5J64Fm6i/W6qRE87X+spIJG48oJymTjSMDXw/w3FaP4nAvhSj2C5fvhN6w== - dependencies: - "@0x/assert" "^3.0.36" - "@0x/json-schemas" "^6.4.6" - "@0x/typescript-typings" "^5.3.2" - "@0x/utils" "^7.0.0" - "@types/node" "12.12.54" - ethereum-types "^3.7.1" - ethereumjs-util "^7.1.5" - ethers "~4.0.4" - lodash "^4.17.21" - "@aashutoshrathi/word-wrap@^1.2.3": version "1.2.6" resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" @@ -509,20 +239,6 @@ "@openzeppelin/contracts-upgradeable-4.7.3" "npm:@openzeppelin/contracts-upgradeable@v4.7.3" "@openzeppelin/contracts-v0.7" "npm:@openzeppelin/contracts@v3.4.2" -"@chainlink/test-helpers@0.0.1": - version "0.0.1" - resolved "https://registry.npmjs.org/@chainlink/test-helpers/-/test-helpers-0.0.1.tgz" - integrity sha512-rxNg1R9ywhttvFCQWEA6KVR9Zr88cm+YgaXA3DD6QYP3GKtVX4U1AvJvrgP0gIM/Kk0a/wvJnY/3p644HmWNAg== - dependencies: - "@0x/sol-trace" "^3.0.4" - "@0x/subproviders" "^6.0.4" - bn.js "^4.11.0" - cbor "^5.0.1" - chai "^4.2.0" - chalk "^2.4.2" - debug "^4.1.1" - ethers "^4.0.41" - "@chainsafe/as-sha256@^0.3.1": version "0.3.1" resolved "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz" @@ -738,15 +454,23 @@ lru-cache "^5.1.1" semaphore-async-await "^1.5.1" -"@ethereumjs/common@^2.4.0", "@ethereumjs/common@^2.6.0", "@ethereumjs/common@2.6.0": - version "2.6.0" - resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.0.tgz" - integrity sha512-Cq2qS0FTu6O2VU1sgg+WyU9Ps0M6j/BEMHN+hRaECXCV/r0aI78u4N6p52QW/BDVhwWZpCdrvG8X7NJdzlpNUA== +"@ethereumjs/common@^2.4.0", "@ethereumjs/common@^2.6.0", "@ethereumjs/common@^2.6.4", "@ethereumjs/common@^2.6.5": + version "2.6.5" + resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz" + integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== dependencies: crc-32 "^1.2.0" - ethereumjs-util "^7.1.3" + ethereumjs-util "^7.1.5" + +"@ethereumjs/common@^2.5.0": + version "2.6.5" + resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz" + integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== + dependencies: + crc-32 "^1.2.0" + ethereumjs-util "^7.1.5" -"@ethereumjs/common@^2.5.0", "@ethereumjs/common@2.5.0": +"@ethereumjs/common@2.5.0": version "2.5.0" resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz" integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg== @@ -754,13 +478,13 @@ crc-32 "^1.2.0" ethereumjs-util "^7.1.1" -"@ethereumjs/common@^2.6.3", "@ethereumjs/common@^2.6.4", "@ethereumjs/common@^2.6.5", "@ethereumjs/common@2.6.5": - version "2.6.5" - resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz" - integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== +"@ethereumjs/common@2.6.0": + version "2.6.0" + resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.0.tgz" + integrity sha512-Cq2qS0FTu6O2VU1sgg+WyU9Ps0M6j/BEMHN+hRaECXCV/r0aI78u4N6p52QW/BDVhwWZpCdrvG8X7NJdzlpNUA== dependencies: crc-32 "^1.2.0" - ethereumjs-util "^7.1.5" + ethereumjs-util "^7.1.3" "@ethereumjs/ethash@^1.1.0": version "1.1.0" @@ -778,23 +502,7 @@ resolved "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz" integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== -"@ethereumjs/tx@^3.3.0", "@ethereumjs/tx@^3.4.0", "@ethereumjs/tx@3.4.0": - version "3.4.0" - resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.4.0.tgz" - integrity sha512-WWUwg1PdjHKZZxPPo274ZuPsJCWV3SqATrEKQP1n2DrVYVP1aZIYpo/mFaA0BDoE0tIQmBeimRCEA0Lgil+yYw== - dependencies: - "@ethereumjs/common" "^2.6.0" - ethereumjs-util "^7.1.3" - -"@ethereumjs/tx@^3.5.1": - version "3.5.2" - resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz" - integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== - dependencies: - "@ethereumjs/common" "^2.6.4" - ethereumjs-util "^7.1.5" - -"@ethereumjs/tx@^3.5.2": +"@ethereumjs/tx@^3.3.0", "@ethereumjs/tx@^3.4.0", "@ethereumjs/tx@^3.5.2": version "3.5.2" resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz" integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== @@ -810,13 +518,13 @@ "@ethereumjs/common" "^2.5.0" ethereumjs-util "^7.1.2" -"@ethereumjs/tx@3.5.2": - version "3.5.2" - resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz" - integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== +"@ethereumjs/tx@3.4.0": + version "3.4.0" + resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.4.0.tgz" + integrity sha512-WWUwg1PdjHKZZxPPo274ZuPsJCWV3SqATrEKQP1n2DrVYVP1aZIYpo/mFaA0BDoE0tIQmBeimRCEA0Lgil+yYw== dependencies: - "@ethereumjs/common" "^2.6.4" - ethereumjs-util "^7.1.5" + "@ethereumjs/common" "^2.6.0" + ethereumjs-util "^7.1.3" "@ethereumjs/util@^8.1.0": version "8.1.0" @@ -860,30 +568,6 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/abi@5.0.0-beta.153": - version "5.0.0-beta.153" - dependencies: - "@ethersproject/address" ">=5.0.0-beta.128" - "@ethersproject/bignumber" ">=5.0.0-beta.130" - "@ethersproject/bytes" ">=5.0.0-beta.129" - "@ethersproject/constants" ">=5.0.0-beta.128" - "@ethersproject/hash" ">=5.0.0-beta.128" - "@ethersproject/keccak256" ">=5.0.0-beta.127" - "@ethersproject/logger" ">=5.0.0-beta.129" - "@ethersproject/properties" ">=5.0.0-beta.131" - "@ethersproject/strings" ">=5.0.0-beta.130" - -"@ethersproject/abstract-provider@^5.0.8": - version "5.0.8" - dependencies: - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/networks" "^5.0.7" - "@ethersproject/properties" "^5.0.7" - "@ethersproject/transactions" "^5.0.9" - "@ethersproject/web" "^5.0.12" - "@ethersproject/abstract-provider@^5.7.0", "@ethersproject/abstract-provider@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz" @@ -897,15 +581,6 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@^5.0.10": - version "5.0.10" - dependencies: - "@ethersproject/abstract-provider" "^5.0.8" - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/properties" "^5.0.7" - "@ethersproject/abstract-signer@^5.7.0", "@ethersproject/abstract-signer@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz" @@ -928,20 +603,6 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/rlp" "^5.7.0" -"@ethersproject/address@^5.0.9", "@ethersproject/address@>=5.0.0-beta.128": - version "5.0.9" - dependencies: - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/keccak256" "^5.0.7" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/rlp" "^5.0.7" - -"@ethersproject/base64@^5.0.7": - version "5.0.7" - dependencies: - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/base64@^5.7.0", "@ethersproject/base64@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz" @@ -957,13 +618,6 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@^5.0.13", "@ethersproject/bignumber@>=5.0.0-beta.130": - version "5.0.13" - dependencies: - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - bn.js "^4.4.0" - "@ethersproject/bignumber@^5.7.0", "@ethersproject/bignumber@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz" @@ -973,11 +627,6 @@ "@ethersproject/logger" "^5.7.0" bn.js "^5.2.1" -"@ethersproject/bytes@^5.0.9", "@ethersproject/bytes@>=5.0.0-beta.129": - version "5.0.9" - dependencies: - "@ethersproject/logger" "^5.0.8" - "@ethersproject/bytes@^5.7.0", "@ethersproject/bytes@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz" @@ -985,11 +634,6 @@ dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/constants@^5.0.8", "@ethersproject/constants@>=5.0.0-beta.128": - version "5.0.8" - dependencies: - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/constants@^5.7.0", "@ethersproject/constants@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz" @@ -1028,18 +672,6 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/hash@>=5.0.0-beta.128": - version "5.0.10" - dependencies: - "@ethersproject/abstract-signer" "^5.0.10" - "@ethersproject/address" "^5.0.9" - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/keccak256" "^5.0.7" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/properties" "^5.0.7" - "@ethersproject/strings" "^5.0.8" - "@ethersproject/hdnode@^5.7.0", "@ethersproject/hdnode@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz" @@ -1077,12 +709,6 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@^5.0.7", "@ethersproject/keccak256@>=5.0.0-beta.127": - version "5.0.7" - dependencies: - "@ethersproject/bytes" "^5.0.9" - js-sha3 "0.5.7" - "@ethersproject/keccak256@^5.7.0", "@ethersproject/keccak256@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz" @@ -1091,19 +717,11 @@ "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/logger@^5.0.8", "@ethersproject/logger@>=5.0.0-beta.129": - version "5.0.8" - "@ethersproject/logger@^5.7.0", "@ethersproject/logger@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== -"@ethersproject/networks@^5.0.7": - version "5.0.7" - dependencies: - "@ethersproject/logger" "^5.0.8" - "@ethersproject/networks@^5.7.0", "@ethersproject/networks@5.7.1": version "5.7.1" resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz" @@ -1119,11 +737,6 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/sha2" "^5.7.0" -"@ethersproject/properties@^5.0.7", "@ethersproject/properties@>=5.0.0-beta.131": - version "5.0.7" - dependencies: - "@ethersproject/logger" "^5.0.8" - "@ethersproject/properties@^5.7.0", "@ethersproject/properties@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz" @@ -1165,12 +778,6 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@^5.0.7": - version "5.0.7" - dependencies: - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/rlp@^5.7.0", "@ethersproject/rlp@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz" @@ -1188,14 +795,6 @@ "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" -"@ethersproject/signing-key@^5.0.8": - version "5.0.8" - dependencies: - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/properties" "^5.0.7" - elliptic "6.5.3" - "@ethersproject/signing-key@^5.7.0", "@ethersproject/signing-key@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz" @@ -1220,13 +819,6 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/strings@^5.0.8", "@ethersproject/strings@>=5.0.0-beta.130": - version "5.0.8" - dependencies: - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/constants" "^5.0.8" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/strings@^5.7.0", "@ethersproject/strings@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz" @@ -1236,19 +828,6 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.0.9": - version "5.0.9" - dependencies: - "@ethersproject/address" "^5.0.9" - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/constants" "^5.0.8" - "@ethersproject/keccak256" "^5.0.7" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/properties" "^5.0.7" - "@ethersproject/rlp" "^5.0.7" - "@ethersproject/signing-key" "^5.0.8" - "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0", "@ethersproject/transactions@5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz" @@ -1294,15 +873,6 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/web@^5.0.12": - version "5.0.12" - dependencies: - "@ethersproject/base64" "^5.0.7" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/properties" "^5.0.7" - "@ethersproject/strings" "^5.0.8" - "@ethersproject/web@^5.7.0", "@ethersproject/web@5.7.1": version "5.7.1" resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz" @@ -1406,21 +976,9 @@ resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -<<<<<<< HEAD -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": -======= "@isaacs/cliui@^8.0.2": version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: string-width "^5.1.2" @@ -1430,8 +988,16 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" -"@jridgewell/resolve-uri@^3.0.3": ->>>>>>> main +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": version "3.1.1" resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== @@ -1447,9 +1013,9 @@ integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== "@jridgewell/trace-mapping@^0.3.17": - version "0.3.20" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz" - integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== + version "0.3.22" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz" + integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -1462,64 +1028,6 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@ledgerhq/devices@^4.78.0": - version "4.78.0" - resolved "https://registry.npmjs.org/@ledgerhq/devices/-/devices-4.78.0.tgz" - integrity sha512-tWKS5WM/UU82czihnVjRwz9SXNTQzWjGJ/7+j/xZ70O86nlnGJ1aaFbs5/WTzfrVKpOKgj1ZoZkAswX67i/JTw== - dependencies: - "@ledgerhq/errors" "^4.78.0" - "@ledgerhq/logs" "^4.72.0" - rxjs "^6.5.3" - -"@ledgerhq/errors@^4.78.0": - version "4.78.0" - resolved "https://registry.npmjs.org/@ledgerhq/errors/-/errors-4.78.0.tgz" - integrity sha512-FX6zHZeiNtegBvXabK6M5dJ+8OV8kQGGaGtuXDeK/Ss5EmG4Ltxc6Lnhe8hiHpm9pCHtktOsnUVL7IFBdHhYUg== - -"@ledgerhq/hw-app-eth@^4.3.0": - version "4.78.0" - resolved "https://registry.npmjs.org/@ledgerhq/hw-app-eth/-/hw-app-eth-4.78.0.tgz" - integrity sha512-m4s4Zhy4lwYJjZB3xPeGV/8mxQcnoui+Eu1KDEl6atsquZHUpbtern/0hZl88+OlFUz0XrX34W3I9cqj61Y6KA== - dependencies: - "@ledgerhq/errors" "^4.78.0" - "@ledgerhq/hw-transport" "^4.78.0" - -"@ledgerhq/hw-transport-u2f@4.24.0": - version "4.24.0" - resolved "https://registry.npmjs.org/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-4.24.0.tgz" - integrity sha512-/gFjhkM0sJfZ7iUf8HoIkGufAWgPacrbb1LW0TvWnZwvsATVJ1BZJBtrr90Wo401PKsjVwYtFt3Ce4gOAUv9jQ== - dependencies: - "@ledgerhq/hw-transport" "^4.24.0" - u2f-api "0.2.7" - -"@ledgerhq/hw-transport@^4.24.0", "@ledgerhq/hw-transport@^4.78.0": - version "4.78.0" - resolved "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-4.78.0.tgz" - integrity sha512-xQu16OMPQjFYLjqCysij+8sXtdWv2YLxPrB6FoLvEWGTlQ7yL1nUBRQyzyQtWIYqZd4THQowQmzm1VjxuN6SZw== - dependencies: - "@ledgerhq/devices" "^4.78.0" - "@ledgerhq/errors" "^4.78.0" - events "^3.0.0" - -"@ledgerhq/logs@^4.72.0": - version "4.72.0" - resolved "https://registry.npmjs.org/@ledgerhq/logs/-/logs-4.72.0.tgz" - integrity sha512-o+TYF8vBcyySRsb2kqBDv/KMeme8a2nwWoG+lAWzbDmWfb2/MrVWYCVYDYvjXdSoI/Cujqy1i0gIDrkdxa9chA== - -"@ljharb/resumer@~0.0.1": - version "0.0.1" - resolved "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.0.1.tgz" - integrity sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw== - dependencies: - "@ljharb/through" "^2.3.9" - -"@ljharb/through@^2.3.9", "@ljharb/through@~2.3.9": - version "2.3.11" - resolved "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz" - integrity sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w== - dependencies: - call-bind "^1.0.2" - "@metamask/eth-sig-util@^4.0.0", "@metamask/eth-sig-util@4.0.1": version "4.0.1" resolved "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz" @@ -1543,17 +1051,32 @@ dependencies: "@noble/hashes" "1.3.1" -"@noble/hashes@~1.1.1", "@noble/hashes@1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz" - integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== +"@noble/hashes@~1.1.1": + version "1.1.5" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz" + integrity sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ== "@noble/hashes@~1.2.0", "@noble/hashes@1.2.0": version "1.2.0" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz" integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== -"@noble/hashes@~1.3.0", "@noble/hashes@~1.3.1", "@noble/hashes@1.3.1": +"@noble/hashes@~1.3.0": + version "1.3.2" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + +"@noble/hashes@~1.3.1": + version "1.3.2" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + +"@noble/hashes@1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz" + integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== + +"@noble/hashes@1.3.1": version "1.3.1" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz" integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== @@ -1563,7 +1086,12 @@ resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz" integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== -"@noble/secp256k1@~1.7.0", "@noble/secp256k1@1.7.1": +"@noble/secp256k1@~1.7.0": + version "1.7.1" + resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz" + integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== + +"@noble/secp256k1@1.7.1": version "1.7.1" resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz" integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== @@ -1792,34 +1320,27 @@ find-up "^4.1.0" fs-extra "^8.1.0" -<<<<<<< HEAD "@openzeppelin/contracts-upgradeable-4.7.3@npm:@openzeppelin/contracts-upgradeable@v4.7.3": version "4.7.3" resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.7.3.tgz" integrity sha512-+wuegAMaLcZnLCJIvrVUDzA9z/Wp93f0Dla/4jJvIhijRrPabjQbZe6fWiECLaJyfn5ci9fqf9vTw3xpQOad2A== -======= + "@openzeppelin/contracts-upgradeable@^4.9.3": version "4.9.5" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.5.tgz#572b5da102fc9be1d73f34968e0ca56765969812" + resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.5.tgz" integrity sha512-f7L1//4sLlflAN7fVzJLoRedrf5Na3Oal5PZfIq55NFcVZ90EpV1q5xOvL4lFvg3MNICSDr2hH0JUBxwlxcoPg== -"@openzeppelin/contracts@^4.9.2": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.5.tgz#1eed23d4844c861a1835b5d33507c1017fa98de8" - integrity sha512-ZK+W5mVhRppff9BE6YdR8CC52C8zAvsVAiWhEtQ5+oNxFE6h1WdeWo+FJSF8KKvtxxVYZ7MTP/5KoVpAU3aSWg== ->>>>>>> main - -"@openzeppelin/contracts-upgradeable@^4.9.3": - version "4.9.3" - resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.3.tgz" - integrity sha512-jjaHAVRMrE4UuZNfDwjlLGDxTHWIOwTJS2ldnc278a0gevfXfPr8hxKEVBGFBE96kl2G3VHDZhUimw/+G3TG2A== - "@openzeppelin/contracts-v0.7@npm:@openzeppelin/contracts@v3.4.2": version "3.4.2" resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.2.tgz" integrity sha512-z0zMCjyhhp4y7XKAcDAi3Vgms4T2PstwBdahiO0+9NaGICQKjynK3wduSRplTgk4LXmoO1yfDGO5RbjKYxtuxA== -"@openzeppelin/contracts@^4.9.2", "@openzeppelin/contracts@^4.9.3": +"@openzeppelin/contracts@^4.9.2": + version "4.9.5" + resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.5.tgz" + integrity sha512-ZK+W5mVhRppff9BE6YdR8CC52C8zAvsVAiWhEtQ5+oNxFE6h1WdeWo+FJSF8KKvtxxVYZ7MTP/5KoVpAU3aSWg== + +"@openzeppelin/contracts@^4.9.3": version "4.9.3" resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.3.tgz" integrity sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg== @@ -1845,17 +1366,15 @@ web3 "^1.2.5" web3-utils "^1.2.5" -<<<<<<< HEAD +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + "@prettier/sync@^0.3.0": version "0.3.0" resolved "https://registry.npmjs.org/@prettier/sync/-/sync-0.3.0.tgz" integrity sha512-3dcmCyAxIcxy036h1I7MQU/uEEBq8oLwf1CE3xeze+MPlgkdlb/+w6rGR/1dhp6Hqi17fRS6nvwnOzkESxEkOw== -======= -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== ->>>>>>> main "@rari-capital/solmate@^6.4.0": version "6.4.0" @@ -2023,9 +1542,6 @@ "@sentry/types" "5.30.0" tslib "^1.9.3" -"@sindresorhus/is@^0.14.0": - version "0.14.0" - "@sindresorhus/is@^4.0.0", "@sindresorhus/is@^4.6.0": version "4.6.0" resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" @@ -2050,11 +1566,6 @@ resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.17.0.tgz" integrity sha512-Nko8R0/kUo391jsEHHxrGM07QFdnPGvlmox4rmH0kNiNAashItAilhy4Mv4pK5gQmW5f4sXAF58fwJbmlkGcVw== -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - dependencies: - defer-to-connect "^1.0.1" - "@szmarczak/http-timer@^4.0.5": version "4.0.6" resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz" @@ -2270,14 +1781,7 @@ dependencies: "@types/node" "*" -"@types/bn.js@^4.11.0": - version "4.11.6" - resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz" - integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== - dependencies: - "@types/node" "*" - -"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.5": +"@types/bn.js@^4.11.3": version "4.11.6" resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz" integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== @@ -2328,13 +1832,6 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/hdkey@^0.7.0": - version "0.7.1" - resolved "https://registry.npmjs.org/@types/hdkey/-/hdkey-0.7.1.tgz" - integrity sha512-4Kkr06hq+R8a9EzVNqXGOY2x1xA7dhY6qlp6OvaZ+IJy1BCca1Cv126RD9X7CMJoXoLo8WvAizy8gQHpqW6K0Q== - dependencies: - "@types/node" "*" - "@types/http-cache-semantics@*": version "4.0.2" resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz" @@ -2393,11 +1890,6 @@ dependencies: "@types/node" "*" -"@types/mocha@^5.2.7": - version "5.2.7" - resolved "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz" - integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ== - "@types/mocha@^9.1.1": version "9.1.1" resolved "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz" @@ -2436,11 +1928,6 @@ resolved "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== -"@types/node@12.12.54": - version "12.12.54" - resolved "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz" - integrity sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w== - "@types/pbkdf2@^3.0.0": version "3.1.0" resolved "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz" @@ -2453,25 +1940,11 @@ resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz" integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== -"@types/prop-types@*": - version "15.7.11" - resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz" - integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== - "@types/qs@^6.2.31": version "6.9.8" resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz" integrity sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg== -"@types/react@*": - version "18.2.47" - resolved "https://registry.npmjs.org/@types/react/-/react-18.2.47.tgz" - integrity sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - "@types/readable-stream@^2.3.13": version "2.3.15" resolved "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz" @@ -2487,11 +1960,6 @@ dependencies: "@types/node" "*" -"@types/scheduler@*": - version "0.16.8" - resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz" - integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== - "@types/secp256k1@^4.0.1": version "4.0.4" resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.4.tgz" @@ -2529,11 +1997,6 @@ resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz" integrity sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ== -"@types/solidity-parser-antlr@^0.2.3": - version "0.2.3" - resolved "https://registry.npmjs.org/@types/solidity-parser-antlr/-/solidity-parser-antlr-0.2.3.tgz" - integrity sha512-FoSyZT+1TTaofbEtGW1oC9wHND1YshvVeHerME/Jh6gIdHbBAWFW8A97YYqO/dpHcFjIwEPEepX0Efl2ckJgwA== - "@types/underscore@*": version "1.11.9" resolved "https://registry.npmjs.org/@types/underscore/-/underscore-1.11.9.tgz" @@ -2554,11 +2017,6 @@ "@types/bn.js" "*" "@types/underscore" "*" -"@types/yargs@^11.0.0": - version "11.1.8" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-11.1.8.tgz" - integrity sha512-49Pmk3GBUOrs/ZKJodGMJeEeiulv2VdfAYpGgkTCSXpNWx7KCX36+PbrkItwzrjTDHO2QoEZDpbhFoMN1lxe9A== - "@typescript-eslint/eslint-plugin@^5.60.0": version "5.62.0" resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz" @@ -2643,15 +2101,17 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" -"@yarnpkg/lockfile@^1.1.0": - version "1.1.0" +abbrev@1: + version "1.1.1" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -abbrev@1, abbrev@1.0.x: +abbrev@1.0.x: version "1.0.9" resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz" integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== -abortcontroller-polyfill@^1.1.9, abortcontroller-polyfill@^1.7.3, abortcontroller-polyfill@^1.7.5: +abortcontroller-polyfill@^1.7.3, abortcontroller-polyfill@^1.7.5: version "1.7.5" resolved "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz" integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ== @@ -2669,16 +2129,6 @@ abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: module-error "^1.0.1" queue-microtask "^1.2.3" -abstract-leveldown@^2.4.1: - version "2.7.2" - dependencies: - xtend "~4.0.0" - -abstract-leveldown@^5.0.0: - version "5.0.0" - dependencies: - xtend "~4.0.0" - abstract-leveldown@^6.2.1: version "6.3.0" resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz" @@ -2716,11 +2166,6 @@ abstract-leveldown@~2.7.1: dependencies: xtend "~4.0.0" -abstract-leveldown@~5.0.0: - version "5.0.0" - dependencies: - xtend "~4.0.0" - abstract-leveldown@~6.2.1: version "6.2.3" resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz" @@ -2732,17 +2177,6 @@ abstract-leveldown@~6.2.1: level-supports "~1.0.0" xtend "~4.0.0" -abstract-leveldown@3.0.0: - version "3.0.0" - dependencies: - xtend "~4.0.0" - -accepts@~1.3.7: - version "1.3.7" - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - accepts@~1.3.8: version "1.3.8" resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" @@ -2776,9 +2210,6 @@ adm-zip@^0.4.16: resolved "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz" integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== -aes-js@^3.1.1: - version "3.1.2" - aes-js@3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" @@ -2799,7 +2230,7 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.12.6: +ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.6: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2871,33 +2302,26 @@ ansi-regex@^5.0.1: resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -<<<<<<< HEAD -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" - integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== -======= ansi-regex@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== ->>>>>>> main -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.0: version "3.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: - color-convert "^2.0.1" + color-convert "^1.9.0" -ansi-styles@^4.1.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -2906,7 +2330,7 @@ ansi-styles@^4.1.0: ansi-styles@^6.1.0: version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== antlr4@^4.11.0: @@ -2944,15 +2368,6 @@ argparse@^2.0.1: resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -arr-diff@^4.0.0: - version "4.0.0" - -arr-flatten@^1.1.0: - version "1.1.0" - -arr-union@^3.1.0: - version "3.1.0" - array-back@^3.0.1, array-back@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz" @@ -3002,9 +2417,6 @@ array-uniq@1.0.3: resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== -array-unique@^0.3.2: - version "0.3.2" - array.prototype.findlastindex@^1.2.2: version "1.2.3" resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz" @@ -3065,14 +2477,6 @@ asap@~2.0.6: resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== -asn1.js@^5.2.0: - version "5.4.1" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - asn1@~0.2.3: version "0.2.6" resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" @@ -3090,9 +2494,6 @@ assertion-error@^1.1.0: resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== -assign-symbols@^1.0.0: - version "1.0.0" - ast-parents@^0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz" @@ -3134,11 +2535,6 @@ async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0: dependencies: lodash "^4.17.14" -async@^2.6.1, async@2.6.2: - version "2.6.2" - dependencies: - lodash "^4.17.11" - async@1.x: version "1.5.2" resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" @@ -3154,9 +2550,6 @@ at-least-node@^1.0.0: resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -atob@^2.1.2: - version "2.1.2" - available-typed-arrays@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" @@ -3172,181 +2565,6 @@ aws4@^1.8.0: resolved "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz" integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz" - integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g== - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.0.14, babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz" - integrity sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q== - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz" - integrity sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ== - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz" - integrity sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA== - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz" - integrity sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ== - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz" - integrity sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q== - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz" - integrity sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz" - integrity sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz" - integrity sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz" - integrity sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg== - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz" - integrity sha512-RYqaPD0mQyQIFRu7Ho5wE2yvA/5jxqCIj/Lv4BXNq23mHYu/vxikOy2JueLiBxQknwapwrJeNCesvY0ZcfnlHg== - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz" - integrity sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw== - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz" - integrity sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ== - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz" - integrity sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz" - integrity sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA== - dependencies: - babel-runtime "^6.22.0" - babel-plugin-polyfill-corejs2@^0.4.5: version "0.4.5" resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz" @@ -3371,350 +2589,6 @@ babel-plugin-polyfill-regenerator@^0.5.2: dependencies: "@babel/helper-define-polyfill-provider" "^0.4.2" -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz" - integrity sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw== - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz" - integrity sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ== - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz" - integrity sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ== - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz" - integrity sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw== - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz" - integrity sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz" - integrity sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz" - integrity sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw== - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz" - integrity sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag== - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz" - integrity sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw== - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz" - integrity sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz" - integrity sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz" - integrity sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz" - integrity sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg== - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz" - integrity sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz" - integrity sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA== - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz" - integrity sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg== - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz" - integrity sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw== - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz" - integrity sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA== - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz" - integrity sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ== - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz" - integrity sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz" - integrity sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz" - integrity sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ== - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz" - integrity sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz" - integrity sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz" - integrity sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ== - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz" - integrity sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ== - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz" - integrity sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg== - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz" - integrity sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-env@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz" - integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz" - integrity sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A== - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz" - integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz" - integrity sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg== - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz" - integrity sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA== - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz" - integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babelify@^7.3.0: - version "7.3.0" - resolved "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz" - integrity sha512-vID8Fz6pPN5pJMdlUnNFSfrlcx5MUule4k9aKs/zbZPyXxMTcRrB0M4Tarw22L8afr8eYSWxDPYCob3TdrqtlA== - dependencies: - babel-core "^6.0.14" - object-assign "^4.0.0" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - backoff@^2.5.0: version "2.5.0" resolved "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz" @@ -3734,17 +2608,6 @@ base-x@^3.0.2, base-x@^3.0.8: dependencies: safe-buffer "^5.0.1" -base@^0.11.1: - version "0.11.2" - 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" - base64-js@^1.3.1: version "1.5.1" resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" @@ -3777,60 +2640,26 @@ bigint-crypto-utils@^3.0.23: resolved "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz" integrity sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg== -bignumber.js@*, bignumber.js@^7.2.1, bignumber.js@7.2.1: - version "7.2.1" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz" - integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== - -bignumber.js@^9.0.0: +bignumber.js@*, bignumber.js@^9.0.0, bignumber.js@^9.0.1: version "9.1.2" resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz" integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== -bignumber.js@^9.0.1: - version "9.1.2" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz" - integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== +bignumber.js@^7.2.1: + version "7.2.1" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz" + integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== -bignumber.js@~9.0.2: - version "9.0.2" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz" - integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== +bignumber.js@7.2.1: + version "7.2.1" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz" + integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bip39@^2.5.0: - version "2.6.0" - resolved "https://registry.npmjs.org/bip39/-/bip39-2.6.0.tgz" - integrity sha512-RrnQRG2EgEoqO24ea+Q/fftuPUZLmrEM3qNhhGsA3PbaXaCW791LTzPuVyx/VprXQcTbPJ3K3UeTna8ZnVl2sg== - dependencies: - create-hash "^1.1.0" - pbkdf2 "^3.0.9" - randombytes "^2.0.1" - safe-buffer "^5.0.1" - unorm "^1.3.3" - -bip39@2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz" - integrity sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA== - dependencies: - create-hash "^1.1.0" - pbkdf2 "^3.0.9" - randombytes "^2.0.1" - safe-buffer "^5.0.1" - unorm "^1.3.3" - bip39@3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz" @@ -3841,13 +2670,6 @@ bip39@3.0.4: pbkdf2 "^3.0.9" randombytes "^2.0.1" -bip66@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz" - integrity sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw== - dependencies: - safe-buffer "^5.0.1" - blakejs@^1.1.0: version "1.2.1" resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz" @@ -3858,26 +2680,27 @@ bluebird@^3.5.0, bluebird@^3.5.2: resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.10.0, bn.js@^4.11.1, bn.js@^4.4.0, bn.js@^4.8.0: - version "4.11.9" - -bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9: +bn.js@^4.0.0, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^4.11.6: - version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== +bn.js@^5.1.2: + version "5.2.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -bn.js@^5.0.0: - version "5.1.3" +bn.js@^5.1.3: + version "5.2.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -bn.js@^5.1.1: - version "5.1.3" +bn.js@^5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -bn.js@^5.1.2, bn.js@^5.1.3, bn.js@^5.2.1: +bn.js@^5.2.1: version "5.2.1" resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== @@ -3905,20 +2728,6 @@ body-parser@^1.16.0: type-is "~1.6.18" unpipe "1.0.0" -body-parser@1.19.0: - version "1.19.0" - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - body-parser@1.20.1: version "1.20.1" resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz" @@ -3957,20 +2766,6 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@^2.3.1: - version "2.3.2" - 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" - braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" @@ -3998,7 +2793,7 @@ browser-stdout@1.3.1: resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6, browserify-aes@^1.2.0: +browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== @@ -4010,48 +2805,6 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6, browserify- inherits "^2.0.1" safe-buffer "^5.0.1" -browserify-cipher@^1.0.0: - version "1.0.1" - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz" - integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - browserslist@^4.21.10, browserslist@^4.22.2, "browserslist@>= 4.21.0": version "4.22.2" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz" @@ -4062,11 +2815,6 @@ browserslist@^4.21.10, browserslist@^4.22.2, "browserslist@>= 4.21.0": node-releases "^2.0.14" update-browserslist-db "^1.0.13" -bs58@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/bs58/-/bs58-2.0.1.tgz" - integrity sha512-77ld2g7Hn1GyIUpuUVfbZdhO1q9R9gv/GYam4HAeAW/tzhQDrbJ2ZttN1tIe4hmKrWFE+oUtAhBNx/EA5SVdTg== - bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" @@ -4115,7 +2863,7 @@ buffer-xor@^2.0.1: dependencies: safe-buffer "^5.1.1" -buffer@^5.0.5, buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: +buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -4139,14 +2887,7 @@ buffer@6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -bufferutil@^4.0.1: - version "4.0.7" - resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz" - integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw== - dependencies: - node-gyp-build "^4.3.0" - -bufferutil@4.0.5: +bufferutil@^4.0.1, bufferutil@4.0.5: version "4.0.5" resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz" integrity sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A== @@ -4172,38 +2913,11 @@ busboy@^1.6.0: dependencies: streamsearch "^1.1.0" -bytes@3.1.0: - version "3.1.0" - bytes@3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -bytewise-core@^1.2.2: - version "1.2.3" - dependencies: - typewise-core "^1.2" - -bytewise@~1.1.0: - version "1.1.0" - dependencies: - bytewise-core "^1.2.2" - typewise "^1.0.3" - -cache-base@^1.0.1: - version "1.0.1" - 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" - cacheable-lookup@^5.0.3: version "5.0.4" resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz" @@ -4214,17 +2928,6 @@ cacheable-lookup@^6.0.4: resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz" integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== -cacheable-request@^6.0.0: - version "6.1.0" - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - cacheable-request@^7.0.2: version "7.0.4" resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz" @@ -4238,13 +2941,7 @@ cacheable-request@^7.0.2: normalize-url "^6.0.1" responselike "^2.0.0" -cachedown@1.0.0: - version "1.0.0" - dependencies: - abstract-leveldown "^2.4.1" - lru-cache "^3.2.0" - -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@~1.0.2: +call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== @@ -4285,10 +2982,10 @@ camelcase@^6.0.0: resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001565: - version "1.0.30001576" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz" - integrity sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg== +caniuse-lite@^1.0.30001565: + version "1.0.30001579" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz" + integrity sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA== case@^1.6.3: version "1.6.3" @@ -4302,8 +2999,6 @@ caseless@^0.12.0, caseless@~0.12.0: catering@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/catering/-/catering-2.1.0.tgz" - integrity sha512-M5imwzQn6y+ODBfgi+cfgZv2hIUI6oYU/0f35Mdb1ujGeqeoI5tOnl9Q13DTH7LW+7er+NYq8stNOKZD/Z3U/A== dependencies: queue-tick "^1.0.0" @@ -4312,14 +3007,6 @@ catering@^2.1.0, catering@^2.1.1: resolved "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== -cbor@^5.0.1: - version "5.2.0" - resolved "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz" - integrity sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A== - dependencies: - bignumber.js "^9.0.1" - nofilter "^1.0.4" - cbor@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz" @@ -4335,24 +3022,12 @@ cbor@^8.1.0: dependencies: nofilter "^3.1.0" -chai-as-promised@^7.1.0: - version "7.1.1" - resolved "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz" - integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== - dependencies: - check-error "^1.0.2" - -chai-bignumber@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/chai-bignumber/-/chai-bignumber-3.1.0.tgz" - integrity sha512-omxEc80jAU+pZwRmoWr3aEzeLad4JW3iBhLRQlgISvghBdIxrMT7mVAGsDz4WSyCkKowENshH2j9OABAhld7QQ== - chai-bn@^0.2.1: version "0.2.2" resolved "https://registry.npmjs.org/chai-bn/-/chai-bn-0.2.2.tgz" integrity sha512-MzjelH0p8vWn65QKmEq/DLBG1Hle4WeyqT79ANhXZhn/UxRWO0OogkAxi5oGGtfzwU9bZR8mvbvYdoqNVWQwFg== -chai@^4.0.0, chai@^4.0.1, chai@^4.2.0, chai@^4.3.4, chai@^4.3.7, "chai@>= 2.1.2 < 5", "chai@>=2.2.1 <5": +chai@^4.0.0, chai@^4.2.0, chai@^4.3.4, chai@^4.3.7: version "4.3.8" resolved "https://registry.npmjs.org/chai/-/chai-4.3.8.tgz" integrity sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ== @@ -4365,29 +3040,7 @@ chai@^4.0.0, chai@^4.0.1, chai@^4.2.0, chai@^4.3.4, chai@^4.3.7, "chai@>= 2.1.2 pathval "^1.1.1" type-detect "^4.0.5" -chainlink@^0.8.2: - version "0.8.2" - resolved "https://registry.npmjs.org/chainlink/-/chainlink-0.8.2.tgz" - integrity sha512-9gaLoChlo1A72ygESilIheULjHLpZPtie7451GF89ywtdn6V1NDVIjktgsKOFDIjr7jHsmyOwKBYv4VVNvtn0Q== - dependencies: - "@chainlink/test-helpers" "0.0.1" - cbor "^5.0.1" - ethers "^4.0.41" - link_token "^1.0.6" - openzeppelin-solidity "^1.12.0" - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" - integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.2: +chalk@^2.3.2, chalk@^2.4.2: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -4486,7 +3139,7 @@ cheerio@^1.0.0-rc.2: parse5 "^7.0.0" parse5-htmlparser2-tree-adapter "^7.0.0" -chokidar@^3.0.2, chokidar@^3.4.0, chokidar@3.5.3: +chokidar@^3.4.0, chokidar@3.5.3: version "3.5.3" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -4516,9 +3169,6 @@ chokidar@3.3.0: optionalDependencies: fsevents "~2.1.1" -chownr@^1.1.1: - version "1.1.4" - chownr@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" @@ -4553,14 +3203,6 @@ class-is@^1.1.0: resolved "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz" integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== -class-utils@^0.3.5: - version "0.3.6" - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - classic-level@^1.2.0: version "1.3.0" resolved "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz" @@ -4614,15 +3256,6 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - clone-response@^1.0.2: version "1.0.3" resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz" @@ -4630,7 +3263,7 @@ clone-response@^1.0.2: dependencies: mimic-response "^1.0.0" -clone@^2.0.0, clone@^2.1.1, clone@2.1.2: +clone@^2.0.0, clone@^2.1.1: version "2.1.2" resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== @@ -4640,20 +3273,6 @@ code-point-at@^1.0.0: resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== -coinstring@^2.0.0: - version "2.3.1" - resolved "https://registry.npmjs.org/coinstring/-/coinstring-2.3.1.tgz" - integrity sha512-gLvivqtntteG2kOd7jpVQzKbIirJP7ijDEU+boVZTLj6V4tjVLBlUXGlijhBOcoWM7S/epqHVikQCD6x2J+E/Q== - dependencies: - bs58 "^2.0.1" - create-hash "^1.1.1" - -collection-visit@^1.0.0: - version "1.0.0" - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" @@ -4735,15 +3354,12 @@ commander@3.0.2: resolved "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== -component-emitter@^1.2.1: - version "1.3.0" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concat-stream@^1.5.1, concat-stream@^1.6.0, concat-stream@^1.6.2: +concat-stream@^1.6.0, concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -4761,11 +3377,6 @@ constant-case@^2.0.0: snake-case "^2.1.0" upper-case "^1.1.1" -content-disposition@0.5.3: - version "0.5.3" - dependencies: - safe-buffer "5.1.2" - content-disposition@0.5.4: version "0.5.4" resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" @@ -4787,11 +3398,6 @@ content-type@~1.0.4, content-type@~1.0.5: resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -convert-source-map@^1.5.1: - version "1.9.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - convert-source-map@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" @@ -4807,20 +3413,11 @@ cookie@^0.4.1: resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== -cookie@0.4.0: - version "0.4.0" - cookie@0.5.0: version "0.5.0" resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -cookiejar@^2.1.1: - version "2.1.2" - -copy-descriptor@^0.1.0: - version "0.1.1" - core-js-compat@^3.32.2: version "3.32.2" resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz" @@ -4833,12 +3430,12 @@ core-js-pure@^3.0.1: resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.32.2.tgz" integrity sha512-Y2rxThOuNywTjnX/PgA5vWM6CZ9QB9sz9oGeCixV8MqXZO70z/5SHzf9EeBrEBK0PN36DnEBBu9O/aGWzKuMZQ== -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.12" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -core-util-is@~1.0.0, core-util-is@1.0.2: +core-util-is@1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== @@ -4866,13 +3463,7 @@ crc-32@^1.2.0: resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz" integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== -create-ecdh@^4.0.0: - version "4.0.4" - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2, create-hash@^1.2.0: +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== @@ -4883,7 +3474,7 @@ create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: +create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -4900,7 +3491,7 @@ create-require@^1.1.0: resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-fetch@^2.1.0, cross-fetch@^2.1.1: +cross-fetch@^2.1.0: version "2.2.6" resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz" integrity sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA== @@ -4922,20 +3513,7 @@ cross-fetch@^4.0.0: dependencies: node-fetch "^2.6.12" -<<<<<<< HEAD -cross-spawn@^6.0.5: - version "6.0.5" - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.2: -======= cross-spawn@^7.0.0, cross-spawn@^7.0.2: ->>>>>>> main version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -4962,21 +3540,6 @@ crypto-addr-codec@^0.1.7: safe-buffer "^5.2.0" sha3 "^2.1.1" -crypto-browserify@3.12.0: - version "3.12.0" - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - crypto-js@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz" @@ -4998,11 +3561,6 @@ css-what@^6.1.0: resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== -csstype@^3.0.2: - version "3.1.3" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== - d@^1.0.1, d@1: version "1.0.1" resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz" @@ -5030,25 +3588,6 @@ debug@^2.2.0: dependencies: ms "2.0.0" -debug@^2.3.3: - version "2.6.9" - dependencies: - ms "2.0.0" - -debug@^2.6.8: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - debug@^3.1.0: version "3.2.7" resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" @@ -5084,12 +3623,7 @@ debug@3.2.6: dependencies: ms "^2.1.1" -decamelize@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -decamelize@^1.2.0: +decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== @@ -5104,7 +3638,7 @@ decode-uri-component@^0.2.0: resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== -decompress-response@^3.2.0, decompress-response@^3.3.0: +decompress-response@^3.3.0: 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== @@ -5125,18 +3659,6 @@ deep-eql@^4.1.2: dependencies: type-detect "^4.0.0" -deep-equal@~1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz" - integrity sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg== - dependencies: - is-arguments "^1.1.1" - is-date-object "^1.0.5" - is-regex "^1.1.4" - object-is "^1.1.5" - object-keys "^1.1.1" - regexp.prototype.flags "^1.5.1" - deep-extend@~0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" @@ -5147,9 +3669,6 @@ deep-is@^0.1.3, deep-is@~0.1.3: resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -defer-to-connect@^1.0.1: - version "1.1.3" - defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" @@ -5162,12 +3681,6 @@ deferred-leveldown@~1.2.1: dependencies: abstract-leveldown "~2.6.0" -deferred-leveldown@~4.0.0: - version "4.0.2" - dependencies: - abstract-leveldown "~5.0.0" - inherits "^2.0.3" - deferred-leveldown@~5.3.0: version "5.3.0" resolved "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz" @@ -5176,10 +3689,10 @@ deferred-leveldown@~5.3.0: abstract-leveldown "~6.2.1" inherits "^2.0.3" -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +define-data-property@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz" + integrity sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g== dependencies: get-intrinsic "^1.2.1" gopd "^1.0.1" @@ -5194,74 +3707,26 @@ define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4, de has-property-descriptors "^1.0.0" object-keys "^1.1.1" -define-property@^0.2.5: - version "0.2.5" - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@~1.0.0: - version "1.0.0" - -defined@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz" - integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -depd@~1.1.2: - version "1.1.2" - depd@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -des.js@^1.0.0: - version "1.0.1" - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - destroy@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz" - integrity sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A== - dependencies: - repeating "^2.0.0" - detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz" integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== -detect-node@2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz" - integrity sha512-64uDTOK+fKEa6XoSbkkDoeAX8Ep1XhwxwZtL1aw1En5p5UOK/ekJoFqd5BB1o+uOvF1iHVv6qDUxdOQ/VgWEQg== - detect-port@^1.3.0: version "1.5.1" resolved "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz" @@ -5285,13 +3750,6 @@ diff@5.0.0: resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== -diffie-hellman@^5.0.0: - version "5.0.3" - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - difflib@^0.2.4: version "0.2.4" resolved "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz" @@ -5306,11 +3764,6 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -dirty-chai@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/dirty-chai/-/dirty-chai-2.0.1.tgz" - integrity sha512-ys79pWKvDMowIDEPC6Fig8d5THiC0DJ2gmTeGzVAoEH18J8OzLud0Jh7I9IWg3NSk8x2UocznUuFmfHCXYZx9w== - doctrine@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" @@ -5372,31 +3825,10 @@ dotenv@^16.0.3: resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== -<<<<<<< HEAD -dotignore@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz" - integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== - dependencies: - minimatch "^3.0.4" - -drbg.js@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz" - integrity sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g== - dependencies: - browserify-aes "^1.0.6" - create-hash "^1.1.2" - create-hmac "^1.1.4" - -duplexer3@^0.1.4: - version "0.1.4" -======= eastasianwidth@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== ->>>>>>> main ecc-jsbn@~0.1.1: version "0.1.2" @@ -5411,10 +3843,10 @@ ee-first@1.1.1: resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.3.47, electron-to-chromium@^1.4.601: - version "1.4.628" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.628.tgz" - integrity sha512-2k7t5PHvLsufpP6Zwk0nof62yLOsCf032wZx7/q0mv8gwlXjhcxI3lz6f0jBr0GrnWKcm3burXzI3t5IrcdUxw== +electron-to-chromium@^1.4.601: + version "1.4.640" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.640.tgz" + integrity sha512-z/6oZ/Muqk4BaE7P69bXhUhpJbUM9ZJeka43ZwxsDshKtePns4mhBlh8bU5+yrnOnz3fhG82XLzGUXazOmsWnA== elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.4, elliptic@6.5.4: version "6.5.4" @@ -5429,17 +3861,6 @@ elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.4, elliptic@6.5.4: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -elliptic@^6.5.3, elliptic@6.5.3: - version "6.5.3" - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - emittery@0.10.0: version "0.10.0" resolved "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz" @@ -5457,7 +3878,7 @@ emoji-regex@^8.0.0: emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== encodeurl@~1.0.2: @@ -5475,22 +3896,6 @@ encoding-down@^6.3.0: level-codec "^9.0.0" level-errors "^2.0.0" -encoding-down@~5.0.0, encoding-down@5.0.4: - version "5.0.4" - dependencies: - abstract-leveldown "^5.0.0" - inherits "^2.0.3" - level-codec "^9.0.0" - level-errors "^2.0.0" - xtend "^4.0.1" - -encoding@^0.1.0, encoding@^0.1.11: - version "0.1.13" - resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" @@ -5530,37 +3935,6 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.0-next.1: - version "1.17.7" - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-abstract@^1.18.0-next.1: - version "1.18.0-next.1" - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-negative-zero "^2.0.0" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - es-abstract@^1.22.1: version "1.22.2" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz" @@ -5654,19 +4028,12 @@ es6-iterator@^2.0.3: es5-ext "^0.10.35" es6-symbol "^3.1.1" -es6-iterator@~2.0.3: - version "2.0.3" - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - es6-promise@^4.2.8: version "4.2.8" resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== -es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.3: +es6-symbol@^3.1.1, es6-symbol@^3.1.3: version "3.1.3" resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz" integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== @@ -5684,7 +4051,7 @@ escape-html@~1.0.3: resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5, escape-string-regexp@1.0.5: +escape-string-regexp@^1.0.5, escape-string-regexp@1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== @@ -5934,12 +4301,7 @@ estraverse@^4.1.1: resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.1.0: - version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -estraverse@^5.2.0: +estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== @@ -5954,19 +4316,6 @@ etag@~1.8.1: resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -eth-block-tracker@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-3.0.1.tgz" - integrity sha512-WUVxWLuhMmsfenfZvFO5sbl1qFY2IqUlw/FPVmjjdElpqLsZtSG+wPe9Dz7W/sB6e80HgFKknOmKk2eNlznHug== - dependencies: - eth-query "^2.1.0" - ethereumjs-tx "^1.3.3" - ethereumjs-util "^5.1.3" - ethjs-util "^0.1.3" - json-rpc-engine "^3.6.0" - pify "^2.3.0" - tape "^4.6.3" - eth-block-tracker@^4.4.2: version "4.4.3" resolved "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz" @@ -6020,16 +4369,6 @@ eth-json-rpc-filters@^4.2.1: json-rpc-engine "^6.1.0" pify "^5.0.0" -eth-json-rpc-infura@^3.1.0: - version "3.2.1" - resolved "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz" - integrity sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw== - dependencies: - cross-fetch "^2.1.1" - eth-json-rpc-middleware "^1.5.0" - json-rpc-engine "^3.4.0" - json-rpc-error "^2.0.0" - eth-json-rpc-infura@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-5.1.0.tgz" @@ -6040,25 +4379,6 @@ eth-json-rpc-infura@^5.1.0: json-rpc-engine "^5.3.0" node-fetch "^2.6.0" -eth-json-rpc-middleware@^1.5.0: - version "1.6.0" - resolved "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz" - integrity sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q== - dependencies: - async "^2.5.0" - eth-query "^2.1.2" - eth-tx-summary "^3.1.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.3" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.1.0" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^3.6.0" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - tape "^4.6.3" - eth-json-rpc-middleware@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz" @@ -6097,7 +4417,7 @@ eth-lib@0.2.8: elliptic "^6.4.0" xhr-request-promise "^0.1.2" -eth-query@^2.0.2, eth-query@^2.1.0, eth-query@^2.1.2: +eth-query@^2.1.0, eth-query@^2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz" integrity sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA== @@ -6127,40 +4447,6 @@ eth-sig-util@^1.4.2: ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" ethereumjs-util "^5.1.1" -eth-sig-util@3.0.0: - version "3.0.0" - dependencies: - buffer "^5.2.1" - elliptic "^6.4.0" - ethereumjs-abi "0.6.5" - ethereumjs-util "^5.1.1" - tweetnacl "^1.0.0" - tweetnacl-util "^0.15.0" - -eth-tx-summary@^3.1.2: - version "3.2.4" - resolved "https://registry.npmjs.org/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz" - integrity sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg== - dependencies: - async "^2.1.2" - clone "^2.0.0" - concat-stream "^1.5.1" - end-of-stream "^1.1.0" - eth-query "^2.0.2" - ethereumjs-block "^1.4.1" - ethereumjs-tx "^1.1.1" - ethereumjs-util "^5.0.1" - ethereumjs-vm "^2.6.0" - through2 "^2.0.3" - -ethashjs@~0.0.7: - version "0.0.8" - dependencies: - async "^2.1.2" - buffer-xor "^2.0.1" - ethereumjs-util "^7.0.2" - miller-rabin "^4.0.0" - ethereum-bloom-filters@^1.0.6: version "1.0.10" resolved "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz" @@ -6244,14 +4530,6 @@ ethereum-protocol@^1.0.1: resolved "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz" integrity sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg== -ethereum-types@^3.7.0, ethereum-types@^3.7.1: - version "3.7.1" - resolved "https://registry.npmjs.org/ethereum-types/-/ethereum-types-3.7.1.tgz" - integrity sha512-EBQwTGnGZQ9oHK7Za3DFEOxiElksRCoZECkk418vHiE2d59lLSejDZ1hzRVphtFjAu5YqONz4/XuAYdMBg+gWA== - dependencies: - "@types/node" "12.12.54" - bignumber.js "~9.0.2" - ethereum-waffle@*, ethereum-waffle@^4.0.10: version "4.0.10" resolved "https://registry.npmjs.org/ethereum-waffle/-/ethereum-waffle-4.0.10.tgz" @@ -6266,18 +4544,11 @@ ethereum-waffle@*, ethereum-waffle@^4.0.10: ethereumjs-abi@^0.6.8, ethereumjs-abi@0.6.8, "ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": version "0.6.8" - resolved "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git" - integrity sha512-qs8G5KwnIO/thOQjv1RvR/4oiTsy6IaCsN+ory5dbiqFXz8sd239aWJH0wmsVNPimL5X1KzQheUpi6xAo6FU4w== + resolved "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0" dependencies: bn.js "^4.11.8" ethereumjs-util "^6.0.0" -ethereumjs-abi@0.6.5: - version "0.6.5" - dependencies: - bn.js "^4.10.0" - ethereumjs-util "^4.3.0" - ethereumjs-account@^2.0.3: version "2.0.5" resolved "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz" @@ -6287,14 +4558,7 @@ ethereumjs-account@^2.0.3: rlp "^2.0.0" safe-buffer "^5.1.1" -ethereumjs-account@^3.0.0, ethereumjs-account@3.0.0: - version "3.0.0" - dependencies: - ethereumjs-util "^6.0.0" - rlp "^2.2.1" - safe-buffer "^5.1.1" - -ethereumjs-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0: +ethereumjs-block@^1.2.2: version "1.7.1" resolved "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz" integrity sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg== @@ -6305,15 +4569,6 @@ ethereumjs-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0: ethereumjs-util "^5.0.0" merkle-patricia-tree "^2.1.2" -ethereumjs-block@^2.2.2, ethereumjs-block@~2.2.2, ethereumjs-block@2.2.2: - version "2.2.2" - dependencies: - async "^2.0.1" - ethereumjs-common "^1.5.0" - ethereumjs-tx "^2.1.1" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - ethereumjs-block@~2.2.0: version "2.2.2" resolved "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz" @@ -6325,29 +4580,12 @@ ethereumjs-block@~2.2.0: ethereumjs-util "^5.0.0" merkle-patricia-tree "^2.1.2" -ethereumjs-blockchain@^4.0.3: - version "4.0.4" - dependencies: - async "^2.6.1" - ethashjs "~0.0.7" - ethereumjs-block "~2.2.2" - ethereumjs-common "^1.5.0" - ethereumjs-util "^6.1.0" - flow-stoplight "^1.0.0" - level-mem "^3.0.1" - lru-cache "^5.1.1" - rlp "^2.2.2" - semaphore "^1.1.0" - ethereumjs-common@^1.1.0, ethereumjs-common@^1.5.0: version "1.5.2" resolved "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz" integrity sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA== -ethereumjs-common@^1.3.2, ethereumjs-common@1.5.0: - version "1.5.0" - -ethereumjs-tx@^1.1.1, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.3: +ethereumjs-tx@^1.2.2: version "1.3.7" resolved "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz" integrity sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA== @@ -6355,7 +4593,7 @@ ethereumjs-tx@^1.1.1, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@ ethereum-common "^0.0.18" ethereumjs-util "^5.0.0" -ethereumjs-tx@^2.1.1, ethereumjs-tx@^2.1.2, ethereumjs-tx@2.1.2: +ethereumjs-tx@^2.1.1: version "2.1.2" resolved "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz" integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== @@ -6363,16 +4601,33 @@ ethereumjs-tx@^2.1.1, ethereumjs-tx@^2.1.2, ethereumjs-tx@2.1.2: ethereumjs-common "^1.5.0" ethereumjs-util "^6.0.0" -ethereumjs-util@^4.3.0: - version "4.5.1" +ethereumjs-util@^5.0.0: + version "5.2.1" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" + integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== + dependencies: + bn.js "^4.11.0" + create-hash "^1.1.2" + elliptic "^6.5.2" + ethereum-cryptography "^0.1.3" + ethjs-util "^0.1.3" + rlp "^2.0.0" + safe-buffer "^5.1.1" + +ethereumjs-util@^5.1.1: + version "5.2.1" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" + integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== dependencies: - bn.js "^4.8.0" + bn.js "^4.11.0" create-hash "^1.1.2" elliptic "^6.5.2" ethereum-cryptography "^0.1.3" + ethjs-util "^0.1.3" rlp "^2.0.0" + safe-buffer "^5.1.1" -ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2, ethereumjs-util@^5.1.3, ethereumjs-util@^5.1.5: +ethereumjs-util@^5.1.2: version "5.2.1" resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== @@ -6385,8 +4640,10 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereum rlp "^2.0.0" safe-buffer "^5.1.1" -ethereumjs-util@^5.2.0: +ethereumjs-util@^5.1.5: version "5.2.1" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" + integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== dependencies: bn.js "^4.11.0" create-hash "^1.1.2" @@ -6396,7 +4653,7 @@ ethereumjs-util@^5.2.0: rlp "^2.0.0" safe-buffer "^5.1.1" -ethereumjs-util@^6.0.0, ethereumjs-util@^6.1.0, ethereumjs-util@^6.2.0, ethereumjs-util@6.2.1: +ethereumjs-util@^6.0.0: version "6.2.1" resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== @@ -6422,28 +4679,7 @@ ethereumjs-util@^6.2.1: ethjs-util "0.1.6" rlp "^2.2.3" -ethereumjs-util@^7.0.2: - version "7.0.7" - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.4" - -ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.3, ethereumjs-util@7.1.3: - version "7.1.3" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz" - integrity sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw== - dependencies: - "@types/bn.js" "^5.1.0" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethereum-cryptography "^0.1.3" - rlp "^2.2.4" - -ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: +ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.3, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: version "7.1.5" resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== @@ -6454,10 +4690,10 @@ ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: ethereum-cryptography "^0.1.3" rlp "^2.2.4" -ethereumjs-util@^7.1.4: - version "7.1.5" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz" - integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== +ethereumjs-util@7.1.3: + version "7.1.3" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz" + integrity sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw== dependencies: "@types/bn.js" "^5.1.0" bn.js "^5.1.2" @@ -6465,7 +4701,7 @@ ethereumjs-util@^7.1.4: ethereum-cryptography "^0.1.3" rlp "^2.2.4" -ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4, ethereumjs-vm@^2.6.0: +ethereumjs-vm@^2.3.4: version "2.6.0" resolved "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz" integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== @@ -6482,38 +4718,6 @@ ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4, ethereumjs-vm@^2.6.0: rustbn.js "~0.2.0" safe-buffer "^5.1.1" -ethereumjs-vm@4.2.0: - version "4.2.0" - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - core-js-pure "^3.0.1" - ethereumjs-account "^3.0.0" - ethereumjs-block "^2.2.2" - ethereumjs-blockchain "^4.0.3" - ethereumjs-common "^1.5.0" - ethereumjs-tx "^2.1.2" - ethereumjs-util "^6.2.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.3.2" - rustbn.js "~0.2.0" - safe-buffer "^5.1.1" - util.promisify "^1.0.0" - -ethereumjs-wallet@0.6.5: - version "0.6.5" - dependencies: - aes-js "^3.1.1" - bs58check "^2.1.2" - ethereum-cryptography "^0.1.3" - ethereumjs-util "^6.0.0" - randombytes "^2.0.6" - safe-buffer "^5.1.2" - scryptsy "^1.2.1" - utf8 "^3.0.0" - uuid "^3.3.2" - ethers-eip712@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/ethers-eip712/-/ethers-eip712-0.2.0.tgz" @@ -6585,36 +4789,6 @@ ethers@^4.0.40: uuid "2.0.1" xmlhttprequest "1.8.0" -ethers@^4.0.41: - version "4.0.49" - resolved "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz" - integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== - dependencies: - aes-js "3.0.0" - bn.js "^4.11.9" - elliptic "6.5.4" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.4" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - -ethers@~4.0.4: - version "4.0.49" - resolved "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz" - integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== - dependencies: - aes-js "3.0.0" - bn.js "^4.11.9" - elliptic "6.5.4" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.4" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - ethjs-abi@^0.2.1: version "0.2.1" resolved "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz" @@ -6650,7 +4824,7 @@ events@^3.0.0: resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: +evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== @@ -6658,17 +4832,6 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -expand-brackets@^2.1.4: - version "2.1.4" - 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" - express@^4.14.0: version "4.18.2" resolved "https://registry.npmjs.org/express/-/express-4.18.2.tgz" @@ -6713,35 +4876,17 @@ ext@^1.1.2: dependencies: type "^2.7.2" -extend-shallow@^2.0.1: - version "2.0.1" - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - extend@~3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extglob@^2.0.4: - version "2.0.4" - 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" +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== -extsprintf@^1.2.0, extsprintf@1.3.0: +extsprintf@1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== @@ -6803,13 +4948,6 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -fetch-ponyfill@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz" - integrity sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g== - dependencies: - node-fetch "~1.7.1" - file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" @@ -6817,19 +4955,6 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -file-uri-to-path@1.0.0: - 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== - -fill-range@^4.0.0: - version "4.0.0" - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" @@ -6837,28 +4962,17 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@~1.1.2: - version "1.1.2" +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" + statuses "2.0.1" unpipe "~1.0.0" find-replace@^3.0.0: @@ -6883,7 +4997,7 @@ find-up@^2.1.0: dependencies: locate-path "^2.0.0" -find-up@^3.0.0, find-up@3.0.0: +find-up@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== @@ -6906,6 +5020,13 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" +find-up@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + find-up@5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" @@ -6914,12 +5035,6 @@ find-up@5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -find-yarn-workspace-root@^1.2.1: - version "1.2.1" - dependencies: - fs-extra "^4.0.3" - micromatch "^3.1.4" - flat-cache@^3.0.4: version "3.1.0" resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz" @@ -6946,33 +5061,25 @@ flatted@^3.2.7: resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -flow-stoplight@^1.0.0: - version "1.0.0" - follow-redirects@^1.12.1: version "1.15.3" resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz" integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== -for-each@^0.3.3, for-each@~0.3.3: +for-each@^0.3.3: version "0.3.3" resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" -<<<<<<< HEAD -for-in@^1.0.2: - version "1.0.2" -======= foreground-child@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz" integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== dependencies: cross-spawn "^7.0.0" signal-exit "^4.0.1" ->>>>>>> main forever-agent@~0.6.1: version "0.6.1" @@ -7011,24 +5118,21 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -forwarded@~0.1.2: - version "0.1.2" - forwarded@0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fp-ts@^1.0.0, fp-ts@1.19.3: +fp-ts@^1.0.0: + version "1.19.5" + resolved "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.5.tgz" + integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== + +fp-ts@1.19.3: version "1.19.3" resolved "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz" integrity sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg== -fragment-cache@^0.2.1: - version "0.2.1" - dependencies: - map-cache "^0.2.2" - fresh@0.5.2: version "0.5.2" resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" @@ -7054,13 +5158,6 @@ fs-extra@^4.0.2: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^4.0.3: - version "4.0.3" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^7.0.0, fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" @@ -7089,11 +5186,6 @@ fs-extra@^9.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-minipass@^1.2.5: - version "1.2.7" - dependencies: - minipass "^2.6.0" - fs-minipass@^1.2.7: version "1.2.7" resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz" @@ -7121,12 +5213,7 @@ fsevents@~2.3.2: resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1, function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function-bind@~1.1.1: +function-bind@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== @@ -7151,44 +5238,7 @@ functions-have-names@^1.2.3: resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -ganache-core@^2.13.2: - version "2.13.2" - resolved "https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2.tgz" - integrity sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw== - dependencies: - abstract-leveldown "3.0.0" - async "2.6.2" - bip39 "2.5.0" - cachedown "1.0.0" - clone "2.1.2" - debug "3.2.6" - encoding-down "5.0.4" - eth-sig-util "3.0.0" - ethereumjs-abi "0.6.8" - ethereumjs-account "3.0.0" - ethereumjs-block "2.2.2" - ethereumjs-common "1.5.0" - ethereumjs-tx "2.1.2" - ethereumjs-util "6.2.1" - ethereumjs-vm "4.2.0" - heap "0.2.6" - keccak "3.0.1" - level-sublevel "6.6.4" - levelup "3.1.1" - lodash "4.17.20" - lru-cache "5.1.1" - merkle-patricia-tree "3.0.0" - patch-package "6.2.2" - seedrandom "3.0.1" - source-map-support "0.5.12" - tmp "0.1.0" - web3-provider-engine "14.2.1" - websocket "1.0.32" - optionalDependencies: - ethereumjs-wallet "0.6.5" - web3 "1.2.11" - -ganache@^7.4.0, ganache@7.4.3: +ganache@7.4.3: version "7.4.3" resolved "https://registry.npmjs.org/ganache/-/ganache-7.4.3.tgz" integrity sha512-RpEDUiCkqbouyE7+NMXG26ynZ+7sGiODU84Kz+FVoXUnQ4qQM4M8wif3Y4qUCt+D/eM1RVeGq0my62FPD6Y1KA== @@ -7240,14 +5290,6 @@ get-port@^3.1.0: resolved "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz" integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== -get-stream@^3.0.0: - version "3.0.0" - -get-stream@^4.1.0: - version "4.1.0" - dependencies: - pump "^3.0.0" - get-stream@^5.1.0: version "5.2.0" resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" @@ -7275,9 +5317,6 @@ get-tsconfig@^4.7.0: dependencies: resolve-pkg-maps "^1.0.0" -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - getpass@^0.1.1: version "0.1.7" resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" @@ -7293,7 +5332,7 @@ ghost-testrpc@^0.0.2: chalk "^2.4.2" node-emoji "^1.10.0" -glob-parent@^5.1.2: +glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -7307,19 +5346,16 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob-parent@~5.1.0: - 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" - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== +glob@^10.3.7: + version "10.3.10" + resolved "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== dependencies: - is-glob "^4.0.1" + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" glob@^5.0.15: version "5.0.15" @@ -7332,15 +5368,15 @@ glob@^5.0.15: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@^7.0.0, glob@^7.1.3: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" @@ -7355,28 +5391,6 @@ glob@^8.0.3: minimatch "^5.0.1" once "^1.3.0" -glob@~7.1.6: - version "7.1.6" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@~7.2.3: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@7.1.3: version "7.1.3" resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz" @@ -7401,11 +5415,9 @@ glob@7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" -<<<<<<< HEAD -======= glob@7.2.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" @@ -7415,52 +5427,6 @@ glob@7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^10.3.7: - version "10.3.10" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.3.5" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" - -glob@^5.0.15: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - integrity sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.0, glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^8.0.3: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - ->>>>>>> main global-modules@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz" @@ -7497,11 +5463,6 @@ globals@^13.19.0: dependencies: type-fest "^0.20.2" -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - globalthis@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" @@ -7559,24 +5520,6 @@ got@^11.8.5: p-cancelable "^2.0.0" responselike "^2.0.0" -got@^7.1.0: - version "7.1.0" - dependencies: - decompress-response "^3.2.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-plain-obj "^1.1.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^1.1.1" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - url-parse-lax "^1.0.0" - url-to-options "^1.0.1" - got@12.1.0: version "12.1.0" resolved "https://registry.npmjs.org/got/-/got-12.1.0.tgz" @@ -7596,24 +5539,6 @@ got@12.1.0: p-cancelable "^3.0.0" responselike "^2.0.0" -got@9.6.0: - version "9.6.0" - 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" - -graceful-fs@^4.1.11: - version "4.2.4" - graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" @@ -7663,10 +5588,10 @@ hardhat-gas-reporter@^1.0.9: eth-gas-reporter "^0.2.25" sha1 "^1.1.1" -hardhat@^2.0.0, hardhat@^2.0.2, hardhat@^2.0.4, hardhat@^2.11.0, hardhat@^2.17.3, hardhat@^2.9.5, hardhat@^2.9.9: - version "2.17.3" - resolved "https://registry.npmjs.org/hardhat/-/hardhat-2.17.3.tgz" - integrity sha512-SFZoYVXW1bWJZrIIKXOA+IgcctfuKXDwENywiYNT2dM3YQc4fXNaTbuk/vpPzHIF50upByx4zW5EqczKYQubsA== +hardhat@^2.0.0, hardhat@^2.0.2, hardhat@^2.0.4, hardhat@^2.11.0, hardhat@^2.12.7, hardhat@^2.17.3, hardhat@^2.9.5, hardhat@^2.9.9: + version "2.19.4" + resolved "https://registry.npmjs.org/hardhat/-/hardhat-2.19.4.tgz" + integrity sha512-fTQJpqSt3Xo9Mn/WrdblNGAfcANM6XC3tAEi6YogB4s02DmTf93A8QsGb8uR0KR8TFcpcS8lgiW4ugAIYpnbrQ== dependencies: "@ethersproject/abi" "^5.1.2" "@metamask/eth-sig-util" "^4.0.0" @@ -7717,13 +5642,6 @@ hardhat@^2.0.0, hardhat@^2.0.2, hardhat@^2.0.4, hardhat@^2.11.0, hardhat@^2.17.3 uuid "^8.3.2" ws "^7.4.6" -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" - integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== - dependencies: - ansi-regex "^2.0.0" - has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" @@ -7756,22 +5674,11 @@ has-proto@^1.0.1: resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== -has-symbol-support-x@^1.4.1: - version "1.4.2" - has-symbols@^1.0.0, has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-symbols@^1.0.1: - version "1.0.1" - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - dependencies: - has-symbol-support-x "^1.4.1" - has-tostringtag@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" @@ -7779,30 +5686,7 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-value@^0.3.1: - version "0.3.1" - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - -has-values@^1.0.0: - version "1.0.0" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.3, has@~1.0.3: +has@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== @@ -7834,31 +5718,6 @@ hash.js@1.1.3: inherits "^2.0.3" minimalistic-assert "^1.0.0" -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== - dependencies: - function-bind "^1.1.2" - -hdkey@^0.7.1: - version "0.7.1" - resolved "https://registry.npmjs.org/hdkey/-/hdkey-0.7.1.tgz" - integrity sha512-ADjIY5Bqdvp3Sh+SLSS1W3/gTJnlDwwM3UsM/5sHPojc4pLf6X3MfMMiTa96MgtADNhTPa+E+SAKMtqdv1zUfw== - dependencies: - coinstring "^2.0.0" - secp256k1 "^3.0.1" - -hdkey@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz" - integrity sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA== - dependencies: - bs58check "^2.1.2" - ripemd160 "^2.0.2" - safe-buffer "^5.1.1" - secp256k1 "^4.0.0" - he@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" @@ -7877,9 +5736,6 @@ header-case@^1.0.0: resolved "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz" integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg== -heap@0.2.6: - version "0.2.6" - highlight.js@^10.4.1: version "10.7.3" resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz" @@ -7890,13 +5746,6 @@ highlightjs-solidity@^2.0.6: resolved "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz" integrity sha512-DySXWfQghjm2l6a/flF+cteroJqD4gI8GSdL4PtvxZSsAHie8m3yVe2JFoRg03ROKT6hp2Lc/BxXkqerNmtQYg== -hmac-drbg@^1.0.0: - version "1.0.1" - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" @@ -7906,14 +5755,6 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz" - integrity sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - hosted-git-info@^2.1.4, hosted-git-info@^2.6.0: version "2.8.9" resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" @@ -7944,15 +5785,6 @@ http-cache-semantics@^4.0.0: resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== -http-errors@~1.7.2, http-errors@1.7.2: - version "1.7.2" - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - http-errors@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" @@ -8009,13 +5841,6 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" -iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" @@ -8081,14 +5906,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4, inherits@2, inherits@2.0.4: +inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@2, inherits@2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.3: - version "2.0.3" - ini@^1.3.5: version "1.3.8" resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" @@ -8108,13 +5930,6 @@ interpret@^1.0.0: resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz" @@ -8132,17 +5947,7 @@ ipaddr.js@1.9.1: resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-accessor-descriptor@^0.1.6: - version "0.1.6" - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - dependencies: - kind-of "^6.0.0" - -is-arguments@^1.0.4, is-arguments@^1.1.1: +is-arguments@^1.0.4: version "1.1.1" resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== @@ -8186,9 +5991,6 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-buffer@^1.1.5: - version "1.1.6" - is-buffer@^2.0.5, is-buffer@~2.0.3: version "2.0.5" resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" @@ -8199,14 +6001,6 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-callable@^1.2.2: - version "1.2.2" - -is-ci@^2.0.0: - version "2.0.0" - dependencies: - ci-info "^2.0.0" - is-core-module@^2.12.1, is-core-module@^2.13.0: version "2.13.0" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz" @@ -8214,58 +6008,18 @@ is-core-module@^2.12.1, is-core-module@^2.13.0: dependencies: has "^1.0.3" -is-data-descriptor@^0.1.4: - version "0.1.4" - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1, is-date-object@^1.0.5: +is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" -is-descriptor@^0.1.0: - version "0.1.6" - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - -is-extendable@^0.1.1: - version "0.1.1" - -is-extendable@^1.0.1: - version "1.0.1" - dependencies: - is-plain-object "^2.0.4" - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - is-fn@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz" @@ -8319,9 +6073,6 @@ is-lower-case@^1.1.0: dependencies: lower-case "^1.1.0" -is-negative-zero@^2.0.0: - version "2.0.1" - is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" @@ -8334,43 +6085,22 @@ is-number-object@^1.0.4: dependencies: has-tostringtag "^1.0.0" -is-number@^3.0.0: - version "3.0.0" - dependencies: - kind-of "^3.0.2" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-object@^1.0.1: - version "1.0.2" - is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-plain-obj@^1.1.0: - version "1.1.0" - is-plain-obj@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - dependencies: - isobject "^3.0.1" - -is-regex@^1.0.4, is-regex@^1.1.1: - version "1.1.1" - dependencies: - has-symbols "^1.0.1" - -is-regex@^1.1.4, is-regex@~1.1.4: +is-regex@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -8378,14 +6108,6 @@ is-regex@^1.1.4, is-regex@~1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-regex@~1.0.5: - version "1.0.5" - dependencies: - has "^1.0.3" - -is-retry-allowed@^1.0.0: - version "1.2.0" - is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" @@ -8393,14 +6115,6 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" -is-stream@^1.0.0: - version "1.1.0" - -is-stream@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== - is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" @@ -8456,15 +6170,12 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" -is-windows@^1.0.2: - version "1.0.2" - isarray@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== -isarray@~1.0.0, isarray@1.0.0: +isarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== @@ -8479,87 +6190,30 @@ isexe@^2.0.0: resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isobject@^2.0.0: - version "2.1.0" - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - -isomorphic-fetch@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz" - integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA== - dependencies: - node-fetch "^2.6.1" - whatwg-fetch "^3.4.1" - -isomorphic-fetch@2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz" - integrity sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA== - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - isstream@~0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== -<<<<<<< HEAD -istanbul@^0.4.5: - version "0.4.5" - resolved "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz" - integrity sha512-nMtdn4hvK0HjUlzr1DrKSUY8ychprt8dzHOgY2KXsIhHu5PuQQEOTM27gV9Xblyon7aUH/TSFIjRHEODF/FRPg== - dependencies: - abbrev "1.0.x" - async "1.x" - escodegen "1.8.x" - esprima "2.7.x" - glob "^5.0.15" - handlebars "^4.0.1" - js-yaml "3.x" - mkdirp "0.5.x" - nopt "3.x" - once "1.x" - resolve "1.1.x" - supports-color "^3.1.0" - which "^1.1.1" - wordwrap "^1.0.0" - -isurl@^1.0.0-alpha5: - version "1.0.0" - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" -======= jackspeak@^2.3.5: version "2.3.6" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz" integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: "@pkgjs/parseargs" "^0.11.0" ->>>>>>> main js-sdsl@^4.1.4: version "4.4.2" resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz" integrity sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w== -js-sha3@^0.5.7, js-sha3@0.5.7: +js-sha3@^0.5.7: version "0.5.7" resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz" integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== -js-sha3@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.7.0.tgz" - integrity sha512-Wpks3yBDm0UcL5qlVhwW9Jr9n9i4FfeWBFOOXP5puDS/SiudJGhw7DPyBqn3487qD4F0lsC0q3zxink37f7zeA== - js-sha3@^0.8.0, js-sha3@0.8.0: version "0.8.0" resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" @@ -8570,16 +6224,16 @@ js-sha3@0.5.5: resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz" integrity sha512-yLLwn44IVeunwjpDVTDZmQeVbB0h+dZpY2eO68B/Zik8hu6dH+rKeLxwua79GGIvW6xr8NBAcrtiUbYrTjEFTA== -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: +js-sha3@0.5.7: + version "0.5.7" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz" + integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== + +js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz" - integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== - js-yaml@^4.1.0, js-yaml@4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" @@ -8608,21 +6262,11 @@ jsbn@~0.1.0: resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz" - integrity sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA== - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== - json-bigint@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz" @@ -8630,9 +6274,6 @@ json-bigint@^1.0.0: dependencies: bignumber.js "^9.0.0" -json-buffer@3.0.0: - version "3.0.0" - json-buffer@3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" @@ -8643,18 +6284,6 @@ json-parse-even-better-errors@^2.3.0: resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== -json-rpc-engine@^3.4.0, json-rpc-engine@^3.6.0: - version "3.8.0" - resolved "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz" - integrity sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA== - dependencies: - async "^2.0.1" - babel-preset-env "^1.7.0" - babelify "^7.3.0" - json-rpc-error "^2.0.0" - promise-to-callback "^1.0.0" - safe-event-emitter "^1.0.1" - json-rpc-engine@^5.3.0: version "5.4.0" resolved "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz" @@ -8671,13 +6300,6 @@ json-rpc-engine@^6.1.0: "@metamask/safe-event-emitter" "^2.0.0" eth-rpc-errors "^4.0.2" -json-rpc-error@^2.0.0, json-rpc-error@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/json-rpc-error/-/json-rpc-error-2.0.0.tgz" - integrity sha512-EwUeWP+KgAZ/xqFpaP6YDAXMtCJi+o/QQpCQFIYyxr01AdADi2y413eM8hSqJcoQym9WMePAJWoaODEJufC4Ug== - dependencies: - inherits "^2.0.1" - json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz" @@ -8693,9 +6315,6 @@ json-schema-traverse@^1.0.0: resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -json-schema@0.2.3: - version "0.2.3" - json-schema@0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" @@ -8718,11 +6337,6 @@ json-stringify-safe@~5.0.1: resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz" - integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== - json5@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" @@ -8763,9 +6377,6 @@ jsonify@^0.0.1: resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz" integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== -jsonify@~0.0.0: - version "0.0.0" - jsonschema@^1.2.4: version "1.4.1" resolved "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz" @@ -8781,15 +6392,7 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" -keccak@^3.0.0, keccak@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz" - integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -keccak@^3.0.2: +keccak@^3.0.0, keccak@^3.0.2: version "3.0.4" resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz" integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== @@ -8798,6 +6401,14 @@ keccak@^3.0.2: node-gyp-build "^4.2.0" readable-stream "^3.6.0" +keccak@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz" + integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + keccak@3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz" @@ -8807,11 +6418,6 @@ keccak@3.0.2: node-gyp-build "^4.2.0" readable-stream "^3.6.0" -keyv@^3.0.0: - version "3.1.0" - dependencies: - json-buffer "3.0.0" - keyv@^4.0.0, keyv@^4.5.3: version "4.5.3" resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz" @@ -8819,34 +6425,11 @@ keyv@^4.0.0, keyv@^4.5.3: dependencies: json-buffer "3.0.1" -kind-of@^3.0.2, kind-of@^3.0.3: - version "3.2.2" - dependencies: - is-buffer "^1.1.5" - -kind-of@^3.2.0: - version "3.2.2" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - -kind-of@^6.0.0, kind-of@^6.0.2: +kind-of@^6.0.2: version "6.0.3" resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -klaw-sync@^6.0.0: - version "6.0.0" - dependencies: - graceful-fs "^4.1.11" - klaw@^1.0.0: version "1.3.1" resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" @@ -8885,10 +6468,10 @@ level-concat-iterator@~2.0.0: resolved "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz" integrity sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw== -level-errors@^1.0.3, level-errors@~1.0.3: - version "1.0.5" - resolved "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz" - integrity sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig== +level-errors@^1.0.3: + version "1.1.2" + resolved "https://registry.npmjs.org/level-errors/-/level-errors-1.1.2.tgz" + integrity sha512-Sw/IJwWbPKF5Ai4Wz60B52yj0zYeqzObLh8k1Tk88jVmD51cJSKWSYpRyhVIvFzZdvsPqlH5wfhp/yxdsaQH4w== dependencies: errno "~0.1.1" @@ -8899,12 +6482,12 @@ level-errors@^2.0.0, level-errors@~2.0.0: dependencies: errno "~0.1.1" -level-iterator-stream@^2.0.3: - version "2.0.3" +level-errors@~1.0.3: + version "1.0.5" + resolved "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz" + integrity sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig== dependencies: - inherits "^2.0.1" - readable-stream "^2.0.5" - xtend "^4.0.0" + errno "~0.1.1" level-iterator-stream@~1.3.0: version "1.3.1" @@ -8916,13 +6499,6 @@ level-iterator-stream@~1.3.0: readable-stream "^1.0.33" xtend "^4.0.0" -level-iterator-stream@~3.0.0: - version "3.0.1" - dependencies: - inherits "^2.0.1" - readable-stream "^2.3.6" - xtend "^4.0.0" - level-iterator-stream@~4.0.0: version "4.0.2" resolved "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz" @@ -8932,12 +6508,6 @@ level-iterator-stream@~4.0.0: readable-stream "^3.4.0" xtend "^4.0.2" -level-mem@^3.0.1: - version "3.0.1" - dependencies: - level-packager "~4.0.0" - memdown "~3.0.0" - level-mem@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/level-mem/-/level-mem-5.0.1.tgz" @@ -8954,31 +6524,6 @@ level-packager@^5.0.3: encoding-down "^6.3.0" levelup "^4.3.2" -level-packager@~4.0.0: - version "4.0.1" - dependencies: - encoding-down "~5.0.0" - levelup "^3.0.0" - -level-post@^1.0.7: - version "1.0.7" - dependencies: - ltgt "^2.1.2" - -level-sublevel@6.6.4: - version "6.6.4" - dependencies: - bytewise "~1.1.0" - level-codec "^9.0.0" - level-errors "^2.0.0" - level-iterator-stream "^2.0.3" - ltgt "~2.1.1" - pull-defer "^0.2.2" - pull-level "^2.0.3" - pull-stream "^3.6.8" - typewiselite "~1.0.0" - xtend "~4.0.0" - level-supports@^2.0.1: version "2.1.0" resolved "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz" @@ -9004,13 +6549,6 @@ level-transcoder@^1.0.1: buffer "^6.0.3" module-error "^1.0.1" -level-ws@^1.0.0: - version "1.0.0" - dependencies: - inherits "^2.0.3" - readable-stream "^2.2.8" - xtend "^4.0.1" - level-ws@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz" @@ -9058,14 +6596,6 @@ levelup@^1.2.1: semver "~5.4.1" xtend "~4.0.0" -levelup@^3.0.0, levelup@3.1.1: - version "3.1.1" - dependencies: - deferred-leveldown "~4.0.0" - level-errors "~2.0.0" - level-iterator-stream "~3.0.0" - xtend "~4.0.0" - levelup@^4.3.2: version "4.4.0" resolved "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz" @@ -9098,11 +6628,6 @@ lines-and-columns@^1.1.6: resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -link_token@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/link_token/-/link_token-1.0.6.tgz" - integrity sha512-WI6n2Ri9kWQFsFYPTnLvU+Y3DT87he55uqLLX/sAwCVkGTXI/wionGEHAoWU33y8RepWlh46y+RD+DAz5Wmejg== - load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" @@ -9174,19 +6699,11 @@ lodash.truncate@^4.4.2: resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== -lodash.values@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz" - integrity sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q== - -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4: +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -lodash@4.17.20: - version "4.17.20" - log-symbols@3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz" @@ -9202,24 +6719,6 @@ log-symbols@4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -loglevel@^1.6.1: - version "1.8.1" - resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz" - integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== - -looper@^2.0.0: - version "2.0.0" - -looper@^3.0.0: - version "3.0.0" - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - loupe@^2.3.1: version "2.3.6" resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz" @@ -9239,9 +6738,6 @@ lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2: resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz" integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA== -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - lowercase-keys@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" @@ -9257,12 +6753,7 @@ lru_map@^0.3.3: resolved "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz" integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== -lru-cache@^3.2.0: - version "3.2.0" - dependencies: - pseudomap "^1.0.1" - -lru-cache@^5.1.1, lru-cache@5.1.1: +lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== @@ -9276,21 +6767,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -<<<<<<< HEAD -ltgt@^2.1.2, ltgt@~2.1.1: - version "2.1.3" -======= "lru-cache@^9.1.1 || ^10.0.0": version "10.1.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz" integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== -lru_map@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" - integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== ->>>>>>> main - ltgt@~2.2.0: version "2.2.1" resolved "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz" @@ -9301,14 +6782,6 @@ make-error@^1.1.1: resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -map-cache@^0.2.2: - version "0.2.2" - -map-visit@^1.0.0: - version "1.0.0" - dependencies: - object-visit "^1.0.0" - markdown-table@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz" @@ -9357,16 +6830,6 @@ memdown@^5.0.0: ltgt "~2.2.0" safe-buffer "~5.2.0" -memdown@~3.0.0: - version "3.0.0" - dependencies: - abstract-leveldown "~5.0.0" - functional-red-black-tree "~1.0.1" - immediate "~3.2.3" - inherits "~2.0.1" - ltgt "~2.2.0" - safe-buffer "~5.1.1" - memory-level@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz" @@ -9405,7 +6868,7 @@ merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: rlp "^2.0.0" semaphore ">=1.0.1" -merkle-patricia-tree@^4.2.2, merkle-patricia-tree@^4.2.4: +merkle-patricia-tree@^4.2.2: version "4.2.4" resolved "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz" integrity sha512-eHbf/BG6eGNsqqfbLED9rIqbsF4+sykEaBn6OLNs71tjclbMcMOk1tEPmJKcNcNCLkvbpY/lwyOlizWsqPNo8w== @@ -9417,16 +6880,17 @@ merkle-patricia-tree@^4.2.2, merkle-patricia-tree@^4.2.4: readable-stream "^3.6.0" semaphore-async-await "^1.5.1" -merkle-patricia-tree@3.0.0: - version "3.0.0" +merkle-patricia-tree@^4.2.4: + version "4.2.4" + resolved "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz" + integrity sha512-eHbf/BG6eGNsqqfbLED9rIqbsF4+sykEaBn6OLNs71tjclbMcMOk1tEPmJKcNcNCLkvbpY/lwyOlizWsqPNo8w== dependencies: - async "^2.6.1" - ethereumjs-util "^5.2.0" - level-mem "^3.0.1" - level-ws "^1.0.0" - readable-stream "^3.0.6" - rlp "^2.0.0" - semaphore ">=1.0.1" + "@types/levelup" "^4.3.0" + ethereumjs-util "^7.1.4" + level-mem "^5.0.1" + level-ws "^2.0.0" + readable-stream "^3.6.0" + semaphore-async-await "^1.5.1" merkletreejs@^0.3.11: version "0.3.11" @@ -9449,23 +6913,6 @@ micro-ftch@^0.3.1: resolved "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz" integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== -micromatch@^3.1.4: - version "3.1.10" - 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" - micromatch@^4.0.4: version "4.0.5" resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" @@ -9482,9 +6929,6 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.45.0: - version "1.45.0" - mime-db@1.52.0: version "1.52.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" @@ -9502,7 +6946,7 @@ mime@1.6.0: resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mimic-response@^1.0.0, mimic-response@^1.0.1: +mimic-response@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== @@ -9524,7 +6968,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== @@ -9543,6 +6987,13 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimatch@3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" @@ -9557,33 +7008,12 @@ minimatch@5.0.1: dependencies: brace-expansion "^2.0.1" -<<<<<<< HEAD -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@~1.2.8: -======= -minimatch@^5.0.1: - version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: ->>>>>>> main version "1.2.8" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -minimist@~1.2.5: - version "1.2.5" - -minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: +minipass@^2.6.0, minipass@^2.9.0: version "2.9.0" resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== @@ -9591,17 +7021,10 @@ minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: safe-buffer "^5.1.2" yallist "^3.0.0" -<<<<<<< HEAD -minizlib@^1.2.1: - version "1.3.3" - dependencies: - minipass "^2.9.0" -======= "minipass@^5.0.0 || ^6.0.2 || ^7.0.0": version "7.0.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz" integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== ->>>>>>> main minizlib@^1.3.3: version "1.3.3" @@ -9610,12 +7033,6 @@ minizlib@^1.3.3: dependencies: minipass "^2.9.0" -mixin-deep@^1.2.0: - version "1.3.2" - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - mkdirp-promise@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz" @@ -9623,18 +7040,18 @@ mkdirp-promise@^5.0.1: dependencies: mkdirp "*" -mkdirp@*, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@0.5.x: +mkdirp@*: + version "3.0.1" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz" + integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== + +mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@0.5.x: version "0.5.6" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" -mkdirp@^0.5.0: - version "0.5.5" - dependencies: - minimist "^1.2.5" - mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" @@ -9716,27 +7133,15 @@ mock-fs@^4.1.0: resolved "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz" integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== -mock-property@~1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/mock-property/-/mock-property-1.0.3.tgz" - integrity sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ== - dependencies: - define-data-property "^1.1.1" - functions-have-names "^1.2.3" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - hasown "^2.0.0" - isarray "^2.0.5" - module-error@^1.0.1, module-error@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz" integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== -ms@^2.1.1, ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@^2.1.1, ms@2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== ms@2.0.0: version "2.0.0" @@ -9748,10 +7153,10 @@ ms@2.1.1: resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@2.1.3: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== multibase@^0.7.0: version "0.7.0" @@ -9793,16 +7198,6 @@ multihashes@^0.4.15, multihashes@~0.4.15: multibase "^0.7.0" varint "^5.0.0" -n@^9.2.0: - version "9.2.0" - resolved "https://registry.npmjs.org/n/-/n-9.2.0.tgz" - integrity sha512-R8mFN2OWwNVc+r1f9fDzcT34DnDwUIHskrpTesZ6SdluaXBBnRtTu5tlfaSPloBi1Z/eGJoPO9nhyawWPad5UQ== - -nan@^2.14.0: - 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== - nano-base32@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/nano-base32/-/nano-base32-1.0.1.tgz" @@ -9818,21 +7213,6 @@ nanoid@3.3.3: resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz" integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== -nanomatch@^1.2.9: - version "1.2.13" - 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" - napi-macros@^2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz" @@ -9853,9 +7233,6 @@ natural-compare@^1.4.0: resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -negotiator@0.6.2: - version "0.6.2" - negotiator@0.6.3: version "0.6.3" resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" @@ -9871,12 +7248,6 @@ next-tick@^1.1.0: resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== -next-tick@~1.0.0: - version "1.0.0" - -nice-try@^1.0.4: - version "1.0.5" - no-case@^2.2.0, no-case@^2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz" @@ -9904,14 +7275,6 @@ node-environment-flags@1.0.6: object.getownpropertydescriptors "^2.0.3" semver "^5.7.0" -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: version "2.7.0" resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" @@ -9919,18 +7282,12 @@ node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" -node-fetch@~1.7.1: - version "1.7.3" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - -node-fetch@2.1.2: - version "2.1.2" +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: + version "4.6.1" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz" + integrity sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ== -node-gyp-build@^4.2.0, node-gyp-build@^4.3.0, node-gyp-build@4.3.0: +node-gyp-build@4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz" integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== @@ -9977,9 +7334,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^4.1.0: - version "4.5.0" - normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" @@ -10010,44 +7364,17 @@ oauth-sign@~0.9.0: resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4, object-assign@^4.0.0, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-copy@^0.1.0: - version "0.1.0" - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.12.3, object-inspect@^1.9.0, object-inspect@~1.12.3: +object-inspect@^1.12.3, object-inspect@^1.9.0: version "1.12.3" resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-inspect@^1.8.0: - version "1.9.0" - -object-inspect@~1.7.0: - version "1.7.0" - -object-is@^1.0.1: - version "1.1.4" - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - -object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.0.11, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -10057,19 +7384,6 @@ object-keys@~0.4.0: resolved "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz" integrity sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw== -object-visit@^1.0.0: - version "1.0.1" - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.1: - version "4.1.2" - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - object.assign@^4.1.4: version "4.1.4" resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" @@ -10110,13 +7424,6 @@ object.getownpropertydescriptors@^2.0.3: es-abstract "^1.22.1" safe-array-concat "^1.0.0" -object.getownpropertydescriptors@^2.1.1: - version "2.1.1" - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - object.groupby@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz" @@ -10127,11 +7434,6 @@ object.groupby@^1.0.0: es-abstract "^1.22.1" get-intrinsic "^1.2.1" -object.pick@^1.3.0: - version "1.3.0" - dependencies: - isobject "^3.0.1" - object.values@^1.1.6: version "1.1.7" resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz" @@ -10146,11 +7448,6 @@ obliterator@^2.0.0: resolved "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz" integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== -oboe@2.1.4: - version "2.1.4" - dependencies: - http-https "^1.0.0" - oboe@2.1.5: version "2.1.5" resolved "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz" @@ -10158,11 +7455,6 @@ oboe@2.1.5: dependencies: http-https "^1.0.0" -on-finished@~2.3.0: - version "2.3.0" - dependencies: - ee-first "1.1.1" - on-finished@2.4.1: version "2.4.1" resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" @@ -10178,14 +7470,9 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0, once@1.x: wrappy "1" "openzeppelin-contracts-upgradeable-4.9.3@npm:@openzeppelin/contracts-upgradeable@^4.9.3": - version "4.9.3" - resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.3.tgz" - integrity sha512-jjaHAVRMrE4UuZNfDwjlLGDxTHWIOwTJS2ldnc278a0gevfXfPr8hxKEVBGFBE96kl2G3VHDZhUimw/+G3TG2A== - -openzeppelin-solidity@^1.12.0: - version "1.12.0" - resolved "https://registry.npmjs.org/openzeppelin-solidity/-/openzeppelin-solidity-1.12.0.tgz" - integrity sha512-WlorzMXIIurugiSdw121RVD5qA3EfSI7GybTn+/Du0mPNgairjt29NpVTAaH8eLjAeAwlw46y7uQKy0NYem/gA== + version "4.9.5" + resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.5.tgz" + integrity sha512-f7L1//4sLlflAN7fVzJLoRedrf5Na3Oal5PZfIq55NFcVZ90EpV1q5xOvL4lFvg3MNICSDr2hH0JUBxwlxcoPg== optionator@^0.8.1: version "0.8.3" @@ -10211,11 +7498,6 @@ optionator@^0.9.3: prelude-ls "^1.2.1" type-check "^0.4.0" -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" - integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== - os-locale@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz" @@ -10223,17 +7505,11 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== -p-cancelable@^0.3.0: - version "0.3.0" - -p-cancelable@^1.0.0: - version "1.1.0" - p-cancelable@^2.0.0: version "2.1.1" resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz" @@ -10244,9 +7520,6 @@ p-cancelable@^3.0.0: resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== -p-finally@^1.0.0: - version "1.0.0" - p-limit@^1.1.0: version "1.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" @@ -10303,11 +7576,6 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-timeout@^1.1.1: - version "1.2.1" - dependencies: - p-finally "^1.0.0" - p-try@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" @@ -10332,15 +7600,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - parse-cache-control@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz" @@ -10396,25 +7655,6 @@ pascal-case@^2.0.0: camel-case "^3.0.0" upper-case-first "^1.1.0" -pascalcase@^0.1.1: - version "0.1.1" - -patch-package@6.2.2: - version "6.2.2" - dependencies: - "@yarnpkg/lockfile" "^1.1.0" - chalk "^2.4.2" - cross-spawn "^6.0.5" - find-yarn-workspace-root "^1.2.1" - fs-extra "^7.0.1" - is-ci "^2.0.0" - klaw-sync "^6.0.0" - minimist "^1.2.0" - rimraf "^2.6.3" - semver "^5.6.0" - slash "^2.0.0" - tmp "^0.0.33" - path-browserify@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" @@ -10444,14 +7684,11 @@ path-exists@^4.0.0: resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-key@^2.0.1: - version "2.0.1" - path-key@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" @@ -10464,7 +7701,7 @@ path-parse@^1.0.6, path-parse@^1.0.7: path-scurry@^1.10.1: version "1.10.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz" integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== dependencies: lru-cache "^9.1.1 || ^10.0.0" @@ -10505,15 +7742,6 @@ pbkdf2@^3.0.17, pbkdf2@^3.0.9: safe-buffer "^5.0.1" sha.js "^2.4.8" -pbkdf2@^3.0.3: - version "3.1.1" - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - performance-now@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" @@ -10534,11 +7762,6 @@ pify@^2.0.0: resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== -pify@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - pify@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" @@ -10566,24 +7789,11 @@ pinkie@^2.0.0: resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz" - integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== - pluralize@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== -popper.js@1.14.3: - version "1.14.3" - resolved "https://registry.npmjs.org/popper.js/-/popper.js-1.14.3.tgz" - integrity sha512-3lmujhsHXzb83+sI0PzfrE3O1XHZG8m8MXNMTupvA6LrM1/nnsiqYaacYc/RIente9VqnTDPztGEM8uvPAMGyg== - -posix-character-classes@^0.1.0: - version "0.1.1" - precond@0.2: version "0.2.3" resolved "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz" @@ -10599,12 +7809,6 @@ prelude-ls@~1.1.2: resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== -prepend-http@^1.0.1: - version "1.0.4" - -prepend-http@^2.0.0: - version "2.0.0" - prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" @@ -10636,11 +7840,6 @@ prettier@^3.0.0, prettier@^3.2.4, prettier@>=2.0.0, prettier@>=2.3.0: resolved "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz" integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" @@ -10666,12 +7865,6 @@ promise@^8.0.0: dependencies: asap "~2.0.6" -proxy-addr@~2.0.5: - version "2.0.6" - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.1" - proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" @@ -10685,58 +7878,11 @@ prr@~1.0.1: resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== -pseudomap@^1.0.1: - version "1.0.2" - psl@^1.1.28: version "1.9.0" resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== -public-encrypt@^4.0.0: - version "4.0.3" - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pull-cat@^1.1.9: - version "1.1.11" - -pull-defer@^0.2.2: - version "0.2.3" - -pull-level@^2.0.3: - version "2.0.4" - dependencies: - level-post "^1.0.7" - pull-cat "^1.1.9" - pull-live "^1.0.1" - pull-pushable "^2.0.0" - pull-stream "^3.4.0" - pull-window "^2.1.4" - stream-to-pull-stream "^1.7.1" - -pull-live@^1.0.1: - version "1.0.1" - dependencies: - pull-cat "^1.1.9" - pull-stream "^3.4.0" - -pull-pushable@^2.0.0: - version "2.2.0" - -pull-stream@^3.2.3, pull-stream@^3.4.0, pull-stream@^3.6.8: - version "3.6.14" - -pull-window@^2.1.4: - version "2.1.4" - dependencies: - looper "^2.0.0" - pump@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" @@ -10750,14 +7896,16 @@ punycode@^1.4.1: resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== -punycode@^2.1.0, punycode@2.1.0: +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.0" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +punycode@2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz" integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== -punycode@^2.1.1: - version "2.1.1" - pure-rand@^5.0.1: version "5.0.5" resolved "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz" @@ -10770,7 +7918,14 @@ qs@^6.11.2: dependencies: side-channel "^1.0.4" -qs@^6.4.0, qs@~6.5.2: +qs@^6.4.0: + version "6.11.2" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + dependencies: + side-channel "^1.0.4" + +qs@~6.5.2: version "6.5.3" resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== @@ -10782,9 +7937,6 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" -qs@6.7.0: - version "6.7.0" - query-string@^5.0.1: version "5.1.1" resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz" @@ -10801,27 +7953,19 @@ queue-microtask@^1.2.2, queue-microtask@^1.2.3: queue-tick@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.0.tgz" - integrity sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ== quick-lru@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6, randombytes@^2.1.0: +randombytes@^2.0.1, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - range-parser@~1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" @@ -10837,14 +7981,6 @@ raw-body@^2.4.1, raw-body@2.5.2: iconv-lite "0.4.24" unpipe "1.0.0" -raw-body@2.4.0: - version "2.4.0" - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - raw-body@2.5.1: version "2.5.1" resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" @@ -10895,17 +8031,6 @@ readable-stream@^2.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^2.0.5, readable-stream@^2.2.8, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - 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" - readable-stream@^2.2.2: version "2.3.8" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" @@ -10932,13 +8057,6 @@ readable-stream@^2.2.9: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6: - version "3.6.0" - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - readable-stream@^3.1.0, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" @@ -10991,42 +8109,11 @@ reduce-flatten@^2.0.0: resolved "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz" integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== -regenerate@^1.2.1: - version "1.4.2" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - regenerator-runtime@^0.14.0: version "0.14.0" resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz" integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz" - integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.2.0: - version "1.3.0" - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - regexp.prototype.flags@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz" @@ -11041,40 +8128,6 @@ regexpp@^3.0.0: resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz" - integrity sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ== - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz" - integrity sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g== - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz" - integrity sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw== - dependencies: - jsesc "~0.5.0" - -repeat-element@^1.1.2: - version "1.1.3" - -repeat-string@^1.6.1: - version "1.6.1" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" - integrity sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A== - dependencies: - is-finite "^1.0.0" - req-cwd@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz" @@ -11105,7 +8158,7 @@ request-promise-native@^1.0.5: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.34, request@^2.67.0, request@^2.79.0, request@^2.85.0, request@^2.88.0: +request@^2.34, request@^2.79.0, request@^2.85.0, request@^2.88.0: version "2.88.2" resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -11141,17 +8194,7 @@ require-from-string@^1.1.0: resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz" integrity sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q== -require-from-string@^2.0.0: - version "2.0.2" - 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== - -require-from-string@^2.0.1: - version "2.0.2" - 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== - -require-from-string@^2.0.2: +require-from-string@^2.0.0, require-from-string@^2.0.2: version "2.0.2" 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== @@ -11186,10 +8229,7 @@ resolve-pkg-maps@^1.0.0: resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve-url@^0.2.1: - version "0.2.1" - -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.22.2, resolve@^1.22.4, resolve@~1.22.6: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.22.2, resolve@^1.22.4: version "1.22.6" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz" integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== @@ -11198,11 +8238,6 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.22 path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@~1.17.0: - version "1.17.0" - dependencies: - path-parse "^1.0.6" - resolve@1.1.x: version "1.1.7" resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" @@ -11215,11 +8250,6 @@ resolve@1.17.0: dependencies: path-parse "^1.0.6" -responselike@^1.0.2: - version "1.0.2" - dependencies: - lowercase-keys "^1.0.0" - responselike@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz" @@ -11227,14 +8257,6 @@ responselike@^2.0.0: dependencies: lowercase-keys "^2.0.0" -resumer@~0.0.0: - version "0.0.0" - dependencies: - through "~2.3.4" - -ret@~0.1.10: - version "0.1.15" - reusify@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" @@ -11247,18 +8269,6 @@ rimraf@^2.2.8: dependencies: glob "^7.1.3" -rimraf@^2.6.2: - version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^2.6.3: - version "2.6.3" - dependencies: - glob "^7.1.3" - rimraf@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" @@ -11268,7 +8278,7 @@ rimraf@^3.0.2: rimraf@^5.0.5: version "5.0.5" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz" integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== dependencies: glob "^10.3.7" @@ -11286,7 +8296,14 @@ ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2: hash-base "^3.0.0" inherits "^2.0.1" -rlp@^2.0.0, rlp@^2.2.1, rlp@^2.2.2, rlp@^2.2.3, rlp@^2.2.4, rlp@2.2.6: +rlp@^2.0.0, rlp@^2.2.3, rlp@^2.2.4: + version "2.2.7" + resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz" + integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== + dependencies: + bn.js "^5.2.0" + +rlp@2.2.6: version "2.2.6" resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz" integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg== @@ -11312,13 +8329,6 @@ rustbn.js@~0.2.0: resolved "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz" integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== -rxjs@^6.5.3: - version "6.6.7" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - safe-array-concat@^1.0.0, safe-array-concat@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz" @@ -11339,9 +8349,6 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.1.2: - version "5.1.2" - safe-event-emitter@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz" @@ -11358,12 +8365,7 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -safe-regex@^1.1.0: - version "1.1.0" - dependencies: - ret "~0.1.10" - -safer-buffer@^2.0.2, safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@~2.1.0: +safer-buffer@^2.0.2, safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3", safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -11398,11 +8400,6 @@ scrypt-js@2.0.4: resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz" integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== -scryptsy@^1.2.1: - version "1.2.1" - dependencies: - pbkdf2 "^3.0.3" - seaport-core@^0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/seaport-core/-/seaport-core-0.0.1.tgz" @@ -11431,8 +8428,7 @@ seaport-types@^0.0.1: "seaport@https://github.com/immutable/seaport.git#1.5.0+im.1.3": version "1.5.0+im.1" - resolved "git+ssh://git@github.com/immutable/seaport.git" - integrity sha512-7rZ+DcqFaql9O/f0SVMwM86w+Q4uFDD380x46iqwSamSfsBPm73msDPJC6gXP9o/v1OMkGmci3lR9b8BdjEVLA== + resolved "git+ssh://git@github.com/immutable/seaport.git#ae061dc008105dd8d05937df9ad9a676f878cbf9" dependencies: "@nomicfoundation/hardhat-network-helpers" "^1.0.7" "@openzeppelin/contracts" "^4.9.2" @@ -11445,21 +8441,7 @@ seaport-types@^0.0.1: seaport-types "^0.0.1" solady "^0.0.84" -secp256k1@^3.0.1: - version "3.8.0" - resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz" - integrity sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw== - dependencies: - bindings "^1.5.0" - bip66 "^1.1.5" - bn.js "^4.11.8" - create-hash "^1.2.0" - drbg.js "^1.0.1" - elliptic "^6.5.2" - nan "^2.14.0" - safe-buffer "^5.1.2" - -secp256k1@^4.0.0, secp256k1@^4.0.1, secp256k1@4.0.3: +secp256k1@^4.0.1, secp256k1@4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== @@ -11468,9 +8450,6 @@ secp256k1@^4.0.0, secp256k1@^4.0.1, secp256k1@4.0.3: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -seedrandom@3.0.1: - version "3.0.1" - seedrandom@3.0.5: version "3.0.5" resolved "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz" @@ -11481,7 +8460,7 @@ semaphore-async-await@^1.5.1: resolved "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz" integrity sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg== -semaphore@^1.0.3, semaphore@^1.1.0, semaphore@>=1.0.1: +semaphore@^1.0.3, semaphore@>=1.0.1: version "1.1.0" resolved "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz" integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== @@ -11491,10 +8470,10 @@ semver@^5.3.0: resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^5.5.0, semver@5.5.0: - version "5.5.0" - resolved "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz" - integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== +semver@^5.5.0: + version "5.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@^5.6.0: version "5.7.2" @@ -11563,27 +8542,10 @@ semver@~5.4.1: resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -send@0.17.1: - version "0.17.1" - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -send@0.18.0: - version "0.18.0" - resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== +send@0.18.0: + version "0.18.0" + resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" depd "2.0.0" @@ -11614,14 +8576,6 @@ serialize-javascript@6.0.0: dependencies: randombytes "^2.1.0" -serve-static@1.14.1: - version "1.14.1" - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - serve-static@1.15.0: version "1.15.0" resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" @@ -11662,14 +8616,6 @@ set-immediate-shim@^1.0.1: resolved "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" integrity sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ== -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" @@ -11680,9 +8626,6 @@ setimmediate@1.0.4: resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz" integrity sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog== -setprototypeof@1.1.1: - version "1.1.1" - setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" @@ -11711,11 +8654,6 @@ sha3@^2.1.1: dependencies: buffer "6.0.3" -shebang-command@^1.2.0: - version "1.2.0" - dependencies: - shebang-regex "^1.0.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -11723,9 +8661,6 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" @@ -11751,7 +8686,7 @@ side-channel@^1.0.4: signal-exit@^4.0.1: version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== simple-concat@^1.0.0: @@ -11768,14 +8703,6 @@ simple-get@^2.7.0: once "^1.3.1" simple-concat "^1.0.0" -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" - integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg== - -slash@^2.0.0: - version "2.0.0" - slash@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" @@ -11797,36 +8724,25 @@ snake-case@^2.1.0: dependencies: no-case "^2.2.0" -snapdragon-node@^2.0.1: - version "2.1.1" - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - 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" - solady@^0.0.84: version "0.0.84" resolved "https://registry.npmjs.org/solady/-/solady-0.0.84.tgz" integrity sha512-1ccuZWcMR+g8Ont5LUTqMSFqrmEC+rYAbo6DjZFzdL7AJAtLiaOzO25BKZR10h6YBZNaqO5zUOFy09R6/AzAKQ== -solc@*, solc@^0.4.20: +solc@*, solc@0.8.15: + version "0.8.15" + resolved "https://registry.npmjs.org/solc/-/solc-0.8.15.tgz" + integrity sha512-Riv0GNHNk/SddN/JyEuFKwbcWcEeho15iyupTSHw5Np6WuXA5D8kEHbyzDHi6sqmvLzu2l+8b1YmL8Ytple+8w== + dependencies: + command-exists "^1.2.8" + commander "^8.1.0" + follow-redirects "^1.12.1" + js-sha3 "0.8.0" + memorystream "^0.3.1" + semver "^5.5.0" + tmp "0.0.33" + +solc@^0.4.20: version "0.4.26" resolved "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz" integrity sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA== @@ -11837,20 +8753,6 @@ solc@*, solc@^0.4.20: semver "^5.3.0" yargs "^4.7.1" -solc@^0.8: - version "0.8.23" - resolved "https://registry.npmjs.org/solc/-/solc-0.8.23.tgz" - integrity sha512-uqe69kFWfJc3cKdxj+Eg9CdW1CP3PLZDPeyJStQVWL8Q9jjjKD0VuRAKBFR8mrWiq5A7gJqERxJFYJsklrVsfA== - dependencies: - command-exists "^1.2.8" - commander "^8.1.0" - follow-redirects "^1.12.1" - js-sha3 "0.8.0" - memorystream "^0.3.1" - n "^9.2.0" - semver "^5.5.0" - tmp "0.0.33" - solc@0.7.3: version "0.7.3" resolved "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz" @@ -11866,19 +8768,6 @@ solc@0.7.3: semver "^5.5.0" tmp "0.0.33" -solc@0.8.15: - version "0.8.15" - resolved "https://registry.npmjs.org/solc/-/solc-0.8.15.tgz" - integrity sha512-Riv0GNHNk/SddN/JyEuFKwbcWcEeho15iyupTSHw5Np6WuXA5D8kEHbyzDHi6sqmvLzu2l+8b1YmL8Ytple+8w== - dependencies: - command-exists "^1.2.8" - commander "^8.1.0" - follow-redirects "^1.12.1" - js-sha3 "0.8.0" - memorystream "^0.3.1" - semver "^5.5.0" - tmp "0.0.33" - solhint-community@^3.7.0: version "3.7.0" resolved "https://registry.npmjs.org/solhint-community/-/solhint-community-3.7.0.tgz" @@ -11980,28 +8869,7 @@ solidity-coverage@^0.8.4: shelljs "^0.8.3" web3-utils "^1.3.6" -solidity-parser-antlr@^0.4.2: - version "0.4.11" - resolved "https://registry.npmjs.org/solidity-parser-antlr/-/solidity-parser-antlr-0.4.11.tgz" - integrity sha512-4jtxasNGmyC0midtjH/lTFPZYvTTUMy6agYcF+HoMnzW8+cqo3piFrINb4ZCzpPW+7tTVFCGa5ubP34zOzeuMg== - -source-map-resolve@^0.5.0: - version "0.5.3" - 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" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - -source-map-support@^0.5.0, source-map-support@^0.5.13: +source-map-support@^0.5.13: version "0.5.21" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -12009,26 +8877,7 @@ source-map-support@^0.5.0, source-map-support@^0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@0.5.12: - version "0.5.12" - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - -source-map@^0.5.6, source-map@^0.5.7: - version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.6.1: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -12066,11 +8915,6 @@ spdx-license-ids@^3.0.0: resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz" integrity sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ== -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - dependencies: - extend-shallow "^3.0.0" - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" @@ -12098,15 +8942,6 @@ stacktrace-parser@^0.1.10: dependencies: type-fest "^0.7.1" -static-extend@^0.1.1: - version "0.1.2" - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - statuses@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" @@ -12117,12 +8952,6 @@ stealthy-require@^1.1.1: resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz" integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== -stream-to-pull-stream@^1.7.1: - version "1.7.3" - dependencies: - looper "^3.0.0" - pull-stream "^3.2.3" - streamsearch@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" @@ -12157,9 +8986,9 @@ string-format@^2.0.0: resolved "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz" integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -12175,7 +9004,15 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.1.1: +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -12183,7 +9020,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0, string-width@^3.1.0: +string-width@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== @@ -12192,32 +9029,34 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -<<<<<<< HEAD -string-width@^4.1.0: +string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== -======= + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== ->>>>>>> main dependencies: eastasianwidth "^0.2.0" emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string.prototype.trim@^1.2.8, string.prototype.trim@~1.2.8: +string.prototype.trim@^1.2.8: version "1.2.8" resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz" integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== @@ -12226,19 +9065,6 @@ string.prototype.trim@^1.2.8, string.prototype.trim@~1.2.8: define-properties "^1.2.0" es-abstract "^1.22.1" -string.prototype.trim@~1.2.1: - version "1.2.3" - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - -string.prototype.trimend@^1.0.1: - version "1.0.3" - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - string.prototype.trimend@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz" @@ -12248,12 +9074,6 @@ string.prototype.trimend@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" -string.prototype.trimstart@^1.0.1: - version "1.0.3" - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - string.prototype.trimstart@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz" @@ -12263,35 +9083,13 @@ string.prototype.trimstart@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" -<<<<<<< HEAD -======= -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" ->>>>>>> main strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" @@ -12313,17 +9111,17 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -<<<<<<< HEAD strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== -======= + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.1: version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== ->>>>>>> main dependencies: ansi-regex "^6.0.1" @@ -12339,11 +9137,6 @@ strip-bom@^3.0.0: resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== -strip-comments@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz" - integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== - strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz" @@ -12366,11 +9159,6 @@ strip-json-comments@2.0.1: resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== - supports-color@^3.1.0: version "3.2.3" resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz" @@ -12473,28 +9261,6 @@ table@^6.8.0, table@^6.8.1: string-width "^4.2.3" strip-ansi "^6.0.1" -tape@^4.4.0, tape@^4.6.3: - version "4.17.0" - resolved "https://registry.npmjs.org/tape/-/tape-4.17.0.tgz" - integrity sha512-KCuXjYxCZ3ru40dmND+oCLsXyuA8hoseu2SS404Px5ouyS0A99v8X/mdiLqsR5MTAyamMBN7PRwt2Dv3+xGIxw== - dependencies: - "@ljharb/resumer" "~0.0.1" - "@ljharb/through" "~2.3.9" - call-bind "~1.0.2" - deep-equal "~1.1.1" - defined "~1.0.1" - dotignore "~0.1.2" - for-each "~0.3.3" - glob "~7.2.3" - has "~1.0.3" - inherits "~2.0.4" - is-regex "~1.1.4" - minimist "~1.2.8" - mock-property "~1.0.0" - object-inspect "~1.12.3" - resolve "~1.22.6" - string.prototype.trim "~1.2.8" - tar@^4.0.2: version "4.4.19" resolved "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz" @@ -12535,18 +9301,7 @@ then-request@^6.0.0: promise "^8.0.0" qs "^6.4.0" -through@~2.3.4, through@~2.3.8: - version "2.3.8" - -through2@^2.0.3: - version "2.0.5" - resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -timed-out@^4.0.0, timed-out@^4.0.1: +timed-out@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz" integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== @@ -12559,11 +9314,6 @@ title-case@^2.1.0: no-case "^2.2.0" upper-case "^1.0.3" -tmp@^0.0.33: - version "0.0.33" - dependencies: - os-tmpdir "~1.0.2" - tmp@0.0.33: version "0.0.33" resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" @@ -12571,35 +9321,11 @@ tmp@0.0.33: dependencies: os-tmpdir "~1.0.2" -tmp@0.1.0: - version "0.1.0" - dependencies: - rimraf "^2.6.3" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz" - integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== -to-object-path@^0.3.0: - version "0.3.0" - dependencies: - kind-of "^3.0.2" - -to-readable-stream@^1.0.0: - version "1.0.0" - -to-regex-range@^2.1.0: - version "2.1.1" - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" @@ -12607,17 +9333,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - toidentifier@1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" @@ -12641,11 +9356,6 @@ treeify@^1.1.0: resolved "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz" integrity sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A== -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" - integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw== - ts-command-line-args@^2.2.0: version "2.5.1" resolved "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz" @@ -12690,7 +9400,7 @@ tsconfig-paths@^3.14.2: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.8.1, tslib@^1.9.3: version "1.14.1" resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -12719,33 +9429,22 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tweetnacl-util@^0.15.0: - version "0.15.1" - tweetnacl-util@^0.15.1: version "0.15.1" resolved "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz" integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== -tweetnacl@^0.14.3: +tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== -tweetnacl@^1.0.0: - version "1.0.3" - tweetnacl@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== -tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - -type-check@^0.4.0, type-check@~0.4.0: +type-check@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== @@ -12759,6 +9458,13 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" @@ -12779,7 +9485,7 @@ type-fest@^0.7.1: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== -type-is@~1.6.17, type-is@~1.6.18: +type-is@~1.6.18: version "1.6.18" resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== @@ -12792,9 +9498,6 @@ type@^1.0.1: resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz" integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== -type@^2.0.0: - version "2.1.0" - type@^2.7.2: version "2.7.2" resolved "https://registry.npmjs.org/type/-/type-2.7.2.tgz" @@ -12872,17 +9575,6 @@ typescript@*, typescript@^4.9.5, typescript@>=2.7, "typescript@>=2.8.0 || >= 3.2 resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -typewise-core@^1.2, typewise-core@^1.2.0: - version "1.2.0" - -typewise@^1.0.3: - version "1.0.3" - dependencies: - typewise-core "^1.2.0" - -typewiselite@~1.0.0: - version "1.0.0" - typical@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz" @@ -12893,11 +9585,6 @@ typical@^5.2.0: resolved "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz" integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== -u2f-api@0.2.7: - version "0.2.7" - resolved "https://registry.npmjs.org/u2f-api/-/u2f-api-0.2.7.tgz" - integrity sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg== - uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" @@ -12918,9 +9605,6 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -underscore@1.9.1: - version "1.9.1" - undici@^5.14.0: version "5.25.2" resolved "https://registry.npmjs.org/undici/-/undici-5.25.2.tgz" @@ -12928,14 +9612,6 @@ undici@^5.14.0: dependencies: busboy "^1.6.0" -union-value@^1.0.0: - version "1.0.1" - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - universalify@^0.1.0: version "0.1.2" resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" @@ -12946,22 +9622,11 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unorm@^1.3.3: - version "1.6.0" - resolved "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz" - integrity sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA== - unpipe@~1.0.0, unpipe@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -unset-value@^1.0.0: - version "1.0.0" - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - update-browserslist-db@^1.0.13: version "1.0.13" resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz" @@ -12989,27 +9654,11 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - -url-parse-lax@^1.0.0: - version "1.0.0" - dependencies: - prepend-http "^1.0.1" - -url-parse-lax@^3.0.0: - version "3.0.0" - dependencies: - prepend-http "^2.0.0" - url-set-query@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz" integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== -url-to-options@^1.0.1: - version "1.0.1" - url@^0.11.0: version "0.11.3" resolved "https://registry.npmjs.org/url/-/url-0.11.3.tgz" @@ -13018,17 +9667,7 @@ url@^0.11.0: punycode "^1.4.1" qs "^6.11.2" -use@^3.1.0: - version "3.1.1" - -utf-8-validate@^5.0.2: - version "5.0.10" - resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz" - integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== - dependencies: - node-gyp-build "^4.3.0" - -utf-8-validate@5.0.7: +utf-8-validate@^5.0.2, utf-8-validate@5.0.7: version "5.0.7" resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz" integrity sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q== @@ -13045,15 +9684,6 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util.promisify@^1.0.0: - version "1.1.1" - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - for-each "^0.3.3" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.1" - util@^0.12.5: version "0.12.5" resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz" @@ -13090,19 +9720,11 @@ uuid@2.0.1: resolved "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz" integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg== -uuid@3.3.2: - version "3.3.2" - v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -valid-url@^1.0.9: - version "1.0.9" - resolved "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz" - integrity sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA== - validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" @@ -13139,23 +9761,15 @@ web3-bzz@1.10.0: got "12.1.0" swarm-js "^0.1.40" -web3-bzz@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.3.tgz" - integrity sha512-XDIRsTwekdBXtFytMpHBuun4cK4x0ZMIDXSoo1UVYp+oMyZj07c7gf7tNQY5qZ/sN+CJIas4ilhN25VJcjSijQ== +web3-bzz@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.2.tgz" + integrity sha512-vLOfDCj6198Qc7esDrCKeFA/M3ZLbowsaHQ0hIL4NmIHoq7lU8aSRTa5AI+JBh8cKN1gVryJsuW2ZCc5bM4I4Q== dependencies: "@types/node" "^12.12.6" got "12.1.0" swarm-js "^0.1.40" -web3-bzz@1.2.11: - version "1.2.11" - dependencies: - "@types/node" "^12.12.6" - got "9.6.0" - swarm-js "^0.1.40" - underscore "1.9.1" - web3-core-helpers@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz" @@ -13164,20 +9778,13 @@ web3-core-helpers@1.10.0: web3-eth-iban "1.10.0" web3-utils "1.10.0" -web3-core-helpers@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz" - integrity sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA== - dependencies: - web3-eth-iban "1.10.3" - web3-utils "1.10.3" - -web3-core-helpers@1.2.11: - version "1.2.11" +web3-core-helpers@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.2.tgz" + integrity sha512-1JfaNtox6/ZYJHNoI+QVc2ObgwEPeGF+YdxHZQ7aF5605BmlwM1Bk3A8xv6mg64jIRvEq1xX6k9oG6x7p1WgXQ== dependencies: - underscore "1.9.1" - web3-eth-iban "1.2.11" - web3-utils "1.2.11" + web3-eth-iban "1.10.2" + web3-utils "1.10.2" web3-core-method@1.10.0: version "1.10.0" @@ -13190,26 +9797,16 @@ web3-core-method@1.10.0: web3-core-subscriptions "1.10.0" web3-utils "1.10.0" -web3-core-method@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.3.tgz" - integrity sha512-VZ/Dmml4NBmb0ep5PTSg9oqKoBtG0/YoMPei/bq/tUdlhB2dMB79sbeJPwx592uaV0Vpk7VltrrrBv5hTM1y4Q== +web3-core-method@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.2.tgz" + integrity sha512-gG6ES+LOuo01MJHML4gnEt702M8lcPGMYZoX8UjZzmEebGrPYOY9XccpCrsFgCeKgQzM12SVnlwwpMod1+lcLg== dependencies: "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.10.3" - web3-core-promievent "1.10.3" - web3-core-subscriptions "1.10.3" - web3-utils "1.10.3" - -web3-core-method@1.2.11: - version "1.2.11" - dependencies: - "@ethersproject/transactions" "^5.0.0-beta.135" - underscore "1.9.1" - web3-core-helpers "1.2.11" - web3-core-promievent "1.2.11" - web3-core-subscriptions "1.2.11" - web3-utils "1.2.11" + web3-core-helpers "1.10.2" + web3-core-promievent "1.10.2" + web3-core-subscriptions "1.10.2" + web3-utils "1.10.2" web3-core-promievent@1.10.0: version "1.10.0" @@ -13218,15 +9815,10 @@ web3-core-promievent@1.10.0: dependencies: eventemitter3 "4.0.4" -web3-core-promievent@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.3.tgz" - integrity sha512-HgjY+TkuLm5uTwUtaAfkTgRx/NzMxvVradCi02gy17NxDVdg/p6svBHcp037vcNpkuGeFznFJgULP+s2hdVgUQ== - dependencies: - eventemitter3 "4.0.4" - -web3-core-promievent@1.2.11: - version "1.2.11" +web3-core-promievent@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.2.tgz" + integrity sha512-Qkkb1dCDOU8dZeORkcwJBQRAX+mdsjx8LqFBB+P4W9QgwMqyJ6LXda+y1XgyeEVeKEmY1RCeTq9Y94q1v62Sfw== dependencies: eventemitter3 "4.0.4" @@ -13241,25 +9833,16 @@ web3-core-requestmanager@1.10.0: web3-providers-ipc "1.10.0" web3-providers-ws "1.10.0" -web3-core-requestmanager@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.3.tgz" - integrity sha512-VT9sKJfgM2yBOIxOXeXiDuFMP4pxzF6FT+y8KTLqhDFHkbG3XRe42Vm97mB/IvLQCJOmokEjl3ps8yP1kbggyw== +web3-core-requestmanager@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.2.tgz" + integrity sha512-nlLeNJUu6fR+ZbJr2k9Du/nN3VWwB4AJPY4r6nxUODAmykgJq57T21cLP/BEk6mbiFQYGE9TrrPhh4qWxQEtAw== dependencies: util "^0.12.5" - web3-core-helpers "1.10.3" - web3-providers-http "1.10.3" - web3-providers-ipc "1.10.3" - web3-providers-ws "1.10.3" - -web3-core-requestmanager@1.2.11: - version "1.2.11" - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.11" - web3-providers-http "1.2.11" - web3-providers-ipc "1.2.11" - web3-providers-ws "1.2.11" + web3-core-helpers "1.10.2" + web3-providers-http "1.10.2" + web3-providers-ipc "1.10.2" + web3-providers-ws "1.10.2" web3-core-subscriptions@1.10.0: version "1.10.0" @@ -13269,20 +9852,13 @@ web3-core-subscriptions@1.10.0: eventemitter3 "4.0.4" web3-core-helpers "1.10.0" -web3-core-subscriptions@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.3.tgz" - integrity sha512-KW0Mc8sgn70WadZu7RjQ4H5sNDJ5Lx8JMI3BWos+f2rW0foegOCyWhRu33W1s6ntXnqeBUw5rRCXZRlA3z+HNA== +web3-core-subscriptions@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.2.tgz" + integrity sha512-MiWcKjz4tco793EPPPLc/YOJmYUV3zAfxeQH/UVTfBejMfnNvmfwKa2SBKfPIvKQHz/xI5bV2TF15uvJEucU7w== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.10.3" - -web3-core-subscriptions@1.2.11: - version "1.2.11" - dependencies: - eventemitter3 "4.0.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" + web3-core-helpers "1.10.2" web3-core@1.10.0: version "1.10.0" @@ -13297,31 +9873,20 @@ web3-core@1.10.0: web3-core-requestmanager "1.10.0" web3-utils "1.10.0" -web3-core@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-core/-/web3-core-1.10.3.tgz" - integrity sha512-Vbk0/vUNZxJlz3RFjAhNNt7qTpX8yE3dn3uFxfX5OHbuon5u65YEOd3civ/aQNW745N0vGUlHFNxxmn+sG9DIw== +web3-core@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-core/-/web3-core-1.10.2.tgz" + integrity sha512-qTn2UmtE8tvwMRsC5pXVdHxrQ4uZ6jiLgF5DRUVtdi7dPUmX18Dp9uxKfIfhGcA011EAn8P6+X7r3pvi2YRxBw== dependencies: "@types/bn.js" "^5.1.1" "@types/node" "^12.12.6" bignumber.js "^9.0.0" - web3-core-helpers "1.10.3" - web3-core-method "1.10.3" - web3-core-requestmanager "1.10.3" - web3-utils "1.10.3" + web3-core-helpers "1.10.2" + web3-core-method "1.10.2" + web3-core-requestmanager "1.10.2" + web3-utils "1.10.2" -web3-core@1.2.11: - version "1.2.11" - dependencies: - "@types/bn.js" "^4.11.5" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-core-requestmanager "1.2.11" - web3-utils "1.2.11" - -web3-eth-abi@^1.0.0-beta.24, web3-eth-abi@1.10.0: +web3-eth-abi@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz" integrity sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg== @@ -13329,20 +9894,13 @@ web3-eth-abi@^1.0.0-beta.24, web3-eth-abi@1.10.0: "@ethersproject/abi" "^5.6.3" web3-utils "1.10.0" -web3-eth-abi@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.3.tgz" - integrity sha512-O8EvV67uhq0OiCMekqYsDtb6FzfYzMXT7VMHowF8HV6qLZXCGTdB/NH4nJrEh2mFtEwVdS6AmLFJAQd2kVyoMQ== +web3-eth-abi@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.2.tgz" + integrity sha512-pY4fQUio7W7ZRSLf+vsYkaxJqaT/jHcALZjIxy+uBQaYAJ3t6zpQqMZkJB3Dw7HUODRJ1yI0NPEFGTnkYf/17A== dependencies: "@ethersproject/abi" "^5.6.3" - web3-utils "1.10.3" - -web3-eth-abi@1.2.11: - version "1.2.11" - dependencies: - "@ethersproject/abi" "5.0.0-beta.153" - underscore "1.9.1" - web3-utils "1.2.11" + web3-utils "1.10.2" web3-eth-accounts@1.10.0: version "1.10.0" @@ -13360,36 +9918,21 @@ web3-eth-accounts@1.10.0: web3-core-method "1.10.0" web3-utils "1.10.0" -web3-eth-accounts@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.3.tgz" - integrity sha512-8MipGgwusDVgn7NwKOmpeo3gxzzd+SmwcWeBdpXknuyDiZSQy9tXe+E9LeFGrmys/8mLLYP79n3jSbiTyv+6pQ== +web3-eth-accounts@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.2.tgz" + integrity sha512-6/HhCBYAXN/f553/SyxS9gY62NbLgpD1zJpENcvRTDpJN3Znvli1cmpl5Q3ZIUJkvHnG//48EWfWh0cbb3fbKQ== dependencies: - "@ethereumjs/common" "2.6.5" - "@ethereumjs/tx" "3.5.2" + "@ethereumjs/common" "2.5.0" + "@ethereumjs/tx" "3.3.2" "@ethereumjs/util" "^8.1.0" eth-lib "0.2.8" scrypt-js "^3.0.1" uuid "^9.0.0" - web3-core "1.10.3" - web3-core-helpers "1.10.3" - web3-core-method "1.10.3" - web3-utils "1.10.3" - -web3-eth-accounts@1.2.11: - version "1.2.11" - dependencies: - crypto-browserify "3.12.0" - eth-lib "0.2.8" - ethereumjs-common "^1.3.2" - ethereumjs-tx "^2.1.1" - scrypt-js "^3.0.1" - underscore "1.9.1" - uuid "3.3.2" - web3-core "1.2.11" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-utils "1.2.11" + web3-core "1.10.2" + web3-core-helpers "1.10.2" + web3-core-method "1.10.2" + web3-utils "1.10.2" web3-eth-contract@1.10.0: version "1.10.0" @@ -13405,32 +9948,19 @@ web3-eth-contract@1.10.0: web3-eth-abi "1.10.0" web3-utils "1.10.0" -web3-eth-contract@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.3.tgz" - integrity sha512-Y2CW61dCCyY4IoUMD4JsEQWrILX4FJWDWC/Txx/pr3K/+fGsBGvS9kWQN5EsVXOp4g7HoFOfVh9Lf7BmVVSRmg== +web3-eth-contract@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.2.tgz" + integrity sha512-CZLKPQRmupP/+OZ5A/CBwWWkBiz5B/foOpARz0upMh1yjb0dEud4YzRW2gJaeNu0eGxDLsWVaXhUimJVGYprQw== dependencies: "@types/bn.js" "^5.1.1" - web3-core "1.10.3" - web3-core-helpers "1.10.3" - web3-core-method "1.10.3" - web3-core-promievent "1.10.3" - web3-core-subscriptions "1.10.3" - web3-eth-abi "1.10.3" - web3-utils "1.10.3" - -web3-eth-contract@1.2.11: - version "1.2.11" - dependencies: - "@types/bn.js" "^4.11.5" - underscore "1.9.1" - web3-core "1.2.11" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-core-promievent "1.2.11" - web3-core-subscriptions "1.2.11" - web3-eth-abi "1.2.11" - web3-utils "1.2.11" + web3-core "1.10.2" + web3-core-helpers "1.10.2" + web3-core-method "1.10.2" + web3-core-promievent "1.10.2" + web3-core-subscriptions "1.10.2" + web3-eth-abi "1.10.2" + web3-utils "1.10.2" web3-eth-ens@1.10.0: version "1.10.0" @@ -13446,32 +9976,19 @@ web3-eth-ens@1.10.0: web3-eth-contract "1.10.0" web3-utils "1.10.0" -web3-eth-ens@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.3.tgz" - integrity sha512-hR+odRDXGqKemw1GFniKBEXpjYwLgttTES+bc7BfTeoUyUZXbyDHe5ifC+h+vpzxh4oS0TnfcIoarK0Z9tFSiQ== +web3-eth-ens@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.2.tgz" + integrity sha512-kTQ42UdNHy4BQJHgWe97bHNMkc3zCMBKKY7t636XOMxdI/lkRdIjdE5nQzt97VjQvSVasgIWYKRAtd8aRaiZiQ== dependencies: content-hash "^2.5.2" eth-ens-namehash "2.0.8" - web3-core "1.10.3" - web3-core-helpers "1.10.3" - web3-core-promievent "1.10.3" - web3-eth-abi "1.10.3" - web3-eth-contract "1.10.3" - web3-utils "1.10.3" - -web3-eth-ens@1.2.11: - version "1.2.11" - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - underscore "1.9.1" - web3-core "1.2.11" - web3-core-helpers "1.2.11" - web3-core-promievent "1.2.11" - web3-eth-abi "1.2.11" - web3-eth-contract "1.2.11" - web3-utils "1.2.11" + web3-core "1.10.2" + web3-core-helpers "1.10.2" + web3-core-promievent "1.10.2" + web3-eth-abi "1.10.2" + web3-eth-contract "1.10.2" + web3-utils "1.10.2" web3-eth-iban@1.10.0: version "1.10.0" @@ -13481,19 +9998,13 @@ web3-eth-iban@1.10.0: bn.js "^5.2.1" web3-utils "1.10.0" -web3-eth-iban@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz" - integrity sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA== +web3-eth-iban@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.2.tgz" + integrity sha512-y8+Ii2XXdyHQMFNL2NWpBnXe+TVJ4ryvPlzNhObRRnIo4O4nLIXS010olLDMayozDzoUlmzCmBZJYc9Eev1g7A== dependencies: bn.js "^5.2.1" - web3-utils "1.10.3" - -web3-eth-iban@1.2.11: - version "1.2.11" - dependencies: - bn.js "^4.11.9" - web3-utils "1.2.11" + web3-utils "1.10.2" web3-eth-personal@1.10.0: version "1.10.0" @@ -13507,27 +10018,17 @@ web3-eth-personal@1.10.0: web3-net "1.10.0" web3-utils "1.10.0" -web3-eth-personal@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.3.tgz" - integrity sha512-avrQ6yWdADIvuNQcFZXmGLCEzulQa76hUOuVywN7O3cklB4nFc/Gp3yTvD3bOAaE7DhjLQfhUTCzXL7WMxVTsw== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.10.3" - web3-core-helpers "1.10.3" - web3-core-method "1.10.3" - web3-net "1.10.3" - web3-utils "1.10.3" - -web3-eth-personal@1.2.11: - version "1.2.11" +web3-eth-personal@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.2.tgz" + integrity sha512-+vEbJsPUJc5J683y0c2aN645vXC+gPVlFVCQu4IjPvXzJrAtUfz26+IZ6AUOth4fDJPT0f1uSLS5W2yrUdw9BQ== dependencies: "@types/node" "^12.12.6" - web3-core "1.2.11" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-net "1.2.11" - web3-utils "1.2.11" + web3-core "1.10.2" + web3-core-helpers "1.10.2" + web3-core-method "1.10.2" + web3-net "1.10.2" + web3-utils "1.10.2" web3-eth@1.10.0: version "1.10.0" @@ -13547,40 +10048,23 @@ web3-eth@1.10.0: web3-net "1.10.0" web3-utils "1.10.0" -web3-eth@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.3.tgz" - integrity sha512-Uk1U2qGiif2mIG8iKu23/EQJ2ksB1BQXy3wF3RvFuyxt8Ft9OEpmGlO7wOtAyJdoKzD5vcul19bJpPcWSAYZhA== - dependencies: - web3-core "1.10.3" - web3-core-helpers "1.10.3" - web3-core-method "1.10.3" - web3-core-subscriptions "1.10.3" - web3-eth-abi "1.10.3" - web3-eth-accounts "1.10.3" - web3-eth-contract "1.10.3" - web3-eth-ens "1.10.3" - web3-eth-iban "1.10.3" - web3-eth-personal "1.10.3" - web3-net "1.10.3" - web3-utils "1.10.3" - -web3-eth@1.2.11: - version "1.2.11" - dependencies: - underscore "1.9.1" - web3-core "1.2.11" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-core-subscriptions "1.2.11" - web3-eth-abi "1.2.11" - web3-eth-accounts "1.2.11" - web3-eth-contract "1.2.11" - web3-eth-ens "1.2.11" - web3-eth-iban "1.2.11" - web3-eth-personal "1.2.11" - web3-net "1.2.11" - web3-utils "1.2.11" +web3-eth@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.2.tgz" + integrity sha512-s38rhrntyhGShmXC4R/aQtfkpcmev9c7iZwgb9CDIBFo7K8nrEJvqIOyajeZTxnDIiGzTJmrHxiKSadii5qTRg== + dependencies: + web3-core "1.10.2" + web3-core-helpers "1.10.2" + web3-core-method "1.10.2" + web3-core-subscriptions "1.10.2" + web3-eth-abi "1.10.2" + web3-eth-accounts "1.10.2" + web3-eth-contract "1.10.2" + web3-eth-ens "1.10.2" + web3-eth-iban "1.10.2" + web3-eth-personal "1.10.2" + web3-net "1.10.2" + web3-utils "1.10.2" web3-net@1.10.0: version "1.10.0" @@ -13591,72 +10075,14 @@ web3-net@1.10.0: web3-core-method "1.10.0" web3-utils "1.10.0" -web3-net@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-net/-/web3-net-1.10.3.tgz" - integrity sha512-IoSr33235qVoI1vtKssPUigJU9Fc/Ph0T9CgRi15sx+itysmvtlmXMNoyd6Xrgm9LuM4CIhxz7yDzH93B79IFg== - dependencies: - web3-core "1.10.3" - web3-core-method "1.10.3" - web3-utils "1.10.3" - -web3-net@1.2.11: - version "1.2.11" - dependencies: - web3-core "1.2.11" - web3-core-method "1.2.11" - web3-utils "1.2.11" - -web3-provider-engine@14.0.6: - version "14.0.6" - resolved "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-14.0.6.tgz" - integrity sha512-tr5cGSyxfSC/JqiUpBlJtfZpwQf1yAA8L/zy1C6fDFm0ntR974pobJ4v4676atpZne4Ze5VFy3kPPahHe9gQiQ== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^3.0.0" - eth-json-rpc-infura "^3.1.0" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.67.0" - semaphore "^1.0.3" - tape "^4.4.0" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -web3-provider-engine@14.2.1: - version "14.2.1" +web3-net@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-net/-/web3-net-1.10.2.tgz" + integrity sha512-w9i1t2z7dItagfskhaCKwpp6W3ylUR88gs68u820y5f8yfK5EbPmHc6c2lD8X9ZrTnmDoeOpIRCN/RFPtZCp+g== dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^3.0.0" - eth-json-rpc-infura "^3.1.0" - eth-sig-util "3.0.0" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" + web3-core "1.10.2" + web3-core-method "1.10.2" + web3-utils "1.10.2" web3-provider-engine@16.0.3: version "16.0.3" @@ -13686,33 +10112,6 @@ web3-provider-engine@16.0.3: xhr "^2.2.0" xtend "^4.0.1" -web3-provider-engine@16.0.4: - version "16.0.4" - resolved "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.4.tgz" - integrity sha512-f5WxJ9+LTF+4aJo4tCOXtQ6SDytBtLkhvV+qh/9gImHAuG9sMr6utY0mn/pro1Rx7O3hbztBxvQKjGMdOo8muw== - dependencies: - "@ethereumjs/tx" "^3.3.0" - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - eth-block-tracker "^4.4.2" - eth-json-rpc-filters "^4.2.1" - eth-json-rpc-infura "^5.1.0" - eth-json-rpc-middleware "^6.0.0" - eth-rpc-errors "^3.0.0" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - web3-providers-http@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz" @@ -13723,21 +10122,15 @@ web3-providers-http@1.10.0: es6-promise "^4.2.8" web3-core-helpers "1.10.0" -web3-providers-http@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.3.tgz" - integrity sha512-6dAgsHR3MxJ0Qyu3QLFlQEelTapVfWNTu5F45FYh8t7Y03T1/o+YAkVxsbY5AdmD+y5bXG/XPJ4q8tjL6MgZHw== +web3-providers-http@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.2.tgz" + integrity sha512-G8abKtpkyKGpRVKvfjIF3I4O/epHP7mxXWN8mNMQLkQj1cjMFiZBZ13f+qI77lNJN7QOf6+LtNdKrhsTGU72TA== dependencies: abortcontroller-polyfill "^1.7.5" cross-fetch "^4.0.0" es6-promise "^4.2.8" - web3-core-helpers "1.10.3" - -web3-providers-http@1.2.11: - version "1.2.11" - dependencies: - web3-core-helpers "1.2.11" - xhr2-cookies "1.1.0" + web3-core-helpers "1.10.2" web3-providers-ipc@1.10.0: version "1.10.0" @@ -13747,20 +10140,13 @@ web3-providers-ipc@1.10.0: oboe "2.1.5" web3-core-helpers "1.10.0" -web3-providers-ipc@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.3.tgz" - integrity sha512-vP5WIGT8FLnGRfswTxNs9rMfS1vCbMezj/zHbBe/zB9GauBRTYVrUo2H/hVrhLg8Ut7AbsKZ+tCJ4mAwpKi2hA== +web3-providers-ipc@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.2.tgz" + integrity sha512-lWbn6c+SgvhLymU8u4Ea/WOVC0Gqs7OJUvauejWz+iLycxeF0xFNyXnHVAi42ZJDPVI3vnfZotafoxcNNL7Sug== dependencies: oboe "2.1.5" - web3-core-helpers "1.10.3" - -web3-providers-ipc@1.2.11: - version "1.2.11" - dependencies: - oboe "2.1.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" + web3-core-helpers "1.10.2" web3-providers-ws@1.10.0: version "1.10.0" @@ -13771,23 +10157,15 @@ web3-providers-ws@1.10.0: web3-core-helpers "1.10.0" websocket "^1.0.32" -web3-providers-ws@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.3.tgz" - integrity sha512-/filBXRl48INxsh6AuCcsy4v5ndnTZ/p6bl67kmO9aK1wffv7CT++DrtclDtVMeDGCgB3van+hEf9xTAVXur7Q== +web3-providers-ws@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.2.tgz" + integrity sha512-3nYSiP6grI5GvpkSoehctSywfCTodU21VY8bUtXyFHK/IVfDooNtMpd5lVIMvXVAlaxwwrCfjebokaJtKH2Iag== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.10.3" + web3-core-helpers "1.10.2" websocket "^1.0.32" -web3-providers-ws@1.2.11: - version "1.2.11" - dependencies: - eventemitter3 "4.0.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - websocket "^1.0.31" - web3-shh@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz" @@ -13798,25 +10176,45 @@ web3-shh@1.10.0: web3-core-subscriptions "1.10.0" web3-net "1.10.0" -web3-shh@1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.3.tgz" - integrity sha512-cAZ60CPvs9azdwMSQ/PSUdyV4PEtaW5edAZhu3rCXf6XxQRliBboic+AvwUvB6j3eswY50VGa5FygfVmJ1JVng== +web3-shh@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.2.tgz" + integrity sha512-UP0Kc3pHv9uULFu0+LOVfPwKBSJ6B+sJ5KflF7NyBk6TvNRxlpF3hUhuaVDCjjB/dDUR6T0EQeg25FA2uzJbag== dependencies: - web3-core "1.10.3" - web3-core-method "1.10.3" - web3-core-subscriptions "1.10.3" - web3-net "1.10.3" + web3-core "1.10.2" + web3-core-method "1.10.2" + web3-core-subscriptions "1.10.2" + web3-net "1.10.2" -web3-shh@1.2.11: - version "1.2.11" +web3-utils@^1.0.0-beta.31: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.2.tgz" + integrity sha512-TdApdzdse5YR+5GCX/b/vQnhhbj1KSAtfrDtRW7YS0kcWp1gkJsN62gw6GzCaNTeXookB7UrLtmDUuMv65qgow== dependencies: - web3-core "1.2.11" - web3-core-method "1.2.11" - web3-core-subscriptions "1.2.11" - web3-net "1.2.11" + "@ethereumjs/util" "^8.1.0" + bn.js "^5.2.1" + ethereum-bloom-filters "^1.0.6" + ethereum-cryptography "^2.1.2" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + utf8 "3.0.0" -web3-utils@^1.0.0-beta.31, web3-utils@^1.2.5, web3-utils@^1.3.4, web3-utils@^1.3.6, web3-utils@1.10.3: +web3-utils@^1.2.5, web3-utils@1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.2.tgz" + integrity sha512-TdApdzdse5YR+5GCX/b/vQnhhbj1KSAtfrDtRW7YS0kcWp1gkJsN62gw6GzCaNTeXookB7UrLtmDUuMv65qgow== + dependencies: + "@ethereumjs/util" "^8.1.0" + bn.js "^5.2.1" + ethereum-bloom-filters "^1.0.6" + ethereum-cryptography "^2.1.2" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + utf8 "3.0.0" + +web3-utils@^1.3.4: version "1.10.3" resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.3.tgz" integrity sha512-OqcUrEE16fDBbGoQtZXWdavsPzbGIDc5v3VrRTZ0XrIpefC/viZ1ZU9bGEemazyS0catk/3rkOOxpzTfY+XsyQ== @@ -13830,45 +10228,34 @@ web3-utils@^1.0.0-beta.31, web3-utils@^1.2.5, web3-utils@^1.3.4, web3-utils@^1.3 randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz" - integrity sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg== +web3-utils@^1.3.6: + version "1.10.2" + resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.2.tgz" + integrity sha512-TdApdzdse5YR+5GCX/b/vQnhhbj1KSAtfrDtRW7YS0kcWp1gkJsN62gw6GzCaNTeXookB7UrLtmDUuMv65qgow== dependencies: + "@ethereumjs/util" "^8.1.0" bn.js "^5.2.1" ethereum-bloom-filters "^1.0.6" - ethereumjs-util "^7.1.0" + ethereum-cryptography "^2.1.2" ethjs-unit "0.1.6" number-to-bn "1.7.0" randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@1.2.11: - version "1.2.11" +web3-utils@1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz" + integrity sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg== dependencies: - bn.js "^4.11.9" - eth-lib "0.2.8" + bn.js "^5.2.1" ethereum-bloom-filters "^1.0.6" + ethereumjs-util "^7.1.0" ethjs-unit "0.1.6" number-to-bn "1.7.0" randombytes "^2.1.0" - underscore "1.9.1" utf8 "3.0.0" -web3@^1.0.0-beta.36, web3@^1.2.5: - version "1.10.3" - resolved "https://registry.npmjs.org/web3/-/web3-1.10.3.tgz" - integrity sha512-DgUdOOqC/gTqW+VQl1EdPxrVRPB66xVNtuZ5KD4adVBtko87hkgM8BTZ0lZ8IbUfnQk6DyjcDujMiH3oszllAw== - dependencies: - web3-bzz "1.10.3" - web3-core "1.10.3" - web3-eth "1.10.3" - web3-eth-personal "1.10.3" - web3-net "1.10.3" - web3-shh "1.10.3" - web3-utils "1.10.3" - -web3@1.10.0: +web3@^1.0.0-beta.36, web3@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz" integrity sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng== @@ -13881,32 +10268,24 @@ web3@1.10.0: web3-shh "1.10.0" web3-utils "1.10.0" -web3@1.2.11: - version "1.2.11" +web3@^1.2.5: + version "1.10.2" + resolved "https://registry.npmjs.org/web3/-/web3-1.10.2.tgz" + integrity sha512-DAtZ3a3ruPziE80uZ3Ob0YDZxt6Vk2un/F5BcBrxO70owJ9Z1Y2+loZmbh1MoAmoLGjA/SUSHeUtid3fYmBaog== dependencies: - web3-bzz "1.2.11" - web3-core "1.2.11" - web3-eth "1.2.11" - web3-eth-personal "1.2.11" - web3-net "1.2.11" - web3-shh "1.2.11" - web3-utils "1.2.11" + web3-bzz "1.10.2" + web3-core "1.10.2" + web3-eth "1.10.2" + web3-eth-personal "1.10.2" + web3-net "1.10.2" + web3-shh "1.10.2" + web3-utils "1.10.2" webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== -websocket@^1.0.31, websocket@1.0.32: - version "1.0.32" - dependencies: - bufferutil "^4.0.1" - debug "^2.2.0" - es5-ext "^0.10.50" - typedarray-to-buffer "^3.1.5" - utf-8-validate "^5.0.2" - yaeti "^0.0.6" - websocket@^1.0.32: version "1.0.34" resolved "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz" @@ -13919,19 +10298,11 @@ websocket@^1.0.32: utf-8-validate "^5.0.2" yaeti "^0.0.6" -whatwg-fetch@^2.0.4, whatwg-fetch@>=0.10.0: +whatwg-fetch@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz" integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== -whatwg-fetch@^3.4.1: - version "3.6.20" - resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz" - integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== - -whatwg-fetch@2.0.4: - version "2.0.4" - whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" @@ -13972,19 +10343,7 @@ which-typed-array@^1.1.11, which-typed-array@^1.1.2: gopd "^1.0.1" has-tostringtag "^1.0.0" -which@^1.1.1: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^1.2.9: - version "1.3.1" - dependencies: - isexe "^2.0.0" - -which@^1.3.1: +which@^1.1.1, which@^1.3.1, which@1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -13998,13 +10357,6 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -which@1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - wide-align@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" @@ -14040,9 +10392,9 @@ workerpool@6.2.1: resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz" integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -14066,17 +10418,19 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" -<<<<<<< HEAD wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== -======= + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== ->>>>>>> main dependencies: ansi-styles "^6.1.0" string-width "^5.0.1" @@ -14103,7 +10457,12 @@ ws@^5.1.1: dependencies: async-limiter "~1.0.0" -ws@^7.4.6, ws@7.4.6: +ws@^7.4.6: + version "7.5.9" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +ws@7.4.6: version "7.4.6" resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== @@ -14138,17 +10497,12 @@ xhr@^2.0.4, xhr@^2.2.0, xhr@^2.3.3: parse-headers "^2.0.0" xtend "^4.0.0" -xhr2-cookies@1.1.0: - version "1.1.0" - dependencies: - cookiejar "^2.1.1" - xmlhttprequest@1.8.0: version "1.8.0" resolved "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz" integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== -xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0: version "4.0.2" resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -14180,7 +10534,7 @@ yaeti@^0.0.6: resolved "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz" integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3, yallist@^3.1.1: +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== @@ -14206,16 +10560,16 @@ yargs-parser@^2.4.1: camelcase "^3.0.0" lodash.assign "^4.0.6" -yargs-parser@^20.2.2, yargs-parser@20.2.4: +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@20.2.4: version "20.2.4" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - yargs-unparser@1.6.0: version "1.6.0" resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz" @@ -14251,19 +10605,6 @@ yargs@^13.3.0, yargs@13.3.2: y18n "^4.0.0" yargs-parser "^13.1.2" -yargs@^17.5.1: - version "17.7.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - yargs@^4.7.1: version "4.8.1" resolved "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz" From 61abd47aaa85e812a1d356e992e549b56aba78c6 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 23 Jan 2024 08:44:01 +1000 Subject: [PATCH 070/100] Ensure source used checking if a value is ready is the source supplied as a parameter --- contracts/random/RandomSeedProvider.sol | 2 +- test/random/RandomSeedProvider.t.sol | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 8668734c..9b9d76c3 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -229,7 +229,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab return _randomFulfillmentIndex < nextRandomIndex + 1; } } else { - return IOffchainRandomSource(randomSource).isOffchainRandomReady(_randomFulfillmentIndex); + return IOffchainRandomSource(_randomSource).isOffchainRandomReady(_randomFulfillmentIndex); } } diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index 52c6e48a..841dadd2 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -492,6 +492,8 @@ contract SwitchingRandomSeedProviderTest is UninitializedRandomSeedProviderTest (uint256 fulfillmentIndex1, address source1) = randomSeedProviderRanDao.requestRandomSeed(); assertEq(source1, address(offchainSource), "offchain source"); assertEq(fulfillmentIndex1, 1000, "index"); + bool available = randomSeedProviderRanDao.isRandomSeedReady(fulfillmentIndex1, source1); + assertFalse(available, "Should not be ready1"); vm.prank(randomAdmin); randomSeedProviderRanDao.setOffchainRandomSource(address(offchainSource2)); @@ -502,6 +504,8 @@ contract SwitchingRandomSeedProviderTest is UninitializedRandomSeedProviderTest assertEq(fulfillmentIndex2, 1000, "index"); offchainSource.setIsReady(true); + available = randomSeedProviderRanDao.isRandomSeedReady(fulfillmentIndex1, source1); + assertTrue(available, "Should be ready"); randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex1, source1); offchainSource2.setIsReady(true); randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex2, source2); From f70d09315af9b5c46c7983e91125a98aa3dcf080 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 23 Jan 2024 09:23:55 +1000 Subject: [PATCH 071/100] Remove chainlink package and instead include just the file needed --- .gitmodules | 3 - .../chainlink/ChainlinkSourceAdaptor.sol | 2 +- .../chainlink/VRFConsumerBaseV2.sol | 141 + lib/chainlink | 1 - package.json | 1 - yarn.lock | 5793 ++++++----------- 6 files changed, 2227 insertions(+), 3714 deletions(-) create mode 100644 contracts/random/offchainsources/chainlink/VRFConsumerBaseV2.sol delete mode 160000 lib/chainlink diff --git a/.gitmodules b/.gitmodules index dfaeb3de..24318171 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,9 +7,6 @@ [submodule "lib/solidity-bytes-utils"] path = lib/solidity-bytes-utils url = https://github.com/GNSPS/solidity-bytes-utils -[submodule "lib/chainlink"] - path = lib/chainlink - url = https://github.com/smartcontractkit/chainlink [submodule "lib/openzeppelin-contracts-4.9.3"] path = lib/openzeppelin-contracts-4.9.3 url = https://github.com/OpenZeppelin/openzeppelin-contracts diff --git a/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol b/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol index 04ccb4fd..cf930010 100644 --- a/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol +++ b/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache 2 pragma solidity 0.8.19; -import {VRFConsumerBaseV2} from "@chainlink/contracts/src/v0.8/vrf/VRFConsumerBaseV2.sol"; +import {VRFConsumerBaseV2} from "./VRFConsumerBaseV2.sol"; import {VRFCoordinatorV2Interface} from "./VRFCoordinatorV2Interface.sol"; import {SourceAdaptorBase} from "../SourceAdaptorBase.sol"; import {IOffchainRandomSource} from "../IOffchainRandomSource.sol"; diff --git a/contracts/random/offchainsources/chainlink/VRFConsumerBaseV2.sol b/contracts/random/offchainsources/chainlink/VRFConsumerBaseV2.sol new file mode 100644 index 00000000..5cece6a0 --- /dev/null +++ b/contracts/random/offchainsources/chainlink/VRFConsumerBaseV2.sol @@ -0,0 +1,141 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.19; + +// Code from Chainlink's repo. +// This file has been copied here that than installing the chainlink contracts +// using the following command to dependency clashes. +// npm install @chainlink/contracts + + +/** **************************************************************************** + * @notice Interface for contracts using VRF randomness + * ***************************************************************************** + * @dev PURPOSE + * + * @dev Reggie the Random Oracle (not his real job) wants to provide randomness + * @dev to Vera the verifier in such a way that Vera can be sure he's not + * @dev making his output up to suit himself. Reggie provides Vera a public key + * @dev to which he knows the secret key. Each time Vera provides a seed to + * @dev Reggie, he gives back a value which is computed completely + * @dev deterministically from the seed and the secret key. + * + * @dev Reggie provides a proof by which Vera can verify that the output was + * @dev correctly computed once Reggie tells it to her, but without that proof, + * @dev the output is indistinguishable to her from a uniform random sample + * @dev from the output space. + * + * @dev The purpose of this contract is to make it easy for unrelated contracts + * @dev to talk to Vera the verifier about the work Reggie is doing, to provide + * @dev simple access to a verifiable source of randomness. It ensures 2 things: + * @dev 1. The fulfillment came from the VRFCoordinator + * @dev 2. The consumer contract implements fulfillRandomWords. + * ***************************************************************************** + * @dev USAGE + * + * @dev Calling contracts must inherit from VRFConsumerBase, and can + * @dev initialize VRFConsumerBase's attributes in their constructor as + * @dev shown: + * + * @dev contract VRFConsumer { + * @dev constructor(, address _vrfCoordinator, address _link) + * @dev VRFConsumerBase(_vrfCoordinator) public { + * @dev + * @dev } + * @dev } + * + * @dev The oracle will have given you an ID for the VRF keypair they have + * @dev committed to (let's call it keyHash). Create subscription, fund it + * @dev and your consumer contract as a consumer of it (see VRFCoordinatorInterface + * @dev subscription management functions). + * @dev Call requestRandomWords(keyHash, subId, minimumRequestConfirmations, + * @dev callbackGasLimit, numWords), + * @dev see (VRFCoordinatorInterface for a description of the arguments). + * + * @dev Once the VRFCoordinator has received and validated the oracle's response + * @dev to your request, it will call your contract's fulfillRandomWords method. + * + * @dev The randomness argument to fulfillRandomWords is a set of random words + * @dev generated from your requestId and the blockHash of the request. + * + * @dev If your contract could have concurrent requests open, you can use the + * @dev requestId returned from requestRandomWords to track which response is associated + * @dev with which randomness request. + * @dev See "SECURITY CONSIDERATIONS" for principles to keep in mind, + * @dev if your contract could have multiple requests in flight simultaneously. + * + * @dev Colliding `requestId`s are cryptographically impossible as long as seeds + * @dev differ. + * + * ***************************************************************************** + * @dev SECURITY CONSIDERATIONS + * + * @dev A method with the ability to call your fulfillRandomness method directly + * @dev could spoof a VRF response with any random value, so it's critical that + * @dev it cannot be directly called by anything other than this base contract + * @dev (specifically, by the VRFConsumerBase.rawFulfillRandomness method). + * + * @dev For your users to trust that your contract's random behavior is free + * @dev from malicious interference, it's best if you can write it so that all + * @dev behaviors implied by a VRF response are executed *during* your + * @dev fulfillRandomness method. If your contract must store the response (or + * @dev anything derived from it) and use it later, you must ensure that any + * @dev user-significant behavior which depends on that stored value cannot be + * @dev manipulated by a subsequent VRF request. + * + * @dev Similarly, both miners and the VRF oracle itself have some influence + * @dev over the order in which VRF responses appear on the blockchain, so if + * @dev your contract could have multiple VRF requests in flight simultaneously, + * @dev you must ensure that the order in which the VRF responses arrive cannot + * @dev be used to manipulate your contract's user-significant behavior. + * + * @dev Since the block hash of the block which contains the requestRandomness + * @dev call is mixed into the input to the VRF *last*, a sufficiently powerful + * @dev miner could, in principle, fork the blockchain to evict the block + * @dev containing the request, forcing the request to be included in a + * @dev different block with a different hash, and therefore a different input + * @dev to the VRF. However, such an attack would incur a substantial economic + * @dev cost. This cost scales with the number of blocks the VRF oracle waits + * @dev until it calls responds to a request. It is for this reason that + * @dev that you can signal to an oracle you'd like them to wait longer before + * @dev responding to the request (however this is not enforced in the contract + * @dev and so remains effective only in the case of unmodified oracle software). + */ +abstract contract VRFConsumerBaseV2 { + error OnlyCoordinatorCanFulfill(address have, address want); + // solhint-disable-next-line chainlink-solidity/prefix-immutable-variables-with-i + address private immutable vrfCoordinator; + + /** + * @param _vrfCoordinator address of VRFCoordinator contract + */ + constructor(address _vrfCoordinator) { + vrfCoordinator = _vrfCoordinator; + } + + /** + * @notice fulfillRandomness handles the VRF response. Your contract must + * @notice implement it. See "SECURITY CONSIDERATIONS" above for important + * @notice principles to keep in mind when implementing your fulfillRandomness + * @notice method. + * + * @dev VRFConsumerBaseV2 expects its subcontracts to have a method with this + * @dev signature, and will call it once it has verified the proof + * @dev associated with the randomness. (It is triggered via a call to + * @dev rawFulfillRandomness, below.) + * + * @param requestId The Id initially returned by requestRandomness + * @param randomWords the VRF output expanded to the requested number of words + */ + // solhint-disable-next-line chainlink-solidity/prefix-internal-functions-with-underscore + function fulfillRandomWords(uint256 requestId, uint256[] memory randomWords) internal virtual; + + // rawFulfillRandomness is called by VRFCoordinator when it receives a valid VRF + // proof. rawFulfillRandomness then calls fulfillRandomness, after validating + // the origin of the call + function rawFulfillRandomWords(uint256 requestId, uint256[] memory randomWords) external { + if (msg.sender != vrfCoordinator) { + revert OnlyCoordinatorCanFulfill(msg.sender, vrfCoordinator); + } + fulfillRandomWords(requestId, randomWords); + } +} diff --git a/lib/chainlink b/lib/chainlink deleted file mode 160000 index 3cf93c9f..00000000 --- a/lib/chainlink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3cf93c9f849be99a451ddd77ac203395760302c2 diff --git a/package.json b/package.json index da0b5bce..024e3bc4 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,6 @@ "typescript": "^4.9.5" }, "dependencies": { - "@chainlink/contracts": "^0.8.0", "@openzeppelin/contracts": "^4.9.3", "@openzeppelin/contracts-upgradeable": "^4.9.3", "@rari-capital/solmate": "^6.4.0", diff --git a/yarn.lock b/yarn.lock index 61e9d130..4e09852e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,263 +4,60 @@ "@aashutoshrathi/word-wrap@^1.2.3": version "1.2.6" - resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== -"@ampproject/remapping@^2.2.0": - version "2.2.1" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": +"@babel/code-frame@^7.0.0": version "7.23.5" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== dependencies: "@babel/highlight" "^7.23.4" chalk "^2.4.2" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5": - version "7.23.5" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz" - integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== - -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0": - version "7.23.7" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz" - integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.7" - "@babel/parser" "^7.23.6" - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.7" - "@babel/types" "^7.23.6" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/generator@^7.23.6": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz" - integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== - dependencies: - "@babel/types" "^7.23.6" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz" - integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== - dependencies: - "@babel/compat-data" "^7.23.5" - "@babel/helper-validator-option" "^7.23.5" - browserslist "^4.22.2" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-define-polyfill-provider@^0.4.2": - version "0.4.2" - resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz" - integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw== - dependencies: - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - -"@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-imports@^7.22.15": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz" - integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== - dependencies: - "@babel/types" "^7.22.15" - -"@babel/helper-module-transforms@^7.23.3": - version "7.23.3" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz" - integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.20" - -"@babel/helper-plugin-utils@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.23.4": - version "7.23.4" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz" - integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== - "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.23.5": - version "7.23.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz" - integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== - -"@babel/helpers@^7.23.7": - version "7.23.8" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz" - integrity sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ== - dependencies: - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.7" - "@babel/types" "^7.23.6" - "@babel/highlight@^7.23.4": version "7.23.4" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== dependencies: "@babel/helper-validator-identifier" "^7.22.20" chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.22.15", "@babel/parser@^7.23.6": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz" - integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== - -"@babel/plugin-transform-runtime@^7.5.5": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz" - integrity sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g== - dependencies: - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.5" - babel-plugin-polyfill-corejs3 "^0.8.3" - babel-plugin-polyfill-regenerator "^0.5.2" - semver "^6.3.1" - -"@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5": - version "7.23.1" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.1.tgz" - integrity sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g== +"@babel/runtime@^7.4.4": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.8.tgz#8ee6fe1ac47add7122902f257b8ddf55c898f650" + integrity sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.22.15": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" - -"@babel/traverse@^7.23.7": - version "7.23.7" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz" - integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.6" - "@babel/types" "^7.23.6" - debug "^4.3.1" - globals "^11.1.0" - -"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz" - integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== - dependencies: - "@babel/helper-string-parser" "^7.23.4" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" - -"@chainlink/contracts@^0.8.0": - version "0.8.0" - resolved "https://registry.npmjs.org/@chainlink/contracts/-/contracts-0.8.0.tgz" - integrity sha512-nUv1Uxw5Mn92wgLs2bgPYmo8hpdQ3s9jB/lcbdU0LmNOVu0hbfmouVnqwRLa28Ll50q6GczUA+eO0ikNIKLZsA== - dependencies: - "@eth-optimism/contracts" "^0.5.21" - "@openzeppelin/contracts" "~4.3.3" - "@openzeppelin/contracts-upgradeable-4.7.3" "npm:@openzeppelin/contracts-upgradeable@v4.7.3" - "@openzeppelin/contracts-v0.7" "npm:@openzeppelin/contracts@v3.4.2" - "@chainsafe/as-sha256@^0.3.1": version "0.3.1" - resolved "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz" + resolved "https://registry.yarnpkg.com/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz#3639df0e1435cab03f4d9870cc3ac079e57a6fc9" integrity sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg== "@chainsafe/persistent-merkle-tree@^0.4.2": version "0.4.2" - resolved "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz" + resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz#4c9ee80cc57cd3be7208d98c40014ad38f36f7ff" integrity sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ== dependencies: "@chainsafe/as-sha256" "^0.3.1" "@chainsafe/persistent-merkle-tree@^0.5.0": version "0.5.0" - resolved "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz" + resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz#2b4a62c9489a5739dedd197250d8d2f5427e9f63" integrity sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw== dependencies: "@chainsafe/as-sha256" "^0.3.1" "@chainsafe/ssz@^0.10.0": version "0.10.2" - resolved "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.10.2.tgz" + resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-0.10.2.tgz#c782929e1bb25fec66ba72e75934b31fd087579e" integrity sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg== dependencies: "@chainsafe/as-sha256" "^0.3.1" @@ -268,7 +65,7 @@ "@chainsafe/ssz@^0.9.2": version "0.9.4" - resolved "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.9.4.tgz" + resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-0.9.4.tgz#696a8db46d6975b600f8309ad3a12f7c0e310497" integrity sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ== dependencies: "@chainsafe/as-sha256" "^0.3.1" @@ -277,14 +74,14 @@ "@cspotcode/source-map-support@^0.8.0": version "0.8.1" - resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== dependencies: "@jridgewell/trace-mapping" "0.3.9" "@ensdomains/address-encoder@^0.1.7": version "0.1.9" - resolved "https://registry.npmjs.org/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz" + resolved "https://registry.yarnpkg.com/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz#f948c485443d9ef7ed2c0c4790e931c33334d02d" integrity sha512-E2d2gP4uxJQnDu2Kfg1tHNspefzbLT8Tyjrm5sEuim32UkU2sm5xL4VXtgc2X33fmPEw9+jUMpGs4veMbf+PYg== dependencies: bech32 "^1.1.3" @@ -295,9 +92,9 @@ nano-base32 "^1.0.1" ripemd160 "^2.0.2" -"@ensdomains/ens@^0.4.4", "@ensdomains/ens@0.4.5": +"@ensdomains/ens@0.4.5": version "0.4.5" - resolved "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz" + resolved "https://registry.yarnpkg.com/@ensdomains/ens/-/ens-0.4.5.tgz#e0aebc005afdc066447c6e22feb4eda89a5edbfc" integrity sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw== dependencies: bluebird "^3.5.2" @@ -308,7 +105,7 @@ "@ensdomains/ensjs@^2.1.0": version "2.1.0" - resolved "https://registry.npmjs.org/@ensdomains/ensjs/-/ensjs-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/@ensdomains/ensjs/-/ensjs-2.1.0.tgz#0a7296c1f3d735ef019320d863a7846a0760c460" integrity sha512-GRbGPT8Z/OJMDuxs75U/jUNEC0tbL0aj7/L/QQznGYKm/tiasp+ndLOaoULy9kKJFC0TBByqfFliEHDgoLhyog== dependencies: "@babel/runtime" "^7.4.4" @@ -320,27 +117,27 @@ ethers "^5.0.13" js-sha3 "^0.8.0" -"@ensdomains/resolver@^0.2.4", "@ensdomains/resolver@0.2.4": +"@ensdomains/resolver@0.2.4": version "0.2.4" - resolved "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz" + resolved "https://registry.yarnpkg.com/@ensdomains/resolver/-/resolver-0.2.4.tgz#c10fe28bf5efbf49bff4666d909aed0265efbc89" integrity sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA== "@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" - resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.0", "@eslint-community/regexpp@^4.6.1": - version "4.8.2" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.2.tgz" - integrity sha512-0MGxAVt1m/ZK+LTJp/j0qF7Hz97D9O/FH9Ms3ltnyIdDD57cbb1ACIQTkbHvNXtWDv5TPq7w5Kq56+cNukbo7g== + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== -"@eslint/eslintrc@^2.1.2": - version "2.1.2" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz" - integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -352,45 +149,14 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.50.0": - version "8.50.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz" - integrity sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ== - -"@eth-optimism/contracts@^0.5.21": - version "0.5.40" - resolved "https://registry.npmjs.org/@eth-optimism/contracts/-/contracts-0.5.40.tgz" - integrity sha512-MrzV0nvsymfO/fursTB7m/KunkPsCndltVgfdHaT1Aj5Vi6R/doKIGGkOofHX+8B6VMZpuZosKCMQ5lQuqjt8w== - dependencies: - "@eth-optimism/core-utils" "0.12.0" - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - -"@eth-optimism/core-utils@0.12.0": - version "0.12.0" - resolved "https://registry.npmjs.org/@eth-optimism/core-utils/-/core-utils-0.12.0.tgz" - integrity sha512-qW+7LZYCz7i8dRa7SRlUKIo1VBU8lvN0HeXCxJR+z+xtMzMQpPds20XJNCMclszxYQHkXY00fOT6GvFw9ZL6nw== - dependencies: - "@ethersproject/abi" "^5.7.0" - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/address" "^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/keccak256" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/providers" "^5.7.0" - "@ethersproject/rlp" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/web" "^5.7.0" - bufio "^1.0.7" - chai "^4.3.4" +"@eslint/js@8.56.0": + version "8.56.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" + integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== "@ethereum-waffle/chai@4.0.10": version "4.0.10" - resolved "https://registry.npmjs.org/@ethereum-waffle/chai/-/chai-4.0.10.tgz" + resolved "https://registry.yarnpkg.com/@ethereum-waffle/chai/-/chai-4.0.10.tgz#6f600a40b6fdaed331eba42b8625ff23f3a0e59a" integrity sha512-X5RepE7Dn8KQLFO7HHAAe+KeGaX/by14hn90wePGBhzL54tq4Y8JscZFu+/LCwCl6TnkAAy5ebiMoqJ37sFtWw== dependencies: "@ethereum-waffle/provider" "4.0.5" @@ -399,7 +165,7 @@ "@ethereum-waffle/compiler@4.0.3": version "4.0.3" - resolved "https://registry.npmjs.org/@ethereum-waffle/compiler/-/compiler-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/@ethereum-waffle/compiler/-/compiler-4.0.3.tgz#069e2df24b879b8a7b78857bad6f8bf6ebc8a5b1" integrity sha512-5x5U52tSvEVJS6dpCeXXKvRKyf8GICDwiTwUvGD3/WD+DpvgvaoHOL82XqpTSUHgV3bBq6ma5/8gKUJUIAnJCw== dependencies: "@resolver-engine/imports" "^0.3.3" @@ -412,17 +178,17 @@ "@ethereum-waffle/ens@4.0.3": version "4.0.3" - resolved "https://registry.npmjs.org/@ethereum-waffle/ens/-/ens-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/@ethereum-waffle/ens/-/ens-4.0.3.tgz#4a46ac926414f3c83b4e8cc2562c8e2aee06377a" integrity sha512-PVLcdnTbaTfCrfSOrvtlA9Fih73EeDvFS28JQnT5M5P4JMplqmchhcZB1yg/fCtx4cvgHlZXa0+rOCAk2Jk0Jw== "@ethereum-waffle/mock-contract@4.0.4": version "4.0.4" - resolved "https://registry.npmjs.org/@ethereum-waffle/mock-contract/-/mock-contract-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/@ethereum-waffle/mock-contract/-/mock-contract-4.0.4.tgz#f13fea29922d87a4d2e7c4fc8fe72ea04d2c13de" integrity sha512-LwEj5SIuEe9/gnrXgtqIkWbk2g15imM/qcJcxpLyAkOj981tQxXmtV4XmQMZsdedEsZ/D/rbUAOtZbgwqgUwQA== "@ethereum-waffle/provider@4.0.5": version "4.0.5" - resolved "https://registry.npmjs.org/@ethereum-waffle/provider/-/provider-4.0.5.tgz" + resolved "https://registry.yarnpkg.com/@ethereum-waffle/provider/-/provider-4.0.5.tgz#8a65dbf0263f4162c9209608205dee1c960e716b" integrity sha512-40uzfyzcrPh+Gbdzv89JJTMBlZwzya1YLDyim8mVbEqYLP5VRYWoGp0JMyaizgV3hMoUFRqJKVmIUw4v7r3hYw== dependencies: "@ethereum-waffle/ens" "4.0.3" @@ -432,7 +198,7 @@ "@ethereumjs/block@^3.5.0", "@ethereumjs/block@^3.6.0", "@ethereumjs/block@^3.6.2": version "3.6.3" - resolved "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.3.tgz" + resolved "https://registry.yarnpkg.com/@ethereumjs/block/-/block-3.6.3.tgz#d96cbd7af38b92ebb3424223dbf773f5ccd27f84" integrity sha512-CegDeryc2DVKnDkg5COQrE0bJfw/p0v3GBk2W5/Dj5dOVfEmb50Ux0GLnSPypooLnfqjwFaorGuT9FokWB3GRg== dependencies: "@ethereumjs/common" "^2.6.5" @@ -442,7 +208,7 @@ "@ethereumjs/blockchain@^5.5.0": version "5.5.3" - resolved "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz" + resolved "https://registry.yarnpkg.com/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz#aa49a6a04789da6b66b5bcbb0d0b98efc369f640" integrity sha512-bi0wuNJ1gw4ByNCV56H0Z4Q7D+SxUbwyG12Wxzbvqc89PXLRNR20LBcSUZRKpN0+YCPo6m0XZL/JLio3B52LTw== dependencies: "@ethereumjs/block" "^3.6.2" @@ -454,25 +220,9 @@ lru-cache "^5.1.1" semaphore-async-await "^1.5.1" -"@ethereumjs/common@^2.4.0", "@ethereumjs/common@^2.6.0", "@ethereumjs/common@^2.6.4", "@ethereumjs/common@^2.6.5": - version "2.6.5" - resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz" - integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== - dependencies: - crc-32 "^1.2.0" - ethereumjs-util "^7.1.5" - -"@ethereumjs/common@^2.5.0": - version "2.6.5" - resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz" - integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== - dependencies: - crc-32 "^1.2.0" - ethereumjs-util "^7.1.5" - "@ethereumjs/common@2.5.0": version "2.5.0" - resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.5.0.tgz#ec61551b31bef7a69d1dc634d8932468866a4268" integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg== dependencies: crc-32 "^1.2.0" @@ -480,15 +230,23 @@ "@ethereumjs/common@2.6.0": version "2.6.0" - resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.0.tgz" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.0.tgz#feb96fb154da41ee2cc2c5df667621a440f36348" integrity sha512-Cq2qS0FTu6O2VU1sgg+WyU9Ps0M6j/BEMHN+hRaECXCV/r0aI78u4N6p52QW/BDVhwWZpCdrvG8X7NJdzlpNUA== dependencies: crc-32 "^1.2.0" ethereumjs-util "^7.1.3" +"@ethereumjs/common@2.6.5", "@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.0", "@ethereumjs/common@^2.6.4", "@ethereumjs/common@^2.6.5": + version "2.6.5" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30" + integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== + dependencies: + crc-32 "^1.2.0" + ethereumjs-util "^7.1.5" + "@ethereumjs/ethash@^1.1.0": version "1.1.0" - resolved "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/@ethereumjs/ethash/-/ethash-1.1.0.tgz#7c5918ffcaa9cb9c1dc7d12f77ef038c11fb83fb" integrity sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA== dependencies: "@ethereumjs/block" "^3.5.0" @@ -499,20 +257,12 @@ "@ethereumjs/rlp@^4.0.1": version "4.0.1" - resolved "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== -"@ethereumjs/tx@^3.3.0", "@ethereumjs/tx@^3.4.0", "@ethereumjs/tx@^3.5.2": - version "3.5.2" - resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz" - integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== - dependencies: - "@ethereumjs/common" "^2.6.4" - ethereumjs-util "^7.1.5" - "@ethereumjs/tx@3.3.2": version "3.3.2" - resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.2.tgz#348d4624bf248aaab6c44fec2ae67265efe3db00" integrity sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog== dependencies: "@ethereumjs/common" "^2.5.0" @@ -520,15 +270,23 @@ "@ethereumjs/tx@3.4.0": version "3.4.0" - resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.4.0.tgz" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.4.0.tgz#7eb1947eefa55eb9cf05b3ca116fb7a3dbd0bce7" integrity sha512-WWUwg1PdjHKZZxPPo274ZuPsJCWV3SqATrEKQP1n2DrVYVP1aZIYpo/mFaA0BDoE0tIQmBeimRCEA0Lgil+yYw== dependencies: "@ethereumjs/common" "^2.6.0" ethereumjs-util "^7.1.3" +"@ethereumjs/tx@3.5.2", "@ethereumjs/tx@^3.4.0", "@ethereumjs/tx@^3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.2.tgz#197b9b6299582ad84f9527ca961466fce2296c1c" + integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== + dependencies: + "@ethereumjs/common" "^2.6.4" + ethereumjs-util "^7.1.5" + "@ethereumjs/util@^8.1.0": version "8.1.0" - resolved "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== dependencies: "@ethereumjs/rlp" "^4.0.1" @@ -537,7 +295,7 @@ "@ethereumjs/vm@5.6.0": version "5.6.0" - resolved "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.6.0.tgz" + resolved "https://registry.yarnpkg.com/@ethereumjs/vm/-/vm-5.6.0.tgz#e0ca62af07de820143674c30b776b86c1983a464" integrity sha512-J2m/OgjjiGdWF2P9bj/4LnZQ1zRoZhY8mRNVw/N3tXliGI8ai1sI1mlDPkLpeUUM4vq54gH6n0ZlSpz8U/qlYQ== dependencies: "@ethereumjs/block" "^3.6.0" @@ -553,9 +311,9 @@ merkle-patricia-tree "^4.2.2" rustbn.js "~0.2.0" -"@ethersproject/abi@^5.0.0", "@ethersproject/abi@^5.0.0-beta.146", "@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.4.7", "@ethersproject/abi@^5.6.3", "@ethersproject/abi@^5.7.0", "@ethersproject/abi@5.7.0": +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.6.3", "@ethersproject/abi@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== dependencies: "@ethersproject/address" "^5.7.0" @@ -568,9 +326,9 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/abstract-provider@^5.7.0", "@ethersproject/abstract-provider@5.7.0": +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -581,9 +339,9 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@^5.7.0", "@ethersproject/abstract-signer@5.7.0": +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== dependencies: "@ethersproject/abstract-provider" "^5.7.0" @@ -592,9 +350,9 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/address@^5.0.2", "@ethersproject/address@^5.7.0", "@ethersproject/address@5.7.0": +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -603,47 +361,47 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/rlp" "^5.7.0" -"@ethersproject/base64@^5.7.0", "@ethersproject/base64@5.7.0": +"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== dependencies: "@ethersproject/bytes" "^5.7.0" -"@ethersproject/basex@^5.7.0", "@ethersproject/basex@5.7.0": +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@^5.7.0", "@ethersproject/bignumber@5.7.0": +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" bn.js "^5.2.1" -"@ethersproject/bytes@^5.7.0", "@ethersproject/bytes@5.7.0": +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/constants@^5.7.0", "@ethersproject/constants@5.7.0": +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== dependencies: "@ethersproject/bignumber" "^5.7.0" -"@ethersproject/contracts@^5.7.0", "@ethersproject/contracts@5.7.0": +"@ethersproject/contracts@5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== dependencies: "@ethersproject/abi" "^5.7.0" @@ -657,9 +415,9 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/transactions" "^5.7.0" -"@ethersproject/hash@^5.7.0", "@ethersproject/hash@5.7.0": +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== dependencies: "@ethersproject/abstract-signer" "^5.7.0" @@ -672,9 +430,9 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/hdnode@^5.7.0", "@ethersproject/hdnode@5.7.0": +"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== dependencies: "@ethersproject/abstract-signer" "^5.7.0" @@ -690,9 +448,9 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/json-wallets@^5.7.0", "@ethersproject/json-wallets@5.7.0": +"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== dependencies: "@ethersproject/abstract-signer" "^5.7.0" @@ -709,44 +467,44 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@^5.7.0", "@ethersproject/keccak256@5.7.0": +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== dependencies: "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/logger@^5.7.0", "@ethersproject/logger@5.7.0": +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== -"@ethersproject/networks@^5.7.0", "@ethersproject/networks@5.7.1": +"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": version "5.7.1" - resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/pbkdf2@^5.7.0", "@ethersproject/pbkdf2@5.7.0": +"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/sha2" "^5.7.0" -"@ethersproject/properties@^5.7.0", "@ethersproject/properties@5.7.0": +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/providers@^5.0.0", "@ethersproject/providers@^5.4.7", "@ethersproject/providers@^5.7.0", "@ethersproject/providers@^5.7.1", "@ethersproject/providers@^5.7.2", "@ethersproject/providers@5.7.2": +"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.7.1", "@ethersproject/providers@^5.7.2": version "5.7.2" - resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== dependencies: "@ethersproject/abstract-provider" "^5.7.0" @@ -770,34 +528,34 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@^5.7.0", "@ethersproject/random@5.7.0": +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@^5.7.0", "@ethersproject/rlp@5.7.0": +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@^5.7.0", "@ethersproject/sha2@5.7.0": +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" -"@ethersproject/signing-key@^5.7.0", "@ethersproject/signing-key@5.7.0": +"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -809,7 +567,7 @@ "@ethersproject/solidity@5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -819,18 +577,18 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/strings@^5.7.0", "@ethersproject/strings@5.7.0": +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0", "@ethersproject/transactions@5.7.0": +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== dependencies: "@ethersproject/address" "^5.7.0" @@ -845,7 +603,7 @@ "@ethersproject/units@5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -854,7 +612,7 @@ "@ethersproject/wallet@5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== dependencies: "@ethersproject/abstract-provider" "^5.7.0" @@ -873,9 +631,9 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/web@^5.7.0", "@ethersproject/web@5.7.1": +"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": version "5.7.1" - resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== dependencies: "@ethersproject/base64" "^5.7.0" @@ -884,9 +642,9 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/wordlists@^5.7.0", "@ethersproject/wordlists@5.7.0": +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -895,16 +653,21 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" +"@fastify/busboy@^2.0.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff" + integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA== + "@ganache/ethereum-address@0.1.4": version "0.1.4" - resolved "https://registry.npmjs.org/@ganache/ethereum-address/-/ethereum-address-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/@ganache/ethereum-address/-/ethereum-address-0.1.4.tgz#0e6d66f4a24f64bf687cb3ff7358fb85b9d9005e" integrity sha512-sTkU0M9z2nZUzDeHRzzGlW724xhMLXo2LeX1hixbnjHWY1Zg1hkqORywVfl+g5uOO8ht8T0v+34IxNxAhmWlbw== dependencies: "@ganache/utils" "0.1.4" "@ganache/ethereum-options@0.1.4": version "0.1.4" - resolved "https://registry.npmjs.org/@ganache/ethereum-options/-/ethereum-options-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/@ganache/ethereum-options/-/ethereum-options-0.1.4.tgz#6a559abb44225e2b8741a8f78a19a46714a71cd6" integrity sha512-i4l46taoK2yC41FPkcoDlEVoqHS52wcbHPqJtYETRWqpOaoj9hAg/EJIHLb1t6Nhva2CdTO84bG+qlzlTxjAHw== dependencies: "@ganache/ethereum-address" "0.1.4" @@ -916,7 +679,7 @@ "@ganache/ethereum-utils@0.1.4": version "0.1.4" - resolved "https://registry.npmjs.org/@ganache/ethereum-utils/-/ethereum-utils-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/@ganache/ethereum-utils/-/ethereum-utils-0.1.4.tgz#fae4b5b9e642e751ff1fa0cd7316c92996317257" integrity sha512-FKXF3zcdDrIoCqovJmHLKZLrJ43234Em2sde/3urUT/10gSgnwlpFmrv2LUMAmSbX3lgZhW/aSs8krGhDevDAg== dependencies: "@ethereumjs/common" "2.6.0" @@ -931,7 +694,7 @@ "@ganache/options@0.1.4": version "0.1.4" - resolved "https://registry.npmjs.org/@ganache/options/-/options-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/@ganache/options/-/options-0.1.4.tgz#325b07e6de85094667aaaaf3d653e32404a04b78" integrity sha512-zAe/craqNuPz512XQY33MOAG6Si1Xp0hCvfzkBfj2qkuPcbJCq6W/eQ5MB6SbXHrICsHrZOaelyqjuhSEmjXRw== dependencies: "@ganache/utils" "0.1.4" @@ -940,7 +703,7 @@ "@ganache/rlp@0.1.4": version "0.1.4" - resolved "https://registry.npmjs.org/@ganache/rlp/-/rlp-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/@ganache/rlp/-/rlp-0.1.4.tgz#f4043afda83e1a14a4f80607b103daf166a9b374" integrity sha512-Do3D1H6JmhikB+6rHviGqkrNywou/liVeFiKIpOBLynIpvZhRCgn3SEDxyy/JovcaozTo/BynHumfs5R085MFQ== dependencies: "@ganache/utils" "0.1.4" @@ -948,7 +711,7 @@ "@ganache/utils@0.1.4": version "0.1.4" - resolved "https://registry.npmjs.org/@ganache/utils/-/utils-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/@ganache/utils/-/utils-0.1.4.tgz#25d60d7689e3dda6a8a7ad70e3646f07c2c39a1f" integrity sha512-oatUueU3XuXbUbUlkyxeLLH3LzFZ4y5aSkNbx6tjSIhVTPeh+AuBKYt4eQ73FFcTB3nj/gZoslgAh5CN7O369w== dependencies: emittery "0.10.0" @@ -957,28 +720,28 @@ optionalDependencies: "@trufflesuite/bigint-buffer" "1.1.9" -"@humanwhocodes/config-array@^0.11.11": - version "0.11.11" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz" - integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== +"@humanwhocodes/config-array@^0.11.13": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== "@isaacs/cliui@^8.0.2": version "8.0.2" - resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: string-width "^5.1.2" @@ -988,49 +751,27 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": +"@jridgewell/resolve-uri@^3.0.3": version "3.1.1" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": +"@jridgewell/sourcemap-codec@^1.4.10": version "1.4.15" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.17": - version "0.3.22" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz" - integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@jridgewell/trace-mapping@^0.3.9", "@jridgewell/trace-mapping@0.3.9": +"@jridgewell/trace-mapping@0.3.9": version "0.3.9" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@metamask/eth-sig-util@^4.0.0", "@metamask/eth-sig-util@4.0.1": +"@metamask/eth-sig-util@^4.0.0": version "4.0.1" - resolved "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" integrity sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ== dependencies: ethereumjs-abi "^0.6.8" @@ -1039,79 +780,49 @@ tweetnacl "^1.0.3" tweetnacl-util "^0.15.1" -"@metamask/safe-event-emitter@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz" - integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== - -"@noble/curves@~1.1.0", "@noble/curves@1.1.0": +"@noble/curves@1.1.0", "@noble/curves@~1.1.0": version "1.1.0" - resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.1.0.tgz#f13fc667c89184bc04cccb9b11e8e7bae27d8c3d" integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA== dependencies: "@noble/hashes" "1.3.1" -"@noble/hashes@~1.1.1": - version "1.1.5" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz" - integrity sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ== - -"@noble/hashes@~1.2.0", "@noble/hashes@1.2.0": +"@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": version "1.2.0" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== -"@noble/hashes@~1.3.0": - version "1.3.2" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz" - integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== - -"@noble/hashes@~1.3.1": - version "1.3.2" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz" - integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== - -"@noble/hashes@1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz" - integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== - "@noble/hashes@1.3.1": version "1.3.1" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== -"@noble/secp256k1@~1.6.0", "@noble/secp256k1@1.6.3": - version "1.6.3" - resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz" - integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== - -"@noble/secp256k1@~1.7.0": - version "1.7.1" - resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz" - integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== +"@noble/hashes@~1.3.0", "@noble/hashes@~1.3.1": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" + integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== -"@noble/secp256k1@1.7.1": +"@noble/secp256k1@1.7.1", "@noble/secp256k1@~1.7.0": version "1.7.1" - resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -1119,7 +830,7 @@ "@nomicfoundation/ethereumjs-block@5.0.2": version "5.0.2" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.2.tgz" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.2.tgz#13a7968f5964f1697da941281b7f7943b0465d04" integrity sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q== dependencies: "@nomicfoundation/ethereumjs-common" "4.0.2" @@ -1132,7 +843,7 @@ "@nomicfoundation/ethereumjs-blockchain@7.0.2": version "7.0.2" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.2.tgz" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.2.tgz#45323b673b3d2fab6b5008535340d1b8fea7d446" integrity sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w== dependencies: "@nomicfoundation/ethereumjs-block" "5.0.2" @@ -1151,7 +862,7 @@ "@nomicfoundation/ethereumjs-common@4.0.2": version "4.0.2" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.2.tgz#a15d1651ca36757588fdaf2a7d381a150662a3c3" integrity sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg== dependencies: "@nomicfoundation/ethereumjs-util" "9.0.2" @@ -1159,7 +870,7 @@ "@nomicfoundation/ethereumjs-ethash@3.0.2": version "3.0.2" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.2.tgz#da77147f806401ee996bfddfa6487500118addca" integrity sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg== dependencies: "@nomicfoundation/ethereumjs-block" "5.0.2" @@ -1171,7 +882,7 @@ "@nomicfoundation/ethereumjs-evm@2.0.2": version "2.0.2" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.2.tgz#4c2f4b84c056047102a4fa41c127454e3f0cfcf6" integrity sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ== dependencies: "@ethersproject/providers" "^5.7.1" @@ -1185,12 +896,12 @@ "@nomicfoundation/ethereumjs-rlp@5.0.2": version "5.0.2" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.2.tgz" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.2.tgz#4fee8dc58a53ac6ae87fb1fca7c15dc06c6b5dea" integrity sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA== "@nomicfoundation/ethereumjs-statemanager@2.0.2": version "2.0.2" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.2.tgz#3ba4253b29b1211cafe4f9265fee5a0d780976e0" integrity sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA== dependencies: "@nomicfoundation/ethereumjs-common" "4.0.2" @@ -1202,7 +913,7 @@ "@nomicfoundation/ethereumjs-trie@6.0.2": version "6.0.2" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.2.tgz#9a6dbd28482dca1bc162d12b3733acab8cd12835" integrity sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ== dependencies: "@nomicfoundation/ethereumjs-rlp" "5.0.2" @@ -1213,7 +924,7 @@ "@nomicfoundation/ethereumjs-tx@5.0.2": version "5.0.2" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.2.tgz" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.2.tgz#117813b69c0fdc14dd0446698a64be6df71d7e56" integrity sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g== dependencies: "@chainsafe/ssz" "^0.9.2" @@ -1225,7 +936,7 @@ "@nomicfoundation/ethereumjs-util@9.0.2": version "9.0.2" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.2.tgz" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.2.tgz#16bdc1bb36f333b8a3559bbb4b17dac805ce904d" integrity sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ== dependencies: "@chainsafe/ssz" "^0.10.0" @@ -1234,7 +945,7 @@ "@nomicfoundation/ethereumjs-vm@7.0.2": version "7.0.2" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.2.tgz" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.2.tgz#3b0852cb3584df0e18c182d0672a3596c9ca95e6" integrity sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA== dependencies: "@nomicfoundation/ethereumjs-block" "5.0.2" @@ -1253,19 +964,64 @@ "@nomicfoundation/hardhat-network-helpers@^1.0.7": version "1.0.10" - resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz#c61042ceb104fdd6c10017859fdef6529c1d6585" integrity sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ== dependencies: ethereumjs-util "^7.1.4" "@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1": version "0.1.1" - resolved "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz#4c858096b1c17fe58a474fe81b46815f93645c15" integrity sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w== +"@nomicfoundation/solidity-analyzer-darwin-x64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz#6e25ccdf6e2d22389c35553b64fe6f3fdaec432c" + integrity sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA== + +"@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz#0a224ea50317139caeebcdedd435c28a039d169c" + integrity sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA== + +"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz#dfa085d9ffab9efb2e7b383aed3f557f7687ac2b" + integrity sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg== + +"@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz#c9e06b5d513dd3ab02a7ac069c160051675889a4" + integrity sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w== + +"@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz#8d328d16839e52571f72f2998c81e46bf320f893" + integrity sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA== + +"@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz#9b49d0634b5976bb5ed1604a1e1b736f390959bb" + integrity sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w== + +"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz#e2867af7264ebbcc3131ef837878955dd6a3676f" + integrity sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg== + +"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz#0685f78608dd516c8cdfb4896ed451317e559585" + integrity sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ== + +"@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz#c9a44f7108646f083b82e851486e0f6aeb785836" + integrity sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw== + "@nomicfoundation/solidity-analyzer@^0.1.0": version "0.1.1" - resolved "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz#f5f4d36d3f66752f59a57e7208cd856f3ddf6f2d" integrity sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg== optionalDependencies: "@nomicfoundation/solidity-analyzer-darwin-arm64" "0.1.1" @@ -1279,15 +1035,15 @@ "@nomicfoundation/solidity-analyzer-win32-ia32-msvc" "0.1.1" "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.1" -"@nomiclabs/hardhat-ethers@^2.0.0", "@nomiclabs/hardhat-ethers@^2.2.2": +"@nomiclabs/hardhat-ethers@^2.2.2": version "2.2.3" - resolved "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz#b41053e360c31a32c2640c9a45ee981a7e603fe0" integrity sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg== "@nomiclabs/hardhat-etherscan@^3.1.6": - version "3.1.7" - resolved "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.7.tgz" - integrity sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ== + version "3.1.8" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.8.tgz#3c12ee90b3733e0775e05111146ef9418d4f5a38" + integrity sha512-v5F6IzQhrsjHh6kQz4uNrym49brK9K5bYCq2zQZ729RYRaifI9hHbtmK+KkIVevfhut7huQFEQ77JLRMAzWYjQ== dependencies: "@ethersproject/abi" "^5.1.2" "@ethersproject/address" "^5.0.2" @@ -1302,57 +1058,37 @@ "@nomiclabs/hardhat-waffle@^2.0.5": version "2.0.6" - resolved "https://registry.npmjs.org/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.6.tgz#d11cb063a5f61a77806053e54009c40ddee49a54" integrity sha512-+Wz0hwmJGSI17B+BhU/qFRZ1l6/xMW82QGXE/Gi+WTmwgJrQefuBs1lIf7hzQ1hLk6hpkvb/zwcNkpVKRYTQYg== "@nomiclabs/hardhat-web3@^2.0.0": version "2.0.0" - resolved "https://registry.npmjs.org/@nomiclabs/hardhat-web3/-/hardhat-web3-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-web3/-/hardhat-web3-2.0.0.tgz#2d9850cb285a2cebe1bd718ef26a9523542e52a9" integrity sha512-zt4xN+D+fKl3wW2YlTX3k9APR3XZgPkxJYf36AcliJn3oujnKEVRZaHu0PhgLjO+gR+F/kiYayo9fgd2L8970Q== dependencies: "@types/bignumber.js" "^5.0.0" "@openzeppelin/contract-loader@^0.6.2": version "0.6.3" - resolved "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz" + resolved "https://registry.yarnpkg.com/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz#61a7b44de327e40b7d53f39e0fb59bbf847335c3" integrity sha512-cOFIjBjwbGgZhDZsitNgJl0Ye1rd5yu/Yx5LMgeq3u0ZYzldm4uObzHDFq4gjDdoypvyORjjJa3BlFA7eAnVIg== dependencies: find-up "^4.1.0" fs-extra "^8.1.0" -"@openzeppelin/contracts-upgradeable-4.7.3@npm:@openzeppelin/contracts-upgradeable@v4.7.3": - version "4.7.3" - resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.7.3.tgz" - integrity sha512-+wuegAMaLcZnLCJIvrVUDzA9z/Wp93f0Dla/4jJvIhijRrPabjQbZe6fWiECLaJyfn5ci9fqf9vTw3xpQOad2A== - -"@openzeppelin/contracts-upgradeable@^4.9.3": +"@openzeppelin/contracts-upgradeable@^4.9.3", "openzeppelin-contracts-upgradeable-4.9.3@npm:@openzeppelin/contracts-upgradeable@^4.9.3": version "4.9.5" - resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.5.tgz" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.5.tgz#572b5da102fc9be1d73f34968e0ca56765969812" integrity sha512-f7L1//4sLlflAN7fVzJLoRedrf5Na3Oal5PZfIq55NFcVZ90EpV1q5xOvL4lFvg3MNICSDr2hH0JUBxwlxcoPg== -"@openzeppelin/contracts-v0.7@npm:@openzeppelin/contracts@v3.4.2": - version "3.4.2" - resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.2.tgz" - integrity sha512-z0zMCjyhhp4y7XKAcDAi3Vgms4T2PstwBdahiO0+9NaGICQKjynK3wduSRplTgk4LXmoO1yfDGO5RbjKYxtuxA== - -"@openzeppelin/contracts@^4.9.2": +"@openzeppelin/contracts@^4.9.2", "@openzeppelin/contracts@^4.9.3": version "4.9.5" - resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.5.tgz" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.5.tgz#1eed23d4844c861a1835b5d33507c1017fa98de8" integrity sha512-ZK+W5mVhRppff9BE6YdR8CC52C8zAvsVAiWhEtQ5+oNxFE6h1WdeWo+FJSF8KKvtxxVYZ7MTP/5KoVpAU3aSWg== -"@openzeppelin/contracts@^4.9.3": - version "4.9.3" - resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.3.tgz" - integrity sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg== - -"@openzeppelin/contracts@~4.3.3": - version "4.3.3" - resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.3.tgz" - integrity sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g== - "@openzeppelin/test-helpers@^0.5.16": version "0.5.16" - resolved "https://registry.npmjs.org/@openzeppelin/test-helpers/-/test-helpers-0.5.16.tgz" + resolved "https://registry.yarnpkg.com/@openzeppelin/test-helpers/-/test-helpers-0.5.16.tgz#2c9054f85069dfbfb5e8cef3ed781e8caf241fb3" integrity sha512-T1EvspSfH1qQO/sgGlskLfYVBbqzJR23SZzYl/6B2JnT4EhThcI85UpvDk0BkLWKaDScQTabGHt4GzHW+3SfZg== dependencies: "@openzeppelin/contract-loader" "^0.6.2" @@ -1368,22 +1104,22 @@ "@pkgjs/parseargs@^0.11.0": version "0.11.0" - resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== "@prettier/sync@^0.3.0": version "0.3.0" - resolved "https://registry.npmjs.org/@prettier/sync/-/sync-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/@prettier/sync/-/sync-0.3.0.tgz#91f2cfc23490a21586d1cf89c6f72157c000ca1e" integrity sha512-3dcmCyAxIcxy036h1I7MQU/uEEBq8oLwf1CE3xeze+MPlgkdlb/+w6rGR/1dhp6Hqi17fRS6nvwnOzkESxEkOw== "@rari-capital/solmate@^6.4.0": version "6.4.0" - resolved "https://registry.npmjs.org/@rari-capital/solmate/-/solmate-6.4.0.tgz" + resolved "https://registry.yarnpkg.com/@rari-capital/solmate/-/solmate-6.4.0.tgz#c6ee4110c8075f14b415e420b13bd8bdbbc93d9e" integrity sha512-BXWIHHbG5Zbgrxi0qVYe0Zs+bfx+XgOciVUACjuIApV0KzC0kY8XdO1higusIei/ZKCC+GUKdcdQZflxYPUTKQ== "@resolver-engine/core@^0.3.3": version "0.3.3" - resolved "https://registry.npmjs.org/@resolver-engine/core/-/core-0.3.3.tgz" + resolved "https://registry.yarnpkg.com/@resolver-engine/core/-/core-0.3.3.tgz#590f77d85d45bc7ecc4e06c654f41345db6ca967" integrity sha512-eB8nEbKDJJBi5p5SrvrvILn4a0h42bKtbCTri3ZxCGt6UvoQyp7HnGOfki944bUjBSHKK3RvgfViHn+kqdXtnQ== dependencies: debug "^3.1.0" @@ -1392,7 +1128,7 @@ "@resolver-engine/fs@^0.3.3": version "0.3.3" - resolved "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.3.3.tgz" + resolved "https://registry.yarnpkg.com/@resolver-engine/fs/-/fs-0.3.3.tgz#fbf83fa0c4f60154a82c817d2fe3f3b0c049a973" integrity sha512-wQ9RhPUcny02Wm0IuJwYMyAG8fXVeKdmhm8xizNByD4ryZlx6PP6kRen+t/haF43cMfmaV7T3Cx6ChOdHEhFUQ== dependencies: "@resolver-engine/core" "^0.3.3" @@ -1400,7 +1136,7 @@ "@resolver-engine/imports-fs@^0.3.3": version "0.3.3" - resolved "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.3.3.tgz" + resolved "https://registry.yarnpkg.com/@resolver-engine/imports-fs/-/imports-fs-0.3.3.tgz#4085db4b8d3c03feb7a425fbfcf5325c0d1e6c1b" integrity sha512-7Pjg/ZAZtxpeyCFlZR5zqYkz+Wdo84ugB5LApwriT8XFeQoLwGUj4tZFFvvCuxaNCcqZzCYbonJgmGObYBzyCA== dependencies: "@resolver-engine/fs" "^0.3.3" @@ -1409,7 +1145,7 @@ "@resolver-engine/imports@^0.3.3": version "0.3.3" - resolved "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.3.3.tgz" + resolved "https://registry.yarnpkg.com/@resolver-engine/imports/-/imports-0.3.3.tgz#badfb513bb3ff3c1ee9fd56073e3144245588bcc" integrity sha512-anHpS4wN4sRMwsAbMXhMfOD/y4a4Oo0Cw/5+rue7hSwGWsDOQaAU1ClK1OxjUC35/peazxEl8JaSRRS+Xb8t3Q== dependencies: "@resolver-engine/core" "^0.3.3" @@ -1419,22 +1155,13 @@ url "^0.11.0" "@scure/base@~1.1.0": - version "1.1.3" - resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.3.tgz" - integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q== - -"@scure/bip32@1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz" - integrity sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q== - dependencies: - "@noble/hashes" "~1.1.1" - "@noble/secp256k1" "~1.6.0" - "@scure/base" "~1.1.0" + version "1.1.5" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.5.tgz#1d85d17269fe97694b9c592552dd9e5e33552157" + integrity sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ== "@scure/bip32@1.1.5": version "1.1.5" - resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.1.5.tgz#d2ccae16dcc2e75bc1d75f5ef3c66a338d1ba300" integrity sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw== dependencies: "@noble/hashes" "~1.2.0" @@ -1443,24 +1170,16 @@ "@scure/bip32@1.3.1": version "1.3.1" - resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.1.tgz#7248aea723667f98160f593d621c47e208ccbb10" integrity sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A== dependencies: "@noble/curves" "~1.1.0" "@noble/hashes" "~1.3.1" "@scure/base" "~1.1.0" -"@scure/bip39@1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz" - integrity sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w== - dependencies: - "@noble/hashes" "~1.1.1" - "@scure/base" "~1.1.0" - "@scure/bip39@1.1.1": version "1.1.1" - resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.1.tgz#b54557b2e86214319405db819c4b6a370cf340c5" integrity sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg== dependencies: "@noble/hashes" "~1.2.0" @@ -1468,7 +1187,7 @@ "@scure/bip39@1.2.1": version "1.2.1" - resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a" integrity sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg== dependencies: "@noble/hashes" "~1.3.0" @@ -1476,7 +1195,7 @@ "@sentry/core@5.30.0": version "5.30.0" - resolved "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3" integrity sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg== dependencies: "@sentry/hub" "5.30.0" @@ -1487,7 +1206,7 @@ "@sentry/hub@5.30.0": version "5.30.0" - resolved "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.30.0.tgz#2453be9b9cb903404366e198bd30c7ca74cdc100" integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ== dependencies: "@sentry/types" "5.30.0" @@ -1496,7 +1215,7 @@ "@sentry/minimal@5.30.0": version "5.30.0" - resolved "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.30.0.tgz#ce3d3a6a273428e0084adcb800bc12e72d34637b" integrity sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw== dependencies: "@sentry/hub" "5.30.0" @@ -1505,7 +1224,7 @@ "@sentry/node@^5.18.1": version "5.30.0" - resolved "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.30.0.tgz#4ca479e799b1021285d7fe12ac0858951c11cd48" integrity sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg== dependencies: "@sentry/core" "5.30.0" @@ -1520,7 +1239,7 @@ "@sentry/tracing@5.30.0": version "5.30.0" - resolved "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-5.30.0.tgz#501d21f00c3f3be7f7635d8710da70d9419d4e1f" integrity sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw== dependencies: "@sentry/hub" "5.30.0" @@ -1531,12 +1250,12 @@ "@sentry/types@5.30.0": version "5.30.0" - resolved "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.30.0.tgz#19709bbe12a1a0115bc790b8942917da5636f402" integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw== "@sentry/utils@5.30.0": version "5.30.0" - resolved "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.30.0.tgz#9a5bd7ccff85ccfe7856d493bffa64cabc41e980" integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww== dependencies: "@sentry/types" "5.30.0" @@ -1544,45 +1263,45 @@ "@sindresorhus/is@^4.0.0", "@sindresorhus/is@^4.6.0": version "4.6.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== "@solidity-parser/parser@^0.14.0": version "0.14.5" - resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz" + resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.5.tgz#87bc3cc7b068e08195c219c91cd8ddff5ef1a804" integrity sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg== dependencies: antlr4ts "^0.5.0-alpha.4" "@solidity-parser/parser@^0.16.0": - version "0.16.1" - resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.1.tgz" - integrity sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw== + version "0.16.2" + resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.16.2.tgz#42cb1e3d88b3e8029b0c9befff00b634cd92d2fa" + integrity sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg== dependencies: antlr4ts "^0.5.0-alpha.4" "@solidity-parser/parser@^0.17.0": version "0.17.0" - resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.17.0.tgz" + resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.17.0.tgz#52a2fcc97ff609f72011014e4c5b485ec52243ef" integrity sha512-Nko8R0/kUo391jsEHHxrGM07QFdnPGvlmox4rmH0kNiNAashItAilhy4Mv4pK5gQmW5f4sXAF58fwJbmlkGcVw== "@szmarczak/http-timer@^4.0.5": version "4.0.6" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== dependencies: defer-to-connect "^2.0.0" "@szmarczak/http-timer@^5.0.1": version "5.0.1" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== dependencies: defer-to-connect "^2.0.1" "@truffle/abi-utils@^1.0.3": version "1.0.3" - resolved "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/@truffle/abi-utils/-/abi-utils-1.0.3.tgz#9f0df7a8aaf5e815bee47e0ad26bd4c91e4045f2" integrity sha512-AWhs01HCShaVKjml7Z4AbVREr/u4oiWxCcoR7Cktm0mEvtT04pvnxW5xB/cI4znRkrbPdFQlFt67kgrAjesYkw== dependencies: change-case "3.0.2" @@ -1591,12 +1310,12 @@ "@truffle/blockchain-utils@^0.1.9": version "0.1.9" - resolved "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.9.tgz" + resolved "https://registry.yarnpkg.com/@truffle/blockchain-utils/-/blockchain-utils-0.1.9.tgz#d9b55bd23a134578e4217bae55a6dfbbb038d6dc" integrity sha512-RHfumgbIVo68Rv9ofDYfynjnYZIfP/f1vZy4RoqkfYAO+fqfc58PDRzB1WAGq2U6GPuOnipOJxQhnqNnffORZg== "@truffle/codec@^0.17.3": version "0.17.3" - resolved "https://registry.npmjs.org/@truffle/codec/-/codec-0.17.3.tgz" + resolved "https://registry.yarnpkg.com/@truffle/codec/-/codec-0.17.3.tgz#94057e56e1a947594b35eba498d96915df3861d2" integrity sha512-Ko/+dsnntNyrJa57jUD9u4qx9nQby+H4GsUO6yjiCPSX0TQnEHK08XWqBSg0WdmCH2+h0y1nr2CXSx8gbZapxg== dependencies: "@truffle/abi-utils" "^1.0.3" @@ -1612,7 +1331,7 @@ "@truffle/compile-common@^0.9.8": version "0.9.8" - resolved "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.8.tgz" + resolved "https://registry.yarnpkg.com/@truffle/compile-common/-/compile-common-0.9.8.tgz#f91507c895852289a17bf401eefebc293c4c69f0" integrity sha512-DTpiyo32t/YhLI1spn84D3MHYHrnoVqO+Gp7ZHrYNwDs86mAxtNiH5lsVzSb8cPgiqlvNsRCU9nm9R0YmKMTBQ== dependencies: "@truffle/error" "^0.2.2" @@ -1620,7 +1339,7 @@ "@truffle/contract-schema@^3.4.16": version "3.4.16" - resolved "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.16.tgz" + resolved "https://registry.yarnpkg.com/@truffle/contract-schema/-/contract-schema-3.4.16.tgz#c529c3f230db407b2f03290373b20b7366f2d37e" integrity sha512-g0WNYR/J327DqtJPI70ubS19K1Fth/1wxt2jFqLsPmz5cGZVjCwuhiie+LfBde4/Mc9QR8G+L3wtmT5cyoBxAg== dependencies: ajv "^6.10.0" @@ -1628,7 +1347,7 @@ "@truffle/contract@^4.0.35": version "4.6.31" - resolved "https://registry.npmjs.org/@truffle/contract/-/contract-4.6.31.tgz" + resolved "https://registry.yarnpkg.com/@truffle/contract/-/contract-4.6.31.tgz#75cb059689ce73b365675d9650718908c01b6b58" integrity sha512-s+oHDpXASnZosiCdzu+X1Tx5mUJUs1L1CYXIcgRmzMghzqJkaUFmR6NpNo7nJYliYbO+O9/aW8oCKqQ7rCHfmQ== dependencies: "@ensdomains/ensjs" "^2.1.0" @@ -1648,7 +1367,7 @@ "@truffle/debug-utils@^6.0.57": version "6.0.57" - resolved "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.57.tgz" + resolved "https://registry.yarnpkg.com/@truffle/debug-utils/-/debug-utils-6.0.57.tgz#4e9a1051221c5f467daa398b0ca638d8b6408a82" integrity sha512-Q6oI7zLaeNLB69ixjwZk2UZEWBY6b2OD1sjLMGDKBGR7GaHYiw96GLR2PFgPH1uwEeLmV4N78LYaQCrDsHbNeA== dependencies: "@truffle/codec" "^0.17.3" @@ -1660,39 +1379,12 @@ "@truffle/error@^0.2.2": version "0.2.2" - resolved "https://registry.npmjs.org/@truffle/error/-/error-0.2.2.tgz" + resolved "https://registry.yarnpkg.com/@truffle/error/-/error-0.2.2.tgz#1b4c4237c14dda792f20bd4f19ff4e4585b47796" integrity sha512-TqbzJ0O8DHh34cu8gDujnYl4dUl6o2DE4PR6iokbybvnIm/L2xl6+Gv1VC+YJS45xfH83Yo3/Zyg/9Oq8/xZWg== -"@truffle/hdwallet-provider@latest": - 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== - dependencies: - "@ethereumjs/common" "^2.4.0" - "@ethereumjs/tx" "^3.3.0" - "@metamask/eth-sig-util" "4.0.1" - "@truffle/hdwallet" "^0.1.4" - "@types/ethereum-protocol" "^1.0.0" - "@types/web3" "1.0.20" - "@types/web3-provider-engine" "^14.0.0" - ethereum-cryptography "1.1.2" - ethereum-protocol "^1.0.1" - ethereumjs-util "^7.1.5" - web3 "1.10.0" - web3-provider-engine "16.0.3" - -"@truffle/hdwallet@^0.1.4": - version "0.1.4" - resolved "https://registry.npmjs.org/@truffle/hdwallet/-/hdwallet-0.1.4.tgz" - integrity sha512-D3SN0iw3sMWUXjWAedP6RJtopo9qQXYi80inzbtcsoso4VhxFxCwFvCErCl4b27AEJ9pkAtgnxEFRaSKdMmi1Q== - dependencies: - ethereum-cryptography "1.1.2" - keccak "3.0.2" - secp256k1 "4.0.3" - "@truffle/interface-adapter@^0.5.37": version "0.5.37" - resolved "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.37.tgz" + resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.5.37.tgz#95d249c1912d2baaa63c54e8a138d3f476a1181a" integrity sha512-lPH9MDgU+7sNDlJSClwyOwPCfuOimqsCx0HfGkznL3mcFRymc1pukAR1k17zn7ErHqBwJjiKAZ6Ri72KkS+IWw== dependencies: bn.js "^5.1.3" @@ -1701,21 +1393,21 @@ "@trufflesuite/bigint-buffer@1.1.10": version "1.1.10" - resolved "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz" + resolved "https://registry.yarnpkg.com/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz#a1d9ca22d3cad1a138b78baaf15543637a3e1692" integrity sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw== dependencies: node-gyp-build "4.4.0" "@trufflesuite/bigint-buffer@1.1.9": version "1.1.9" - resolved "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.9.tgz" + resolved "https://registry.yarnpkg.com/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.9.tgz#e2604d76e1e4747b74376d68f1312f9944d0d75d" integrity sha512-bdM5cEGCOhDSwminryHJbRmXc1x7dPKg6Pqns3qyTwFlxsqUgxE29lsERS3PlIW1HTjoIGMUqsk1zQQwST1Yxw== dependencies: node-gyp-build "4.3.0" "@trufflesuite/chromafi@^3.0.0": version "3.0.0" - resolved "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/@trufflesuite/chromafi/-/chromafi-3.0.0.tgz#f6956408c1af6a38a6ed1657783ce59504a1eb8b" integrity sha512-oqWcOqn8nT1bwlPPfidfzS55vqcIDdpfzo3HbU9EnUmcSTX+I8z0UyUFI3tZQjByVJulbzxHxUGS3ZJPwK/GPQ== dependencies: camelcase "^4.1.0" @@ -1729,27 +1421,27 @@ "@tsconfig/node10@^1.0.7": version "1.0.9" - resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== "@tsconfig/node12@^1.0.7": version "1.0.11" - resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== "@tsconfig/node14@^1.0.0": version "1.0.3" - resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": version "1.0.4" - resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== -"@typechain/ethers-v5@^10.0.0", "@typechain/ethers-v5@^10.2.0", "@typechain/ethers-v5@^10.2.1": +"@typechain/ethers-v5@^10.0.0", "@typechain/ethers-v5@^10.2.0": version "10.2.1" - resolved "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz" + resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz#50241e6957683281ecfa03fb5a6724d8a3ce2391" integrity sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A== dependencies: lodash "^4.17.15" @@ -1757,40 +1449,40 @@ "@typechain/hardhat@^6.1.4": version "6.1.6" - resolved "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-6.1.6.tgz" + resolved "https://registry.yarnpkg.com/@typechain/hardhat/-/hardhat-6.1.6.tgz#1a749eb35e5054c80df531cf440819cb347c62ea" integrity sha512-BiVnegSs+ZHVymyidtK472syodx1sXYlYJJixZfRstHVGYTi8V1O7QG4nsjyb0PC/LORcq7sfBUcHto1y6UgJA== dependencies: fs-extra "^9.1.0" "@types/abstract-leveldown@*": - version "7.2.3" - resolved "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.3.tgz" - integrity sha512-YAdL8tIYbiKoFjAf/0Ir3mvRJ/iFvBP/FK0I8Xa5rGWgVcq0xWOEInzlJfs6TIPWFweEOTKgNSBdxneUcHRvaw== + version "7.2.5" + resolved "https://registry.yarnpkg.com/@types/abstract-leveldown/-/abstract-leveldown-7.2.5.tgz#db2cf364c159fb1f12be6cd3549f56387eaf8d73" + integrity sha512-/2B0nQF4UdupuxeKTJA2+Rj1D+uDemo6P4kMwKCpbfpnzeVaWSELTsAw4Lxn3VJD6APtRrZOCuYo+4nHUQfTfg== "@types/bignumber.js@^5.0.0": version "5.0.0" - resolved "https://registry.npmjs.org/@types/bignumber.js/-/bignumber.js-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/bignumber.js/-/bignumber.js-5.0.0.tgz#d9f1a378509f3010a3255e9cc822ad0eeb4ab969" integrity sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA== dependencies: bignumber.js "*" -"@types/bn.js@*", "@types/bn.js@^5.1.0", "@types/bn.js@^5.1.1": - version "5.1.2" - resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.2.tgz" - integrity sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg== - dependencies: - "@types/node" "*" - "@types/bn.js@^4.11.3": version "4.11.6" - resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== dependencies: "@types/node" "*" +"@types/bn.js@^5.1.0", "@types/bn.js@^5.1.1": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.5.tgz#2e0dacdcce2c0f16b905d20ff87aedbc6f7b4bf0" + integrity sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A== + dependencies: + "@types/node" "*" + "@types/cacheable-request@^6.0.1", "@types/cacheable-request@^6.0.2": version "6.0.3" - resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== dependencies: "@types/http-cache-semantics" "*" @@ -1798,228 +1490,185 @@ "@types/node" "*" "@types/responselike" "^1.0.0" -"@types/chai@*", "@types/chai@^4.3.4": - version "4.3.6" - resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.6.tgz" - integrity sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw== +"@types/chai@^4.3.4": + version "4.3.11" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.11.tgz#e95050bf79a932cb7305dd130254ccdf9bde671c" + integrity sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ== "@types/concat-stream@^1.6.0": version "1.6.1" - resolved "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz" + resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== dependencies: "@types/node" "*" -"@types/ethereum-protocol@*", "@types/ethereum-protocol@^1.0.0": - version "1.0.3" - resolved "https://registry.npmjs.org/@types/ethereum-protocol/-/ethereum-protocol-1.0.3.tgz" - integrity sha512-peaCYb+wAT3Gnttt8Ep6+b3ciVK+mWX5wyVnJiDtmWXU1c9RXi5qDxEjGyZrjU/9EYdXPd3hMiXXBjDDPu96yQ== - dependencies: - bignumber.js "7.2.1" - "@types/form-data@0.0.33": version "0.0.33" - resolved "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz" + resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-0.0.33.tgz#c9ac85b2a5fd18435b8c85d9ecb50e6d6c893ff8" integrity sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw== dependencies: "@types/node" "*" "@types/glob@^7.1.1": version "7.2.0" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== dependencies: "@types/minimatch" "*" "@types/node" "*" "@types/http-cache-semantics@*": - version "4.0.2" - resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz" - integrity sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw== + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== "@types/json-schema@^7.0.9": - version "7.0.13" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz" - integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/json5@^0.0.29": version "0.0.29" - resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/keyv@^3.1.4": version "3.1.4" - resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== dependencies: "@types/node" "*" "@types/level-errors@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/level-errors/-/level-errors-3.0.0.tgz" - integrity sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ== + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/level-errors/-/level-errors-3.0.2.tgz#f33ec813c50780b547463da9ad8acac89ee457d9" + integrity sha512-gyZHbcQ2X5hNXf/9KS2qGEmgDe9EN2WDM3rJ5Ele467C0nA1sLhtmv1bZiPMDYfAYCfPWft0uQIaTvXbASSTRA== "@types/levelup@^4.3.0": version "4.3.3" - resolved "https://registry.npmjs.org/@types/levelup/-/levelup-4.3.3.tgz" + resolved "https://registry.yarnpkg.com/@types/levelup/-/levelup-4.3.3.tgz#4dc2b77db079b1cf855562ad52321aa4241b8ef4" integrity sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA== dependencies: "@types/abstract-leveldown" "*" "@types/level-errors" "*" "@types/node" "*" -"@types/lru-cache@^5.1.0": - version "5.1.1" - resolved "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz" - integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== - -"@types/lru-cache@5.1.1": +"@types/lru-cache@5.1.1", "@types/lru-cache@^5.1.0": version "5.1.1" - resolved "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== "@types/minimatch@*": version "5.1.2" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== "@types/mkdirp@^0.5.2": version "0.5.2" - resolved "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz" + resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz#503aacfe5cc2703d5484326b1b27efa67a339c1f" integrity sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg== dependencies: "@types/node" "*" "@types/mocha@^9.1.1": version "9.1.1" - resolved "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.1.1.tgz#e7c4f1001eefa4b8afbd1eee27a237fee3bf29c4" integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw== "@types/node-fetch@^2.6.1": - version "2.6.6" - resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.6.tgz" - integrity sha512-95X8guJYhfqiuVVhRFxVQcf4hW/2bCuoPwDasMf/531STFoNoWTT7YDnWdXHEZKqAGUigmpG31r2FE70LwnzJw== + version "2.6.11" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.11.tgz#9b39b78665dae0e82a08f02f4967d62c66f95d24" + integrity sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g== dependencies: "@types/node" "*" form-data "^4.0.0" -"@types/node@*", "@types/node@^18.17.14": - version "18.18.0" - resolved "https://registry.npmjs.org/@types/node/-/node-18.18.0.tgz" - integrity sha512-3xA4X31gHT1F1l38ATDIL9GpRLdwVhnEFC8Uikv5ZLlXATwrCYyPq7ZWHxzxc3J/30SUiwiYT+bQe0/XvKlWbw== +"@types/node@*": + version "20.11.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.5.tgz#be10c622ca7fcaa3cf226cf80166abc31389d86e" + integrity sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w== + dependencies: + undici-types "~5.26.4" + +"@types/node@11.11.6": + version "11.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" + integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== "@types/node@^10.0.3": version "10.17.60" - resolved "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== "@types/node@^12.12.6": version "12.20.55" - resolved "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== +"@types/node@^18.17.14": + version "18.19.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.8.tgz#c1e42b165e5a526caf1f010747e0522cb2c9c36a" + integrity sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg== + dependencies: + undici-types "~5.26.4" + "@types/node@^8.0.0": version "8.10.66" - resolved "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== -"@types/node@11.11.6": - version "11.11.6" - resolved "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz" - integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== - "@types/pbkdf2@^3.0.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz" - integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== + version "3.1.2" + resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.2.tgz#2dc43808e9985a2c69ff02e2d2027bd4fe33e8dc" + integrity sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew== dependencies: "@types/node" "*" "@types/prettier@^2.1.1": version "2.7.3" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== "@types/qs@^6.2.31": - version "6.9.8" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz" - integrity sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg== + version "6.9.11" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.11.tgz#208d8a30bc507bd82e03ada29e4732ea46a6bbda" + integrity sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ== "@types/readable-stream@^2.3.13": version "2.3.15" - resolved "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz" + resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.15.tgz#3d79c9ceb1b6a57d5f6e6976f489b9b5384321ae" integrity sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ== dependencies: "@types/node" "*" safe-buffer "~5.1.1" "@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50" + integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== dependencies: "@types/node" "*" "@types/secp256k1@^4.0.1": - version "4.0.4" - resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.4.tgz" - integrity sha512-oN0PFsYxDZnX/qSJ5S5OwaEDTYfekhvaM5vqui2bu1AA39pKofmgL104Q29KiOXizXS2yLjSzc5YdTyMKdcy4A== + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.6.tgz#d60ba2349a51c2cbc5e816dcd831a42029d376bf" + integrity sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ== dependencies: "@types/node" "*" "@types/seedrandom@3.0.1": version "3.0.1" - resolved "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-3.0.1.tgz#1254750a4fec4aff2ebec088ccd0bb02e91fedb4" integrity sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw== "@types/semver@^7.3.12": - version "7.5.3" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz" - integrity sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw== - -"@types/sinon-chai@^3.2.3": - version "3.2.12" - resolved "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.12.tgz" - integrity sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ== - dependencies: - "@types/chai" "*" - "@types/sinon" "*" - -"@types/sinon@*": - version "17.0.3" - resolved "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.3.tgz" - integrity sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw== - dependencies: - "@types/sinonjs__fake-timers" "*" - -"@types/sinonjs__fake-timers@*": - version "8.1.5" - resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz" - integrity sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ== - -"@types/underscore@*": - version "1.11.9" - resolved "https://registry.npmjs.org/@types/underscore/-/underscore-1.11.9.tgz" - integrity sha512-M63wKUdsjDFUfyFt1TCUZHGFk9KDAa5JP0adNUErbm0U45Lr06HtANdYRP+GyleEopEoZ4UyBcdAC5TnW4Uz2w== - -"@types/web3-provider-engine@^14.0.0": - version "14.0.2" - resolved "https://registry.npmjs.org/@types/web3-provider-engine/-/web3-provider-engine-14.0.2.tgz" - integrity sha512-i+vgIh873kDu6MnYZkIqrho4JCan1c8TcPnYY6te2lq1ODD4SPA8JxFCyQjK+vwbLMr5F3N/I37AfK/wxiyuEA== - dependencies: - "@types/ethereum-protocol" "*" - -"@types/web3@1.0.20": - version "1.0.20" - resolved "https://registry.npmjs.org/@types/web3/-/web3-1.0.20.tgz" - integrity sha512-KTDlFuYjzCUlBDGt35Ir5QRtyV9klF84MMKUsEJK10sTWga/71V+8VYLT7yysjuBjaOx2uFYtIWNGoz3yrNDlg== - dependencies: - "@types/bn.js" "*" - "@types/underscore" "*" + version "7.5.6" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" + integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== "@typescript-eslint/eslint-plugin@^5.60.0": version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== dependencies: "@eslint-community/regexpp" "^4.4.0" @@ -2033,9 +1682,9 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.60.0": +"@typescript-eslint/parser@^5.60.0": version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== dependencies: "@typescript-eslint/scope-manager" "5.62.0" @@ -2045,7 +1694,7 @@ "@typescript-eslint/scope-manager@5.62.0": version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== dependencies: "@typescript-eslint/types" "5.62.0" @@ -2053,7 +1702,7 @@ "@typescript-eslint/type-utils@5.62.0": version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== dependencies: "@typescript-eslint/typescript-estree" "5.62.0" @@ -2063,12 +1712,12 @@ "@typescript-eslint/types@5.62.0": version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== dependencies: "@typescript-eslint/types" "5.62.0" @@ -2081,7 +1730,7 @@ "@typescript-eslint/utils@5.62.0": version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" @@ -2095,31 +1744,36 @@ "@typescript-eslint/visitor-keys@5.62.0": version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== dependencies: "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + abbrev@1: version "1.1.1" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== abbrev@1.0.x: version "1.0.9" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== abortcontroller-polyfill@^1.7.3, abortcontroller-polyfill@^1.7.5: version "1.7.5" - resolved "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz" + resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed" integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ== abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz" - integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.4.tgz#3ad8d684c51cc9cbc9cf9612a7100b716c414b57" + integrity sha512-eUP/6pbXBkMbXFdx4IH2fVgvB7M0JvR7/lIL33zcs0IBcwjdzSSl31TOJsaCzmKSSDF9h8QYSOJux4Nd4YJqFg== dependencies: buffer "^6.0.3" catering "^2.1.0" @@ -2131,7 +1785,7 @@ abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: abstract-leveldown@^6.2.1: version "6.3.0" - resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz#d25221d1e6612f820c35963ba4bd739928f6026a" integrity sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ== dependencies: buffer "^5.5.0" @@ -2142,7 +1796,7 @@ abstract-leveldown@^6.2.1: abstract-leveldown@^7.2.0: version "7.2.0" - resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz#08d19d4e26fb5be426f7a57004851b39e1795a2e" integrity sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ== dependencies: buffer "^6.0.3" @@ -2152,23 +1806,9 @@ abstract-leveldown@^7.2.0: level-supports "^2.0.1" queue-microtask "^1.2.3" -abstract-leveldown@~2.6.0: - version "2.6.3" - resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz" - integrity sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA== - dependencies: - xtend "~4.0.0" - -abstract-leveldown@~2.7.1: - version "2.7.2" - resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz" - integrity sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w== - dependencies: - xtend "~4.0.0" - abstract-leveldown@~6.2.1: version "6.2.3" - resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz#036543d87e3710f2528e47040bc3261b77a9a8eb" integrity sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ== dependencies: buffer "^5.5.0" @@ -2179,7 +1819,7 @@ abstract-leveldown@~6.2.1: accepts@~1.3.8: version "1.3.8" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: mime-types "~2.1.34" @@ -2187,44 +1827,44 @@ accepts@~1.3.8: acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.4.1, acorn@^8.9.0: - version "8.10.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== +acorn@^8.4.1, acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== address@^1.0.1: version "1.2.2" - resolved "https://registry.npmjs.org/address/-/address-1.2.2.tgz" + resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== adm-zip@^0.4.16: version "0.4.16" - resolved "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== aes-js@3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== agent-base@6: version "6.0.2" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" @@ -2232,7 +1872,7 @@ aggregate-error@^3.0.0: ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.6: version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -2242,7 +1882,7 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.6: ajv@^8.0.1: version "8.12.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== dependencies: fast-deep-equal "^3.1.1" @@ -2252,100 +1892,83 @@ ajv@^8.0.1: amdefine@>=0.0.4: version "1.0.1" - resolved "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + ansi-colors@^3.2.3: version "3.2.4" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== ansi-colors@^4.1.1: version "4.1.3" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -ansi-colors@3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz" - integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== - -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - ansi-escapes@^4.3.0: version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== ansi-regex@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== -ansi-styles@^3.2.0: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-styles@^6.1.0: version "6.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== antlr4@^4.11.0: version "4.13.1" - resolved "https://registry.npmjs.org/antlr4/-/antlr4-4.13.1.tgz" + resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.13.1.tgz#1e0a1830a08faeb86217cb2e6c34716004e4253d" integrity sha512-kiXTspaRYvnIArgE97z5YVVf/cDVQABr3abFRR6mE7yesLMkgu4ujuyV/sgxafQ8wgve0DJQUJ38Z8tkgA2izA== antlr4ts@^0.5.0-alpha.4: version "0.5.0-alpha.4" - resolved "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz" + resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== -anymatch@~3.1.1, anymatch@~3.1.2: +anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -2353,39 +1976,34 @@ anymatch@~3.1.1, anymatch@~3.1.2: arg@^4.1.0: version "4.1.3" - resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== argparse@^1.0.7: version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argparse@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-back@^3.0.1, array-back@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== -array-back@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz" - integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== - -array-back@^4.0.2: +array-back@^4.0.1, array-back@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== array-buffer-byte-length@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== dependencies: call-bind "^1.0.2" @@ -2393,12 +2011,12 @@ array-buffer-byte-length@^1.0.0: array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -array-includes@^3.1.6: +array-includes@^3.1.7: version "3.1.7" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" @@ -2409,17 +2027,17 @@ array-includes@^3.1.6: array-union@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array-uniq@1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== -array.prototype.findlastindex@^1.2.2: +array.prototype.findlastindex@^1.2.3: version "1.2.3" - resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== dependencies: call-bind "^1.0.2" @@ -2428,9 +2046,9 @@ array.prototype.findlastindex@^1.2.2: es-shim-unscopables "^1.0.0" get-intrinsic "^1.2.1" -array.prototype.flat@^1.3.1: +array.prototype.flat@^1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" @@ -2438,9 +2056,9 @@ array.prototype.flat@^1.3.1: es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.flatmap@^1.3.1: +array.prototype.flatmap@^1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: call-bind "^1.0.2" @@ -2448,21 +2066,10 @@ array.prototype.flatmap@^1.3.1: es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.reduce@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz" - integrity sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.7" - -arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== dependencies: array-buffer-byte-length "^1.0.0" call-bind "^1.0.2" @@ -2474,195 +2081,156 @@ arraybuffer.prototype.slice@^1.0.2: asap@~2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== asn1@~0.2.3: version "0.2.6" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== dependencies: safer-buffer "~2.1.0" -assert-plus@^1.0.0, assert-plus@1.0.0: +assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== assertion-error@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== ast-parents@^0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/ast-parents/-/ast-parents-0.0.1.tgz#508fd0f05d0c48775d9eccda2e174423261e8dd3" integrity sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA== astral-regex@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async-eventemitter@^0.2.2, async-eventemitter@^0.2.4: +async-eventemitter@^0.2.4: version "0.2.4" - resolved "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz" + resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.4.tgz#f5e7c8ca7d3e46aab9ec40a292baf686a0bafaca" integrity sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw== dependencies: async "^2.4.0" async-limiter@~1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async-mutex@^0.2.6: - version "0.2.6" - resolved "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz" - integrity sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw== - dependencies: - tslib "^2.0.0" - -async@^1.4.2: +async@1.x: version "1.5.2" - resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== -async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0: +async@^2.4.0: version "2.6.4" - resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" -async@1.x: - version "1.5.2" - resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" - integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== - asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== available-typed-arrays@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sign2@~0.7.0: version "0.7.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: version "1.12.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== -babel-plugin-polyfill-corejs2@^0.4.5: - version "0.4.5" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz" - integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg== - dependencies: - "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.2" - semver "^6.3.1" - -babel-plugin-polyfill-corejs3@^0.8.3: - version "0.8.4" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz" - integrity sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.2" - core-js-compat "^3.32.2" - -babel-plugin-polyfill-regenerator@^0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz" - integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.2" - -backoff@^2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz" - integrity sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA== +axios@^1.5.1: + version "1.6.5" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.5.tgz#2c090da14aeeab3770ad30c3a1461bc970fb0cd8" + integrity sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg== dependencies: - precond "0.2" + follow-redirects "^1.15.4" + form-data "^4.0.0" + proxy-from-env "^1.1.0" balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base-x@^3.0.2, base-x@^3.0.8: version "3.0.9" - resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== dependencies: safe-buffer "^5.0.1" base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== bcrypt-pbkdf@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== dependencies: tweetnacl "^0.14.3" -bech32@^1.1.3, bech32@1.1.4: +bech32@1.1.4, bech32@^1.1.3: version "1.1.4" - resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== big-integer@1.6.36: version "1.6.36" - resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.36.tgz#78631076265d4ae3555c04f85e7d9d2f3a071a36" integrity sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg== big.js@^6.0.3: version "6.2.1" - resolved "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-6.2.1.tgz#7205ce763efb17c2e41f26f121c420c6a7c2744f" integrity sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ== bigint-crypto-utils@^3.0.23: version "3.3.0" - resolved "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz#72ad00ae91062cf07f2b1def9594006c279c1d77" integrity sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg== bignumber.js@*, bignumber.js@^9.0.0, bignumber.js@^9.0.1: version "9.1.2" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== bignumber.js@^7.2.1: version "7.2.1" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz" - integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== - -bignumber.js@7.2.1: - version "7.2.1" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bip39@3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.4.tgz#5b11fed966840b5e1b8539f0f54ab6392969b2a0" integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw== dependencies: "@types/node" "11.11.6" @@ -2672,51 +2240,36 @@ bip39@3.0.4: blakejs@^1.1.0: version "1.2.1" - resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== bluebird@^3.5.0, bluebird@^3.5.2: version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== +bn.js@4.11.6: + version "4.11.6" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== + bn.js@^4.0.0, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9: version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.1.2: - version "5.2.1" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - -bn.js@^5.1.3: - version "5.2.1" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - -bn.js@^5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - -bn.js@^5.2.1: +bn.js@^5.1.2, bn.js@^5.1.3, bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.1" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz" - integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== - -body-parser@^1.16.0: - version "1.20.2" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" - integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== dependencies: bytes "3.1.2" - content-type "~1.0.5" + content-type "~1.0.4" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -2724,17 +2277,17 @@ body-parser@^1.16.0: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.2" + raw-body "2.5.1" type-is "~1.6.18" unpipe "1.0.0" -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== +body-parser@^1.16.0: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" depd "2.0.0" destroy "1.2.0" @@ -2742,18 +2295,18 @@ body-parser@1.20.1: iconv-lite "0.4.24" on-finished "2.4.1" qs "6.11.0" - raw-body "2.5.1" + raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -2761,26 +2314,26 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" braces@^3.0.2, braces@~3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== browser-level@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ== dependencies: abstract-level "^1.0.2" @@ -2790,12 +2343,12 @@ browser-level@^1.0.1: browser-stdout@1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== browserify-aes@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" @@ -2805,132 +2358,109 @@ browserify-aes@^1.2.0: inherits "^2.0.1" safe-buffer "^5.0.1" -browserslist@^4.21.10, browserslist@^4.22.2, "browserslist@>= 4.21.0": - version "4.22.2" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz" - integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== - dependencies: - caniuse-lite "^1.0.30001565" - electron-to-chromium "^1.4.601" - node-releases "^2.0.14" - update-browserslist-db "^1.0.13" - bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== dependencies: base-x "^3.0.2" bs58check@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== dependencies: bs58 "^4.0.0" create-hash "^1.1.0" safe-buffer "^5.1.2" -btoa@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz" - integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== - buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer-reverse@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/buffer-reverse/-/buffer-reverse-1.0.1.tgz#49283c8efa6f901bc01fa3304d06027971ae2f60" integrity sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg== buffer-to-arraybuffer@^0.0.5: version "0.0.5" - resolved "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz" + resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" integrity sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ== buffer-xor@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== buffer-xor@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-2.0.2.tgz#34f7c64f04c777a1f8aac5e661273bb9dd320289" integrity sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ== dependencies: safe-buffer "^5.1.1" -buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -buffer@^6.0.3: +buffer@6.0.3, buffer@^6.0.3: version "6.0.3" - resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== dependencies: base64-js "^1.3.1" ieee754 "^1.2.1" -buffer@6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== +buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: base64-js "^1.3.1" - ieee754 "^1.2.1" + ieee754 "^1.1.13" -bufferutil@^4.0.1, bufferutil@4.0.5: +bufferutil@4.0.5: version "4.0.5" - resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.5.tgz#da9ea8166911cc276bf677b8aed2d02d31f59028" integrity sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A== dependencies: node-gyp-build "^4.3.0" -bufio@^1.0.7: - version "1.2.1" - resolved "https://registry.npmjs.org/bufio/-/bufio-1.2.1.tgz" - integrity sha512-9oR3zNdupcg/Ge2sSHQF3GX+kmvL/fTPvD0nd5AGLq8SjUYnTz+SlFjK/GXidndbZtIj+pVKXiWeR9w6e9wKCA== +bufferutil@^4.0.1: + version "4.0.8" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.8.tgz#1de6a71092d65d7766c4d8a522b261a6e787e8ea" + integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== + dependencies: + node-gyp-build "^4.3.0" + +builtin-modules@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== builtins@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== dependencies: semver "^7.0.0" -busboy@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== - dependencies: - streamsearch "^1.1.0" - bytes@3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cacheable-lookup@^5.0.3: version "5.0.4" - resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== cacheable-lookup@^6.0.4: version "6.1.0" - resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz#0330a543471c61faa4e9035db583aad753b36385" integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== cacheable-request@^7.0.2: version "7.0.4" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== dependencies: clone-response "^1.0.2" @@ -2941,22 +2471,23 @@ cacheable-request@^7.0.2: normalize-url "^6.0.1" responselike "^2.0.0" -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" callsites@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camel-case@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" integrity sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w== dependencies: no-case "^2.2.0" @@ -2964,52 +2495,37 @@ camel-case@^3.0.0: camelcase@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" integrity sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg== camelcase@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw== -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - camelcase@^6.0.0: version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001565: - version "1.0.30001579" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz" - integrity sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA== - case@^1.6.3: version "1.6.3" - resolved "https://registry.npmjs.org/case/-/case-1.6.3.tgz" + resolved "https://registry.yarnpkg.com/case/-/case-1.6.3.tgz#0a4386e3e9825351ca2e6216c60467ff5f1ea1c9" integrity sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ== caseless@^0.12.0, caseless@~0.12.0: version "0.12.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -catering@^2.0.0: - version "2.1.0" - dependencies: - queue-tick "^1.0.0" - -catering@^2.1.0, catering@^2.1.1: +catering@^2.0.0, catering@^2.1.0, catering@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== cbor@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.2.0.tgz#4cca67783ccd6de7b50ab4ed62636712f287a67c" integrity sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A== dependencies: bignumber.js "^9.0.1" @@ -3017,57 +2533,41 @@ cbor@^5.2.0: cbor@^8.1.0: version "8.1.0" - resolved "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== dependencies: nofilter "^3.1.0" chai-bn@^0.2.1: version "0.2.2" - resolved "https://registry.npmjs.org/chai-bn/-/chai-bn-0.2.2.tgz" + resolved "https://registry.yarnpkg.com/chai-bn/-/chai-bn-0.2.2.tgz#4dcf30dbc79db2378a00781693bc749c972bf34f" integrity sha512-MzjelH0p8vWn65QKmEq/DLBG1Hle4WeyqT79ANhXZhn/UxRWO0OogkAxi5oGGtfzwU9bZR8mvbvYdoqNVWQwFg== -chai@^4.0.0, chai@^4.2.0, chai@^4.3.4, chai@^4.3.7: - version "4.3.8" - resolved "https://registry.npmjs.org/chai/-/chai-4.3.8.tgz" - integrity sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ== +chai@^4.2.0, chai@^4.3.7: + version "4.4.1" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" + integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== dependencies: assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^4.1.2" - get-func-name "^2.0.0" - loupe "^2.3.1" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" pathval "^1.1.1" - type-detect "^4.0.5" + type-detect "^4.0.8" chalk@^2.3.2, chalk@^2.4.2: version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -3075,7 +2575,7 @@ chalk@^4.1.2: change-case@3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.0.2.tgz#fd48746cce02f03f0a672577d1d3a8dc2eceb037" integrity sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA== dependencies: camel-case "^3.0.0" @@ -3099,24 +2599,19 @@ change-case@3.0.2: "charenc@>= 0.0.1": version "0.0.2" - resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz" - integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== - -checkpoint-store@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz" - integrity sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg== +check-error@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== dependencies: - functional-red-black-tree "^1.0.1" + get-func-name "^2.0.2" cheerio-select@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== dependencies: boolbase "^1.0.0" @@ -3128,7 +2623,7 @@ cheerio-select@^2.1.0: cheerio@^1.0.0-rc.2: version "1.0.0-rc.12" - resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== dependencies: cheerio-select "^2.1.0" @@ -3139,9 +2634,9 @@ cheerio@^1.0.0-rc.2: parse5 "^7.0.0" parse5-htmlparser2-tree-adapter "^7.0.0" -chokidar@^3.4.0, chokidar@3.5.3: +chokidar@3.5.3, chokidar@^3.4.0: version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" @@ -3154,34 +2649,19 @@ chokidar@^3.4.0, chokidar@3.5.3: optionalDependencies: fsevents "~2.3.2" -chokidar@3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz" - integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.2.0" - optionalDependencies: - fsevents "~2.1.1" - chownr@^1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== ci-info@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== cids@^0.7.1: version "0.7.5" - resolved "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz" + resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== dependencies: buffer "^5.5.0" @@ -3192,7 +2672,7 @@ cids@^0.7.1: cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" @@ -3200,13 +2680,13 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: class-is@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== classic-level@^1.2.0: - version "1.3.0" - resolved "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz" - integrity sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg== + version "1.4.1" + resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.4.1.tgz#169ecf9f9c6200ad42a98c8576af449c1badbaee" + integrity sha512-qGx/KJl3bvtOHrGau2WklEZuXhS3zme+jf+fsu6Ej7W7IP/C49v7KNlWIsT1jZu0YnfzSIYDGcEWpCa1wKGWXQ== dependencies: abstract-level "^1.0.2" catering "^2.1.0" @@ -3216,12 +2696,12 @@ classic-level@^1.2.0: clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-table3@^0.5.0: version "0.5.1" - resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== dependencies: object-assign "^4.1.0" @@ -3231,25 +2711,16 @@ cli-table3@^0.5.0: cliui@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" integrity sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w== dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" wrap-ansi "^2.0.0" -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - cliui@^7.0.2: version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" @@ -3258,65 +2729,60 @@ cliui@^7.0.2: clone-response@^1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== dependencies: mimic-response "^1.0.0" -clone@^2.0.0, clone@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" - integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== - code-point-at@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - color-name@1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -colors@^1.1.2, colors@1.4.0: +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colors@1.4.0, colors@^1.1.2: version "1.4.0" - resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" command-exists@^1.2.8: version "1.2.9" - resolved "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz" + resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== command-line-args@^5.1.1: version "5.2.1" - resolved "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== dependencies: array-back "^3.1.0" @@ -3326,7 +2792,7 @@ command-line-args@^5.1.1: command-line-usage@^6.1.0: version "6.1.3" - resolved "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz" + resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957" integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw== dependencies: array-back "^4.0.2" @@ -3334,34 +2800,34 @@ command-line-usage@^6.1.0: table-layout "^1.0.2" typical "^5.2.0" +commander@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" + integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== + commander@^10.0.0: version "10.0.1" - resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== commander@^11.1.0: version "11.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== commander@^8.1.0: version "8.3.0" - resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== -commander@3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz" - integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== - concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concat-stream@^1.6.0, concat-stream@^1.6.2: version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" @@ -3371,7 +2837,7 @@ concat-stream@^1.6.0, concat-stream@^1.6.2: constant-case@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-2.0.0.tgz#4175764d389d3fa9c8ecd29186ed6005243b6a46" integrity sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ== dependencies: snake-case "^2.1.0" @@ -3379,14 +2845,14 @@ constant-case@^2.0.0: content-disposition@0.5.4: version "0.5.4" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== dependencies: safe-buffer "5.2.1" content-hash@^2.5.2: version "2.5.2" - resolved "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz" + resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== dependencies: cids "^0.7.1" @@ -3395,54 +2861,42 @@ content-hash@^2.5.2: content-type@~1.0.4, content-type@~1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@^0.4.1: - version "0.4.2" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== - cookie@0.5.0: version "0.5.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -core-js-compat@^3.32.2: - version "3.32.2" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz" - integrity sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ== - dependencies: - browserslist "^4.21.10" +cookie@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== core-js-pure@^3.0.1: - version "3.32.2" - resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.32.2.tgz" - integrity sha512-Y2rxThOuNywTjnX/PgA5vWM6CZ9QB9sz9oGeCixV8MqXZO70z/5SHzf9EeBrEBK0PN36DnEBBu9O/aGWzKuMZQ== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + version "3.35.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.35.1.tgz#f33ad7fdf9dddae260339a30e5f8363f5c49a3bc" + integrity sha512-zcIdi/CL3MWbBJYo5YCeVAAx+Sy9yJE9I3/u9LkFABwbeaPhTMRWraM8mYFp9jW5Z50hOy7FVzCc8dCrpZqtIQ== core-util-is@1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + cors@^2.8.1: version "2.8.5" - resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== dependencies: object-assign "^4" @@ -3450,7 +2904,7 @@ cors@^2.8.1: cosmiconfig@^8.0.0: version "8.3.6" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== dependencies: import-fresh "^3.3.0" @@ -3460,12 +2914,12 @@ cosmiconfig@^8.0.0: crc-32@^1.2.0: version "1.2.2" - resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" @@ -3476,7 +2930,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" - resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" @@ -3488,34 +2942,26 @@ create-hmac@^1.1.4, create-hmac@^1.1.7: create-require@^1.1.0: version "1.1.1" - resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-fetch@^2.1.0: - version "2.2.6" - resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz" - integrity sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA== - dependencies: - node-fetch "^2.6.7" - whatwg-fetch "^2.0.4" - cross-fetch@^3.1.4: version "3.1.8" - resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== dependencies: node-fetch "^2.6.12" cross-fetch@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983" integrity sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== dependencies: node-fetch "^2.6.12" cross-spawn@^7.0.0, cross-spawn@^7.0.2: version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -3524,12 +2970,12 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2: "crypt@>= 0.0.1": version "0.0.2" - resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== crypto-addr-codec@^0.1.7: version "0.1.8" - resolved "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.8.tgz" + resolved "https://registry.yarnpkg.com/crypto-addr-codec/-/crypto-addr-codec-0.1.8.tgz#45c4b24e2ebce8e24a54536ee0ca25b65787b016" integrity sha512-GqAK90iLLgP3FvhNmHbpT3wR6dEdaM8hZyZtLX29SPardh3OA13RFLHDR6sntGCgRWOfiHqW6sIyohpNqOtV/g== dependencies: base-x "^3.0.8" @@ -3542,12 +2988,12 @@ crypto-addr-codec@^0.1.7: crypto-js@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== css-select@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== dependencies: boolbase "^1.0.0" @@ -3558,12 +3004,12 @@ css-select@^5.1.0: css-what@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== -d@^1.0.1, d@1: +d@1, d@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== dependencies: es5-ext "^0.10.50" @@ -3571,136 +3017,108 @@ d@^1.0.1, d@1: dashdash@^1.12.0: version "1.14.1" - resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== dependencies: assert-plus "^1.0.0" death@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/death/-/death-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318" integrity sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w== -debug@^2.2.0: +debug@2.6.9, debug@^2.2.0: version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^3.1.0: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@4, debug@4.3.4: +debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@3.2.6: - version "3.2.6" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== +debug@^3.1.0, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -decamelize@^1.1.1, decamelize@^1.2.0: +decamelize@^1.1.1: version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decamelize@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== decode-uri-component@^0.2.0: version "0.2.2" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== decompress-response@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== dependencies: mimic-response "^1.0.0" decompress-response@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== dependencies: mimic-response "^3.1.0" -deep-eql@^4.1.2: +deep-eql@^4.1.3: version "4.1.3" - resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== dependencies: type-detect "^4.0.0" deep-extend@~0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== -deferred-leveldown@~1.2.1: - version "1.2.2" - resolved "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz" - integrity sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA== - dependencies: - abstract-leveldown "~2.6.0" - deferred-leveldown@~5.3.0: version "5.3.0" - resolved "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz" + resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz#27a997ad95408b61161aa69bd489b86c71b78058" integrity sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw== dependencies: abstract-leveldown "~6.2.1" inherits "^2.0.3" -define-data-property@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz" - integrity sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g== +define-data-property@^1.0.1, define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== dependencies: get-intrinsic "^1.2.1" gopd "^1.0.1" has-property-descriptors "^1.0.0" -define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: define-data-property "^1.0.1" @@ -3709,78 +3127,73 @@ define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4, de delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== depd@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== destroy@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== detect-indent@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== detect-port@^1.3.0: version "1.5.1" - resolved "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.1.tgz#451ca9b6eaf20451acb0799b8ab40dff7718727b" integrity sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ== dependencies: address "^1.0.1" debug "4" -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diff@3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - diff@5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + difflib@^0.2.4: version "0.2.4" - resolved "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz" + resolved "https://registry.yarnpkg.com/difflib/-/difflib-0.2.4.tgz#b5e30361a6db023176d562892db85940a718f47e" integrity sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w== dependencies: heap ">= 0.2.0" dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" doctrine@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" dom-serializer@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== dependencies: domelementtype "^2.3.0" @@ -3789,24 +3202,24 @@ dom-serializer@^2.0.0: dom-walk@^0.1.0: version "0.1.2" - resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== domelementtype@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== domhandler@^5.0.2, domhandler@^5.0.3: version "5.0.3" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== dependencies: domelementtype "^2.3.0" domutils@^3.0.1: version "3.1.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== dependencies: dom-serializer "^2.0.0" @@ -3815,24 +3228,28 @@ domutils@^3.0.1: dot-case@^2.1.0: version "2.1.1" - resolved "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-2.1.1.tgz#34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee" integrity sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug== dependencies: no-case "^2.2.0" dotenv@^16.0.3: - version "16.3.1" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz" - integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== + version "16.3.2" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.2.tgz#3cb611ce5a63002dbabf7c281bc331f69d28f03f" + integrity sha512-HTlk5nmhkm8F6JcdXvHIzaorzCoziNQT9mGxLPVXW8wJF1TiGSL60ZGB4gHWabHOaMmWmhvk2/lPHfnBiT78AQ== + +"ds-test@github:dapphub/ds-test": + version "1.0.0" + resolved "https://codeload.github.com/dapphub/ds-test/tar.gz/e282159d5170298eb2455a6c05280ab5a73a4ef0" eastasianwidth@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== ecc-jsbn@~0.1.1: version "0.1.2" - resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== dependencies: jsbn "~0.1.0" @@ -3840,17 +3257,12 @@ ecc-jsbn@~0.1.1: ee-first@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.601: - version "1.4.640" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.640.tgz" - integrity sha512-z/6oZ/Muqk4BaE7P69bXhUhpJbUM9ZJeka43ZwxsDshKtePns4mhBlh8bU5+yrnOnz3fhG82XLzGUXazOmsWnA== - -elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.4, elliptic@6.5.4: +elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.4: version "6.5.4" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: bn.js "^4.11.9" @@ -3863,32 +3275,27 @@ elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.4, elliptic@6.5.4: emittery@0.10.0: version "0.10.0" - resolved "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.0.tgz#bb373c660a9d421bb44706ec4967ed50c02a8026" integrity sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ== -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== encodeurl@~1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== encoding-down@^6.3.0: version "6.3.0" - resolved "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-6.3.0.tgz#b1c4eb0e1728c146ecaef8e32963c549e76d082b" integrity sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw== dependencies: abstract-leveldown "^6.2.1" @@ -3898,14 +3305,14 @@ encoding-down@^6.3.0: end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" enquirer@^2.3.0: version "2.4.1" - resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== dependencies: ansi-colors "^4.1.1" @@ -3913,48 +3320,48 @@ enquirer@^2.3.0: entities@^4.2.0, entities@^4.4.0: version "4.5.0" - resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== env-paths@^2.2.0: version "2.2.1" - resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== errno@~0.1.1: version "0.1.8" - resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" es-abstract@^1.22.1: - version "1.22.2" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz" - integrity sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA== + version "1.22.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" + integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== dependencies: array-buffer-byte-length "^1.0.0" arraybuffer.prototype.slice "^1.0.2" available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + call-bind "^1.0.5" es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" function.prototype.name "^1.1.6" - get-intrinsic "^1.2.1" + get-intrinsic "^1.2.2" get-symbol-description "^1.0.0" globalthis "^1.0.3" gopd "^1.0.1" - has "^1.0.3" has-property-descriptors "^1.0.0" has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" internal-slot "^1.0.5" is-array-buffer "^3.0.2" is-callable "^1.2.7" @@ -3964,7 +3371,7 @@ es-abstract@^1.22.1: is-string "^1.0.7" is-typed-array "^1.1.12" is-weakref "^1.0.2" - object-inspect "^1.12.3" + object-inspect "^1.13.1" object-keys "^1.1.1" object.assign "^4.1.4" regexp.prototype.flags "^1.5.1" @@ -3978,32 +3385,27 @@ es-abstract@^1.22.1: typed-array-byte-offset "^1.0.0" typed-array-length "^1.0.4" unbox-primitive "^1.0.2" - which-typed-array "^1.1.11" - -es-array-method-boxes-properly@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz" - integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + which-typed-array "^1.1.13" es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" + integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" + get-intrinsic "^1.2.2" has-tostringtag "^1.0.0" + hasown "^2.0.0" es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== dependencies: - has "^1.0.3" + hasown "^2.0.0" es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -4012,7 +3414,7 @@ es-to-primitive@^1.2.1: es5-ext@^0.10.35, es5-ext@^0.10.50: version "0.10.62" - resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== dependencies: es6-iterator "^2.0.3" @@ -4021,7 +3423,7 @@ es5-ext@^0.10.35, es5-ext@^0.10.50: es6-iterator@^2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== dependencies: d "1" @@ -4030,12 +3432,12 @@ es6-iterator@^2.0.3: es6-promise@^4.2.8: version "4.2.8" - resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== es6-symbol@^3.1.1, es6-symbol@^3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== dependencies: d "^1.0.1" @@ -4043,32 +3445,27 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3: escalade@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@^1.0.5, escape-string-regexp@1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^4.0.0: +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escodegen@1.8.x: version "1.8.1" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" integrity sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A== dependencies: esprima "^2.7.1" @@ -4078,19 +3475,24 @@ escodegen@1.8.x: optionalDependencies: source-map "~0.2.0" +eslint-compat-utils@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz#f45e3b5ced4c746c127cf724fb074cd4e730d653" + integrity sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg== + eslint-config-prettier@^8.8.0: version "8.10.0" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== eslint-config-standard@^17.1.0: version "17.1.0" - resolved "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz#40ffb8595d47a6b242e07cbfd49dc211ed128975" integrity sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q== -eslint-import-resolver-node@^0.3.7: +eslint-import-resolver-node@^0.3.9: version "0.3.9" - resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" @@ -4099,60 +3501,63 @@ eslint-import-resolver-node@^0.3.7: eslint-module-utils@^2.8.0: version "2.8.0" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" -eslint-plugin-es-x@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.2.0.tgz" - integrity sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA== +eslint-plugin-es-x@^7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz#d08d9cd155383e35156c48f736eb06561d07ba92" + integrity sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ== dependencies: "@eslint-community/eslint-utils" "^4.1.2" "@eslint-community/regexpp" "^4.6.0" + eslint-compat-utils "^0.1.2" eslint-plugin-es@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== dependencies: eslint-utils "^2.0.0" regexpp "^3.0.0" -eslint-plugin-import@^2.25.2, eslint-plugin-import@^2.28.1: - version "2.28.1" - resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz" - integrity sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A== +eslint-plugin-import@^2.28.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== dependencies: - array-includes "^3.1.6" - array.prototype.findlastindex "^1.2.2" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" + eslint-import-resolver-node "^0.3.9" eslint-module-utils "^2.8.0" - has "^1.0.3" - is-core-module "^2.13.0" + hasown "^2.0.0" + is-core-module "^2.13.1" is-glob "^4.0.3" minimatch "^3.1.2" - object.fromentries "^2.0.6" - object.groupby "^1.0.0" - object.values "^1.1.6" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" semver "^6.3.1" - tsconfig-paths "^3.14.2" + tsconfig-paths "^3.15.0" -"eslint-plugin-n@^15.0.0 || ^16.0.0 ", eslint-plugin-n@^16.1.0: - version "16.1.0" - resolved "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.1.0.tgz" - integrity sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg== +eslint-plugin-n@^16.1.0: + version "16.6.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz#6a60a1a376870064c906742272074d5d0b412b0b" + integrity sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" builtins "^5.0.1" - eslint-plugin-es-x "^7.1.0" + eslint-plugin-es-x "^7.5.0" get-tsconfig "^4.7.0" + globals "^13.24.0" ignore "^5.2.4" + is-builtin-module "^3.2.1" is-core-module "^2.12.1" minimatch "^3.1.2" resolve "^1.22.2" @@ -4160,7 +3565,7 @@ eslint-plugin-import@^2.25.2, eslint-plugin-import@^2.28.1: eslint-plugin-node@^11.1.0: version "11.1.0" - resolved "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== dependencies: eslint-plugin-es "^3.0.0" @@ -4172,19 +3577,19 @@ eslint-plugin-node@^11.1.0: eslint-plugin-prettier@^4.2.1: version "4.2.1" - resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-promise@^6.0.0, eslint-plugin-promise@^6.1.1: +eslint-plugin-promise@^6.1.1: version "6.1.1" - resolved "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== eslint-scope@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" @@ -4192,7 +3597,7 @@ eslint-scope@^5.1.1: eslint-scope@^7.2.2: version "7.2.2" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" @@ -4200,33 +3605,34 @@ eslint-scope@^7.2.2: eslint-utils@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" eslint-visitor-keys@^1.1.0: version "1.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@*, "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", eslint@^8.0.1, eslint@^8.43.0, eslint@>=4.19.1, eslint@>=5.16.0, eslint@>=7.0.0, eslint@>=7.28.0, eslint@>=8: - version "8.50.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz" - integrity sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg== +eslint@^8.43.0: + version "8.56.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.50.0" - "@humanwhocodes/config-array" "^0.11.11" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.56.0" + "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -4260,145 +3666,101 @@ eslint@*, "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 || espree@^9.6.0, espree@^9.6.1: version "9.6.1" - resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esprima@^2.7.1, esprima@2.7.x: +esprima@2.7.x, esprima@^2.7.1: version "2.7.3" - resolved "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A== esprima@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.4.2: version "1.5.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^1.9.1: version "1.9.3" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" integrity sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA== estraverse@^4.1.1: version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== etag@~1.8.1: version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -eth-block-tracker@^4.4.2: - version "4.4.3" - resolved "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz" - integrity sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw== - dependencies: - "@babel/plugin-transform-runtime" "^7.5.5" - "@babel/runtime" "^7.5.5" - eth-query "^2.1.0" - json-rpc-random-id "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -eth-ens-namehash@^2.0.8, eth-ens-namehash@2.0.8: +eth-ens-namehash@2.0.8, eth-ens-namehash@^2.0.8: version "2.0.8" - resolved "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz" + resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== dependencies: idna-uts46-hx "^2.3.1" js-sha3 "^0.5.7" eth-gas-reporter@^0.2.25: - version "0.2.25" - resolved "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.25.tgz" - integrity sha512-1fRgyE4xUB8SoqLgN3eDfpDfwEfRxh2Sz1b7wzFbyQA+9TekMmvSjjoRu9SKcSVyK+vLkLIsVbJDsTWjw195OQ== + version "0.2.27" + resolved "https://registry.yarnpkg.com/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz#928de8548a674ed64c7ba0bf5795e63079150d4e" + integrity sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw== dependencies: - "@ethersproject/abi" "^5.0.0-beta.146" "@solidity-parser/parser" "^0.14.0" + axios "^1.5.1" cli-table3 "^0.5.0" colors "1.4.0" ethereum-cryptography "^1.0.3" - ethers "^4.0.40" + ethers "^5.7.2" fs-readdir-recursive "^1.1.0" lodash "^4.17.14" markdown-table "^1.1.3" - mocha "^7.1.1" + mocha "^10.2.0" req-cwd "^2.0.0" - request "^2.88.0" - request-promise-native "^1.0.5" sha1 "^1.1.1" sync-request "^6.0.0" -eth-json-rpc-filters@^4.2.1: - version "4.2.2" - resolved "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz" - integrity sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw== - dependencies: - "@metamask/safe-event-emitter" "^2.0.0" - async-mutex "^0.2.6" - eth-json-rpc-middleware "^6.0.0" - eth-query "^2.1.2" - json-rpc-engine "^6.1.0" - pify "^5.0.0" - -eth-json-rpc-infura@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-5.1.0.tgz" - integrity sha512-THzLye3PHUSGn1EXMhg6WTLW9uim7LQZKeKaeYsS9+wOBcamRiCQVGHa6D2/4P0oS0vSaxsBnU/J6qvn0MPdow== +eth-lib@0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" + integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== dependencies: - eth-json-rpc-middleware "^6.0.0" - eth-rpc-errors "^3.0.0" - json-rpc-engine "^5.3.0" - node-fetch "^2.6.0" - -eth-json-rpc-middleware@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz" - integrity sha512-qqBfLU2Uq1Ou15Wox1s+NX05S9OcAEL4JZ04VZox2NS0U+RtCMjSxzXhLFWekdShUPZ+P8ax3zCO2xcPrp6XJQ== - dependencies: - btoa "^1.2.1" - clone "^2.1.1" - eth-query "^2.1.2" - eth-rpc-errors "^3.0.0" - eth-sig-util "^1.4.2" - ethereumjs-util "^5.1.2" - json-rpc-engine "^5.3.0" - json-stable-stringify "^1.0.1" - node-fetch "^2.6.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" eth-lib@^0.1.26: version "0.1.29" - resolved "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== dependencies: bn.js "^4.11.6" @@ -4408,65 +3770,16 @@ eth-lib@^0.1.26: ws "^3.0.0" xhr-request-promise "^0.1.2" -eth-lib@0.2.8: - version "0.2.8" - resolved "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz" - integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== +ethereum-bloom-filters@^1.0.6: + version "1.0.10" + resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" + integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" + js-sha3 "^0.8.0" -eth-query@^2.1.0, eth-query@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz" - integrity sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA== - dependencies: - json-rpc-random-id "^1.0.0" - xtend "^4.0.1" - -eth-rpc-errors@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz" - integrity sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-rpc-errors@^4.0.2: - version "4.0.3" - resolved "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz" - integrity sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-sig-util@^1.4.2: - version "1.4.2" - resolved "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz" - integrity sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw== - dependencies: - ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" - ethereumjs-util "^5.1.1" - -ethereum-bloom-filters@^1.0.6: - version "1.0.10" - resolved "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz" - integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== - dependencies: - js-sha3 "^0.8.0" - -ethereum-common@^0.0.18: - version "0.0.18" - resolved "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz" - integrity sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ== - -ethereum-common@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz" - integrity sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA== - -ethereum-cryptography@^0.1.3, ethereum-cryptography@0.1.3: +ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: version "0.1.3" - resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== dependencies: "@types/pbkdf2" "^3.0.0" @@ -4487,7 +3800,7 @@ ethereum-cryptography@^0.1.3, ethereum-cryptography@0.1.3: ethereum-cryptography@^1.0.3: version "1.2.0" - resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz#5ccfa183e85fdaf9f9b299a79430c044268c9b3a" integrity sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw== dependencies: "@noble/hashes" "1.2.0" @@ -4495,19 +3808,9 @@ ethereum-cryptography@^1.0.3: "@scure/bip32" "1.1.5" "@scure/bip39" "1.1.1" -ethereum-cryptography@^2.0.0: - version "2.1.2" - resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz" - integrity sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug== - dependencies: - "@noble/curves" "1.1.0" - "@noble/hashes" "1.3.1" - "@scure/bip32" "1.3.1" - "@scure/bip39" "1.2.1" - -ethereum-cryptography@^2.1.2: +ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz#18fa7108622e56481157a5cb7c01c0c6a672eb67" integrity sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug== dependencies: "@noble/curves" "1.1.0" @@ -4515,24 +3818,9 @@ ethereum-cryptography@^2.1.2: "@scure/bip32" "1.3.1" "@scure/bip39" "1.2.1" -ethereum-cryptography@1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz" - integrity sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ== - dependencies: - "@noble/hashes" "1.1.2" - "@noble/secp256k1" "1.6.3" - "@scure/bip32" "1.1.0" - "@scure/bip39" "1.1.0" - -ethereum-protocol@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz" - integrity sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg== - -ethereum-waffle@*, ethereum-waffle@^4.0.10: +ethereum-waffle@^4.0.10: version "4.0.10" - resolved "https://registry.npmjs.org/ethereum-waffle/-/ethereum-waffle-4.0.10.tgz" + resolved "https://registry.yarnpkg.com/ethereum-waffle/-/ethereum-waffle-4.0.10.tgz#f1ef1564c0155236f1a66c6eae362a5d67c9f64c" integrity sha512-iw9z1otq7qNkGDNcMoeNeLIATF9yKl1M8AIeu42ElfNBplq0e+5PeasQmm8ybY/elkZ1XyRO0JBQxQdVRb8bqQ== dependencies: "@ethereum-waffle/chai" "4.0.10" @@ -4542,133 +3830,28 @@ ethereum-waffle@*, ethereum-waffle@^4.0.10: solc "0.8.15" typechain "^8.0.0" -ethereumjs-abi@^0.6.8, ethereumjs-abi@0.6.8, "ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": +ethereumjs-abi@0.6.8, ethereumjs-abi@^0.6.8: version "0.6.8" - resolved "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0" + resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae" + integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== dependencies: bn.js "^4.11.8" ethereumjs-util "^6.0.0" -ethereumjs-account@^2.0.3: - version "2.0.5" - resolved "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz" - integrity sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA== - dependencies: - ethereumjs-util "^5.0.0" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-block@^1.2.2: - version "1.7.1" - resolved "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz" - integrity sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg== - dependencies: - async "^2.0.1" - ethereum-common "0.2.0" - ethereumjs-tx "^1.2.2" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-block@~2.2.0: - version "2.2.2" - resolved "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz" - integrity sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg== - dependencies: - async "^2.0.1" - ethereumjs-common "^1.5.0" - ethereumjs-tx "^2.1.1" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-common@^1.1.0, ethereumjs-common@^1.5.0: - version "1.5.2" - resolved "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz" - integrity sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA== - -ethereumjs-tx@^1.2.2: - version "1.3.7" - resolved "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz" - integrity sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA== - dependencies: - ethereum-common "^0.0.18" - ethereumjs-util "^5.0.0" - -ethereumjs-tx@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz" - integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== - dependencies: - ethereumjs-common "^1.5.0" - ethereumjs-util "^6.0.0" - -ethereumjs-util@^5.0.0: - version "5.2.1" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" - integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "^0.1.3" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-util@^5.1.1: - version "5.2.1" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" - integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "^0.1.3" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-util@^5.1.2: - version "5.2.1" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" - integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "^0.1.3" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-util@^5.1.5: - version "5.2.1" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" - integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "^0.1.3" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-util@^6.0.0: - version "6.2.1" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" - integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== +ethereumjs-util@7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz#b55d7b64dde3e3e45749e4c41288238edec32d23" + integrity sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw== dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^4.11.0" + "@types/bn.js" "^5.1.0" + bn.js "^5.1.2" create-hash "^1.1.2" - elliptic "^6.5.2" ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.3" + rlp "^2.2.4" -ethereumjs-util@^6.2.1: +ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: version "6.2.1" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== dependencies: "@types/bn.js" "^4.11.3" @@ -4681,7 +3864,7 @@ ethereumjs-util@^6.2.1: ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.3, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: version "7.1.5" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== dependencies: "@types/bn.js" "^5.1.0" @@ -4690,42 +3873,29 @@ ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereum ethereum-cryptography "^0.1.3" rlp "^2.2.4" -ethereumjs-util@7.1.3: - version "7.1.3" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz" - integrity sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw== - dependencies: - "@types/bn.js" "^5.1.0" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethereum-cryptography "^0.1.3" - rlp "^2.2.4" - -ethereumjs-vm@^2.3.4: - version "2.6.0" - resolved "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz" - integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereumjs-account "^2.0.3" - ethereumjs-block "~2.2.0" - ethereumjs-common "^1.1.0" - ethereumjs-util "^6.0.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.3.2" - rustbn.js "~0.2.0" - safe-buffer "^5.1.1" - ethers-eip712@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/ethers-eip712/-/ethers-eip712-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/ethers-eip712/-/ethers-eip712-0.2.0.tgz#52973b3a9a22638f7357283bf66624994c6e91ed" integrity sha512-fgS196gCIXeiLwhsWycJJuxI9nL/AoUPGSQ+yvd+8wdWR+43G+J1n69LmWVWvAON0M6qNaf2BF4/M159U8fujQ== -ethers@*, "ethers@^4.0.47 || ^5.0.8", ethers@^5, ethers@^5.0.0, ethers@^5.0.13, ethers@^5.1.3, ethers@^5.4.7, ethers@^5.5.3, ethers@^5.7.1, ethers@^5.7.2: +ethers@^4.0.32: + version "4.0.49" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.49.tgz#0eb0e9161a0c8b4761be547396bbe2fb121a8894" + integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== + dependencies: + aes-js "3.0.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.3" + js-sha3 "0.5.7" + scrypt-js "2.0.4" + setimmediate "1.0.4" + uuid "2.0.1" + xmlhttprequest "1.8.0" + +ethers@^5.0.13, ethers@^5.5.3, ethers@^5.7.1, ethers@^5.7.2: version "5.7.2" - resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== dependencies: "@ethersproject/abi" "5.7.0" @@ -4759,39 +3929,9 @@ ethers@*, "ethers@^4.0.47 || ^5.0.8", ethers@^5, ethers@^5.0.0, ethers@^5.0.13, "@ethersproject/web" "5.7.1" "@ethersproject/wordlists" "5.7.0" -ethers@^4.0.32: - version "4.0.49" - resolved "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz" - integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== - dependencies: - aes-js "3.0.0" - bn.js "^4.11.9" - elliptic "6.5.4" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.4" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - -ethers@^4.0.40: - version "4.0.49" - resolved "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz" - integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== - dependencies: - aes-js "3.0.0" - bn.js "^4.11.9" - elliptic "6.5.4" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.4" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - ethjs-abi@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/ethjs-abi/-/ethjs-abi-0.2.1.tgz#e0a7a93a7e81163a94477bad56ede524ab6de533" integrity sha512-g2AULSDYI6nEJyJaEVEXtTimRY2aPC2fi7ddSy0W+LXvEVL8Fe1y76o43ecbgdUKwZD+xsmEgX1yJr1Ia3r1IA== dependencies: bn.js "4.11.6" @@ -4800,15 +3940,15 @@ ethjs-abi@^0.2.1: ethjs-unit@0.1.6: version "0.1.6" - resolved "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz" + resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" integrity sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw== dependencies: bn.js "4.11.6" number-to-bn "1.7.0" -ethjs-util@^0.1.3, ethjs-util@^0.1.6, ethjs-util@0.1.6: +ethjs-util@0.1.6, ethjs-util@^0.1.6: version "0.1.6" - resolved "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz" + resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== dependencies: is-hex-prefixed "1.0.0" @@ -4816,17 +3956,12 @@ ethjs-util@^0.1.3, ethjs-util@^0.1.6, ethjs-util@0.1.6: eventemitter3@4.0.4: version "4.0.4" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== -events@^3.0.0: - version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - evp_bytestokey@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" @@ -4834,7 +3969,7 @@ evp_bytestokey@^1.0.3: express@^4.14.0: version "4.18.2" - resolved "https://registry.npmjs.org/express/-/express-4.18.2.tgz" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== dependencies: accepts "~1.3.8" @@ -4871,54 +4006,47 @@ express@^4.14.0: ext@^1.1.2: version "1.7.0" - resolved "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== dependencies: type "^2.7.2" extend@~3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - extsprintf@1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== -fake-merkle-patricia-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz" - integrity sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA== - dependencies: - checkpoint-store "^1.1.0" +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== fast-check@3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/fast-check/-/fast-check-3.1.1.tgz#72c5ae7022a4e86504762e773adfb8a5b0b01252" integrity sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA== dependencies: pure-rand "^5.0.1" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.1.2, fast-diff@^1.2.0: version "1.3.0" - resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== fast-glob@^3.0.3, fast-glob@^3.2.9: - version "3.3.1" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz" - integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -4928,43 +4056,38 @@ fast-glob@^3.0.3, fast-glob@^3.2.9: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-safe-stringify@^2.0.6: - version "2.1.1" - resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" - integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== - fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + version "1.16.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320" + integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA== dependencies: reusify "^1.0.4" file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" finalhandler@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== dependencies: debug "2.6.9" @@ -4977,14 +4100,22 @@ finalhandler@1.2.0: find-replace@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== dependencies: array-back "^3.0.1" +find-up@5.0.0, find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + find-up@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== dependencies: path-exists "^2.0.0" @@ -4992,90 +4123,53 @@ find-up@^1.0.0: find-up@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== dependencies: locate-path "^2.0.0" -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - find-up@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" path-exists "^4.0.0" -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -find-up@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - flat-cache@^3.0.4: - version "3.1.0" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz" - integrity sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew== + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: - flatted "^3.2.7" + flatted "^3.2.9" keyv "^4.5.3" rimraf "^3.0.2" -flat@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz" - integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== - dependencies: - is-buffer "~2.0.3" - flat@^5.0.2: version "5.0.2" - resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatted@^3.2.7: +flatted@^3.2.9: version "3.2.9" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -follow-redirects@^1.12.1: - version "1.15.3" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz" - integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== +follow-redirects@^1.12.1, follow-redirects@^1.15.4: + version "1.15.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" + integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== for-each@^0.3.3: version "0.3.3" - resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" foreground-child@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== dependencies: cross-spawn "^7.0.0" @@ -5083,17 +4177,22 @@ foreground-child@^3.1.0: forever-agent@~0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== +forge-std@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/forge-std/-/forge-std-1.1.2.tgz#f4a0eda103538d56f9c563f3cd1fa2fd01bd9378" + integrity sha512-Wfb0iAS9PcfjMKtGpWQw9mXzJxrWD62kJCUqqLcyuI0+VRtJ3j20XembjF3kS20qELYdXft1vD/SPFVWVKMFOw== + form-data-encoder@1.7.1: version "1.7.1" - resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96" integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== form-data@^2.2.0: version "2.5.1" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== dependencies: asynckit "^0.4.0" @@ -5102,7 +4201,7 @@ form-data@^2.2.0: form-data@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" @@ -5111,7 +4210,7 @@ form-data@^4.0.0: form-data@~2.3.2: version "2.3.3" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" @@ -5120,27 +4219,27 @@ form-data@~2.3.2: forwarded@0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fp-ts@^1.0.0: - version "1.19.5" - resolved "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.5.tgz" - integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== - fp-ts@1.19.3: version "1.19.3" - resolved "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz" + resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.3.tgz#261a60d1088fbff01f91256f91d21d0caaaaa96f" integrity sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg== +fp-ts@^1.0.0: + version "1.19.5" + resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.5.tgz#3da865e585dfa1fdfd51785417357ac50afc520a" + integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== + fresh@0.5.2: version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== fs-extra@^0.30.0: version "0.30.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" integrity sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA== dependencies: graceful-fs "^4.1.2" @@ -5151,7 +4250,7 @@ fs-extra@^0.30.0: fs-extra@^4.0.2: version "4.0.3" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== dependencies: graceful-fs "^4.1.2" @@ -5160,7 +4259,7 @@ fs-extra@^4.0.2: fs-extra@^7.0.0, fs-extra@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== dependencies: graceful-fs "^4.1.2" @@ -5169,7 +4268,7 @@ fs-extra@^7.0.0, fs-extra@^7.0.1: fs-extra@^8.1.0: version "8.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" @@ -5178,7 +4277,7 @@ fs-extra@^8.1.0: fs-extra@^9.1.0: version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" @@ -5188,39 +4287,34 @@ fs-extra@^9.1.0: fs-minipass@^1.2.7: version "1.2.7" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== dependencies: minipass "^2.6.0" fs-readdir-recursive@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.1.1: - version "2.1.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - fsevents@~2.3.2: version "2.3.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== function.prototype.name@^1.1.6: version "1.1.6" - resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== dependencies: call-bind "^1.0.2" @@ -5230,17 +4324,17 @@ function.prototype.name@^1.1.6: functional-red-black-tree@^1.0.1, functional-red-black-tree@~1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== functions-have-names@^1.2.3: version "1.2.3" - resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== ganache@7.4.3: version "7.4.3" - resolved "https://registry.npmjs.org/ganache/-/ganache-7.4.3.tgz" + resolved "https://registry.yarnpkg.com/ganache/-/ganache-7.4.3.tgz#e995f1250697264efbb34d4241c374a2b0271415" integrity sha512-RpEDUiCkqbouyE7+NMXG26ynZ+7sGiODU84Kz+FVoXUnQ4qQM4M8wif3Y4qUCt+D/eM1RVeGq0my62FPD6Y1KA== dependencies: "@trufflesuite/bigint-buffer" "1.1.10" @@ -5255,56 +4349,51 @@ ganache@7.4.3: bufferutil "4.0.5" utf-8-validate "5.0.7" -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - get-caller-file@^1.0.1: version "1.0.3" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz" - integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== +get-func-name@^2.0.1, get-func-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" get-port@^3.1.0: version "3.2.0" - resolved "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== get-stream@^5.1.0: version "5.2.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" get-stream@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== dependencies: call-bind "^1.0.2" @@ -5312,43 +4401,67 @@ get-symbol-description@^1.0.0: get-tsconfig@^4.7.0: version "4.7.2" - resolved "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== dependencies: resolve-pkg-maps "^1.0.0" getpass@^0.1.1: version "0.1.7" - resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== dependencies: assert-plus "^1.0.0" ghost-testrpc@^0.0.2: version "0.0.2" - resolved "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz" + resolved "https://registry.yarnpkg.com/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz#c4de9557b1d1ae7b2d20bbe474a91378ca90ce92" integrity sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ== dependencies: chalk "^2.4.2" node-emoji "^1.10.0" -glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" +glob@7.1.7: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^10.3.7: version "10.3.10" - resolved "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== dependencies: foreground-child "^3.1.0" @@ -5359,7 +4472,7 @@ glob@^10.3.7: glob@^5.0.15: version "5.0.15" - resolved "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" integrity sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== dependencies: inflight "^1.0.4" @@ -5370,7 +4483,7 @@ glob@^5.0.15: glob@^7.0.0, glob@^7.1.3: version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -5382,7 +4495,7 @@ glob@^7.0.0, glob@^7.1.3: glob@^8.0.3: version "8.1.0" - resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: fs.realpath "^1.0.0" @@ -5391,52 +4504,16 @@ glob@^8.0.3: minimatch "^5.0.1" once "^1.3.0" -glob@7.1.3: - version "7.1.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@7.1.7: - version "7.1.7" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - global-modules@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== dependencies: global-prefix "^3.0.0" global-prefix@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== dependencies: ini "^1.3.5" @@ -5445,34 +4522,29 @@ global-prefix@^3.0.0: global@~4.4.0: version "4.4.0" - resolved "https://registry.npmjs.org/global/-/global-4.4.0.tgz" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== dependencies: min-document "^2.19.0" process "^0.11.10" -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^13.19.0: - version "13.22.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz" - integrity sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw== +globals@^13.19.0, globals@^13.24.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" globalthis@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== dependencies: define-properties "^1.1.3" globby@^10.0.1: version "10.0.2" - resolved "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== dependencies: "@types/glob" "^7.1.1" @@ -5486,7 +4558,7 @@ globby@^10.0.1: globby@^11.1.0: version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -5498,31 +4570,14 @@ globby@^11.1.0: gopd@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== dependencies: get-intrinsic "^1.1.3" -got@^11.8.5: - version "11.8.6" - resolved "https://registry.npmjs.org/got/-/got-11.8.6.tgz" - integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - got@12.1.0: version "12.1.0" - resolved "https://registry.npmjs.org/got/-/got-12.1.0.tgz" + resolved "https://registry.yarnpkg.com/got/-/got-12.1.0.tgz#099f3815305c682be4fd6b0ee0726d8e4c6b0af4" integrity sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig== dependencies: "@sindresorhus/is" "^4.6.0" @@ -5539,24 +4594,36 @@ got@12.1.0: p-cancelable "^3.0.0" responselike "^2.0.0" +got@^11.8.5: + version "11.8.6" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" + integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: version "4.2.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== graphemer@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -growl@1.10.5: - version "1.10.5" - resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - handlebars@^4.0.1: version "4.7.8" - resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== dependencies: minimist "^1.2.5" @@ -5568,12 +4635,12 @@ handlebars@^4.0.1: har-schema@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== har-validator@~5.1.3: version "5.1.5" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: ajv "^6.12.3" @@ -5581,16 +4648,16 @@ har-validator@~5.1.3: hardhat-gas-reporter@^1.0.9: version "1.0.9" - resolved "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz" + resolved "https://registry.yarnpkg.com/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz#9a2afb354bc3b6346aab55b1c02ca556d0e16450" integrity sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg== dependencies: array-uniq "1.0.3" eth-gas-reporter "^0.2.25" sha1 "^1.1.1" -hardhat@^2.0.0, hardhat@^2.0.2, hardhat@^2.0.4, hardhat@^2.11.0, hardhat@^2.12.7, hardhat@^2.17.3, hardhat@^2.9.5, hardhat@^2.9.9: +hardhat@^2.12.7, hardhat@^2.17.3: version "2.19.4" - resolved "https://registry.npmjs.org/hardhat/-/hardhat-2.19.4.tgz" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.19.4.tgz#5112c30295d8be2e18e55d847373c50483ed1902" integrity sha512-fTQJpqSt3Xo9Mn/WrdblNGAfcANM6XC3tAEi6YogB4s02DmTf93A8QsGb8uR0KR8TFcpcS8lgiW4ugAIYpnbrQ== dependencies: "@ethersproject/abi" "^5.1.2" @@ -5644,88 +4711,88 @@ hardhat@^2.0.0, hardhat@^2.0.2, hardhat@^2.0.4, hardhat@^2.11.0, hardhat@^2.12.7 has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" + integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== dependencies: - get-intrinsic "^1.1.1" + get-intrinsic "^1.2.2" has-proto@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== -has-symbols@^1.0.0, has-symbols@^1.0.2, has-symbols@^1.0.3: +has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: has-symbols "^1.0.2" -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - hash-base@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: inherits "^2.0.4" readable-stream "^3.6.0" safe-buffer "^5.2.0" -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7, hash.js@1.1.7: +hash.js@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hash.js@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz" - integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.0" + function-bind "^1.1.2" he@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== header-case@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/header-case/-/header-case-1.0.1.tgz#9535973197c144b09613cd65d317ef19963bd02d" integrity sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ== dependencies: no-case "^2.2.0" @@ -5733,22 +4800,22 @@ header-case@^1.0.0: "heap@>= 0.2.0": version "0.2.7" - resolved "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz" + resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc" integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg== highlight.js@^10.4.1: version "10.7.3" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== highlightjs-solidity@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz#e7a702a2b05e0a97f185e6ba39fd4846ad23a990" integrity sha512-DySXWfQghjm2l6a/flF+cteroJqD4gI8GSdL4PtvxZSsAHie8m3yVe2JFoRg03ROKT6hp2Lc/BxXkqerNmtQYg== hmac-drbg@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== dependencies: hash.js "^1.0.3" @@ -5757,12 +4824,12 @@ hmac-drbg@^1.0.1: hosted-git-info@^2.1.4, hosted-git-info@^2.6.0: version "2.8.9" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== htmlparser2@^8.0.1: version "8.0.2" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== dependencies: domelementtype "^2.3.0" @@ -5772,7 +4839,7 @@ htmlparser2@^8.0.1: http-basic@^8.1.1: version "8.1.3" - resolved "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz" + resolved "https://registry.yarnpkg.com/http-basic/-/http-basic-8.1.3.tgz#a7cabee7526869b9b710136970805b1004261bbf" integrity sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw== dependencies: caseless "^0.12.0" @@ -5782,12 +4849,12 @@ http-basic@^8.1.1: http-cache-semantics@^4.0.0: version "4.1.1" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== http-errors@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: depd "2.0.0" @@ -5798,19 +4865,19 @@ http-errors@2.0.0: http-https@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" integrity sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg== http-response-object@^3.0.1: version "3.0.2" - resolved "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/http-response-object/-/http-response-object-3.0.2.tgz#7f435bb210454e4360d074ef1f989d5ea8aa9810" integrity sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA== dependencies: "@types/node" "^10.0.3" http-signature@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== dependencies: assert-plus "^1.0.0" @@ -5819,23 +4886,23 @@ http-signature@~1.2.0: http2-wrapper@^1.0.0-beta.5.2: version "1.0.3" - resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== dependencies: quick-lru "^5.1.1" resolve-alpn "^1.0.0" http2-wrapper@^2.1.10: - version "2.2.0" - resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz" - integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ== + version "2.2.1" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" + integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== dependencies: quick-lru "^5.1.1" resolve-alpn "^1.2.0" https-proxy-agent@^5.0.0: version "5.0.1" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" @@ -5843,46 +4910,46 @@ https-proxy-agent@^5.0.0: iconv-lite@0.4.24: version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" idna-uts46-hx@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== dependencies: punycode "2.1.0" ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^5.1.1, ignore@^5.2.0, ignore@^5.2.4: - version "5.2.4" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== immediate@^3.2.3: version "3.3.0" - resolved "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== immediate@~3.2.3: version "3.2.3" - resolved "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" integrity sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg== immutable@^4.0.0-rc.12: version "4.3.4" - resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -5890,66 +4957,66 @@ import-fresh@^3.2.1, import-fresh@^3.3.0: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@2, inherits@2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@^1.3.5: version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" + integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" + get-intrinsic "^1.2.2" + hasown "^2.0.0" side-channel "^1.0.4" interpret@^1.0.0: version "1.4.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== invert-kv@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" integrity sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ== io-ts@1.10.4: version "1.10.4" - resolved "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz" + resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-1.10.4.tgz#cd5401b138de88e4f920adbcb7026e2d1967e6e2" integrity sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g== dependencies: fp-ts "^1.0.0" ipaddr.js@1.9.1: version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== is-arguments@^1.0.4: version "1.1.1" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== dependencies: call-bind "^1.0.2" @@ -5957,7 +5024,7 @@ is-arguments@^1.0.4: is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== dependencies: call-bind "^1.0.2" @@ -5966,143 +5033,145 @@ is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-bigint@^1.0.1: version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== dependencies: has-bigints "^1.0.1" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-buffer@^2.0.5, is-buffer@~2.0.3: +is-buffer@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== +is-builtin-module@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== + dependencies: + builtin-modules "^3.3.0" + is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.12.1, is-core-module@^2.13.0: - version "2.13.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz" - integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== +is-core-module@^2.12.1, is-core-module@^2.13.0, is-core-module@^2.13.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: - has "^1.0.3" + hasown "^2.0.0" is-date-object@^1.0.1: version "1.0.5" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-fn@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz" - integrity sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg== - is-fullwidth-code-point@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-function@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== is-generator-function@^1.0.7: version "1.0.10" - resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== dependencies: has-tostringtag "^1.0.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-hex-prefixed@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== is-lower-case@^1.1.0: version "1.1.3" - resolved "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393" integrity sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA== dependencies: lower-case "^1.1.0" is-negative-zero@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-number-object@^1.0.4: version "1.0.7" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-obj@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -6110,94 +5179,89 @@ is-regex@^1.1.4: is-shared-array-buffer@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== dependencies: call-bind "^1.0.2" is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.3, is-typed-array@^1.1.9: version "1.1.12" - resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== dependencies: which-typed-array "^1.1.11" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== is-unicode-supported@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== is-upper-case@^1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" integrity sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw== dependencies: upper-case "^1.1.0" is-url@^1.2.4: version "1.2.4" - resolved "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== is-utf8@^0.2.0: version "0.2.1" - resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== is-weakref@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" isarray@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== isarray@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isstream@~0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== jackspeak@^2.3.5: version "2.3.6" - resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== dependencies: "@isaacs/cliui" "^8.0.2" @@ -6206,185 +5270,129 @@ jackspeak@^2.3.5: js-sdsl@^4.1.4: version "4.4.2" - resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.2.tgz#2e3c031b1f47d3aca8b775532e3ebb0818e7f847" integrity sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w== -js-sha3@^0.5.7: - version "0.5.7" - resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz" - integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== - -js-sha3@^0.8.0, js-sha3@0.8.0: - version "0.8.0" - resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - js-sha3@0.5.5: version "0.5.5" - resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.5.tgz#baf0c0e8c54ad5903447df96ade7a4a1bca79a4a" integrity sha512-yLLwn44IVeunwjpDVTDZmQeVbB0h+dZpY2eO68B/Zik8hu6dH+rKeLxwua79GGIvW6xr8NBAcrtiUbYrTjEFTA== -js-sha3@0.5.7: +js-sha3@0.5.7, js-sha3@^0.5.7: version "0.5.7" - resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== +js-sha3@0.8.0, js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^4.1.0, js-yaml@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -js-yaml@3.13.1: - version "3.13.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@3.x: version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@4.1.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsbn@~0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - json-bigint@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== dependencies: bignumber.js "^9.0.0" json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-parse-even-better-errors@^2.3.0: version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== -json-rpc-engine@^5.3.0: - version "5.4.0" - resolved "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz" - integrity sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g== - dependencies: - eth-rpc-errors "^3.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-engine@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz" - integrity sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ== - dependencies: - "@metamask/safe-event-emitter" "^2.0.0" - eth-rpc-errors "^4.0.2" - -json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz" - integrity sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA== - json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema-traverse@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== json-schema@0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json-stable-stringify@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz" - integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g== - dependencies: - jsonify "^0.0.1" - json-stringify-safe@~5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json5@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" -json5@^2.2.3: - version "2.2.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - jsonfile@^2.1.0: version "2.4.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" integrity sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw== optionalDependencies: graceful-fs "^4.1.6" jsonfile@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" optionalDependencies: graceful-fs "^4.1.6" -jsonify@^0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz" - integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== - jsonschema@^1.2.4: version "1.4.1" - resolved "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== jsprim@^1.2.2: version "1.4.2" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== dependencies: assert-plus "1.0.0" @@ -6392,18 +5400,9 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" -keccak@^3.0.0, keccak@^3.0.2: - version "3.0.4" - resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz" - integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - readable-stream "^3.6.0" - keccak@3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== dependencies: node-addon-api "^2.0.0" @@ -6411,97 +5410,77 @@ keccak@3.0.1: keccak@3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== dependencies: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" readable-stream "^3.6.0" +keccak@^3.0.0, keccak@^3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" + integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + keyv@^4.0.0, keyv@^4.5.3: - version "4.5.3" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz" - integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug== + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klaw@^1.0.0: version "1.3.1" - resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw== optionalDependencies: graceful-fs "^4.1.9" lcid@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" integrity sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw== dependencies: invert-kv "^1.0.0" level-codec@^9.0.0: version "9.0.2" - resolved "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz" + resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc" integrity sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ== dependencies: buffer "^5.6.0" -level-codec@~7.0.0: - version "7.0.1" - resolved "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz" - integrity sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ== - level-concat-iterator@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz#5235b1f744bc34847ed65a50548aa88d22e881cf" integrity sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ== dependencies: catering "^2.1.0" level-concat-iterator@~2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz#1d1009cf108340252cb38c51f9727311193e6263" integrity sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw== -level-errors@^1.0.3: - version "1.1.2" - resolved "https://registry.npmjs.org/level-errors/-/level-errors-1.1.2.tgz" - integrity sha512-Sw/IJwWbPKF5Ai4Wz60B52yj0zYeqzObLh8k1Tk88jVmD51cJSKWSYpRyhVIvFzZdvsPqlH5wfhp/yxdsaQH4w== - dependencies: - errno "~0.1.1" - level-errors@^2.0.0, level-errors@~2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-2.0.1.tgz#2132a677bf4e679ce029f517c2f17432800c05c8" integrity sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw== dependencies: errno "~0.1.1" -level-errors@~1.0.3: - version "1.0.5" - resolved "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz" - integrity sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig== - dependencies: - errno "~0.1.1" - -level-iterator-stream@~1.3.0: - version "1.3.1" - resolved "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz" - integrity sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw== - dependencies: - inherits "^2.0.1" - level-errors "^1.0.3" - readable-stream "^1.0.33" - xtend "^4.0.0" - level-iterator-stream@~4.0.0: version "4.0.2" - resolved "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz#7ceba69b713b0d7e22fcc0d1f128ccdc8a24f79c" integrity sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q== dependencies: inherits "^2.0.4" @@ -6510,7 +5489,7 @@ level-iterator-stream@~4.0.0: level-mem@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/level-mem/-/level-mem-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/level-mem/-/level-mem-5.0.1.tgz#c345126b74f5b8aa376dc77d36813a177ef8251d" integrity sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg== dependencies: level-packager "^5.0.3" @@ -6518,7 +5497,7 @@ level-mem@^5.0.1: level-packager@^5.0.3: version "5.1.1" - resolved "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-5.1.1.tgz#323ec842d6babe7336f70299c14df2e329c18939" integrity sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ== dependencies: encoding-down "^6.3.0" @@ -6526,24 +5505,24 @@ level-packager@^5.0.3: level-supports@^2.0.1: version "2.1.0" - resolved "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-2.1.0.tgz#9af908d853597ecd592293b2fad124375be79c5f" integrity sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA== level-supports@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA== level-supports@~1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-1.0.1.tgz#2f530a596834c7301622521988e2c36bb77d122d" integrity sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg== dependencies: xtend "^4.0.2" level-transcoder@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w== dependencies: buffer "^6.0.3" @@ -6551,24 +5530,16 @@ level-transcoder@^1.0.1: level-ws@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-2.0.0.tgz#207a07bcd0164a0ec5d62c304b4615c54436d339" integrity sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA== dependencies: inherits "^2.0.3" readable-stream "^3.1.0" xtend "^4.0.1" -level-ws@0.0.0: - version "0.0.0" - resolved "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz" - integrity sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw== - dependencies: - readable-stream "~1.0.15" - xtend "~2.1.1" - level@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/level/-/level-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394" integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== dependencies: browser-level "^1.0.1" @@ -6576,29 +5547,16 @@ level@^8.0.0: leveldown@6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-6.1.0.tgz#7ab1297706f70c657d1a72b31b40323aa612b9ee" integrity sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w== dependencies: abstract-leveldown "^7.2.0" napi-macros "~2.0.0" node-gyp-build "^4.3.0" -levelup@^1.2.1: - version "1.3.9" - resolved "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz" - integrity sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ== - dependencies: - deferred-leveldown "~1.2.1" - level-codec "~7.0.0" - level-errors "~1.0.3" - level-iterator-stream "~1.3.0" - prr "~1.0.1" - semver "~5.4.1" - xtend "~4.0.0" - levelup@^4.3.2: version "4.4.0" - resolved "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz" + resolved "https://registry.yarnpkg.com/levelup/-/levelup-4.4.0.tgz#f89da3a228c38deb49c48f88a70fb71f01cafed6" integrity sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ== dependencies: deferred-leveldown "~5.3.0" @@ -6609,7 +5567,7 @@ levelup@^4.3.2: levn@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -6617,7 +5575,7 @@ levn@^0.4.1: levn@~0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: prelude-ls "~1.1.2" @@ -6625,12 +5583,12 @@ levn@~0.3.0: lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== load-json-file@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== dependencies: graceful-fs "^4.1.2" @@ -6641,160 +5599,140 @@ load-json-file@^1.0.0: locate-path@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== dependencies: p-locate "^2.0.0" path-exists "^3.0.0" -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash.assign@^4.0.3, lodash.assign@^4.0.6: version "4.2.0" - resolved "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" integrity sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw== lodash.camelcase@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - lodash.flatten@^4.4.0: version "4.4.0" - resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.truncate@^4.4.2: version "4.4.2" - resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz" - integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== - dependencies: - chalk "^2.4.2" - log-symbols@4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: chalk "^4.1.0" is-unicode-supported "^0.1.0" -loupe@^2.3.1: - version "2.3.6" - resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz" - integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== +loupe@^2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== dependencies: - get-func-name "^2.0.0" + get-func-name "^2.0.1" lower-case-first@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1" integrity sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA== dependencies: lower-case "^1.1.2" lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2: version "1.1.4" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA== lowercase-keys@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== lowercase-keys@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== -lru_map@^0.3.3: - version "0.3.3" - resolved "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz" - integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== - lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" "lru-cache@^9.1.1 || ^10.0.0": version "10.1.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== +lru_map@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" + integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== + ltgt@~2.2.0: version "2.2.1" - resolved "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== make-error@^1.1.1: version "1.3.6" - resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== markdown-table@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== mcl-wasm@^0.7.1: version "0.7.9" - resolved "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz" + resolved "https://registry.yarnpkg.com/mcl-wasm/-/mcl-wasm-0.7.9.tgz#c1588ce90042a8700c3b60e40efb339fc07ab87f" integrity sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ== md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" @@ -6803,24 +5741,12 @@ md5.js@^1.3.4: media-typer@0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -memdown@^1.0.0: - version "1.4.1" - resolved "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz" - integrity sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w== - dependencies: - abstract-leveldown "~2.7.1" - functional-red-black-tree "^1.0.1" - immediate "^3.2.3" - inherits "~2.0.1" - ltgt "~2.2.0" - safe-buffer "~5.1.1" - memdown@^5.0.0: version "5.1.0" - resolved "https://registry.npmjs.org/memdown/-/memdown-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/memdown/-/memdown-5.1.0.tgz#608e91a9f10f37f5b5fe767667a8674129a833cb" integrity sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw== dependencies: abstract-leveldown "~6.2.1" @@ -6832,7 +5758,7 @@ memdown@^5.0.0: memory-level@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" integrity sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og== dependencies: abstract-level "^1.0.0" @@ -6840,49 +5766,23 @@ memory-level@^1.0.0: module-error "^1.0.1" memorystream@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" - integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - -merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz" - integrity sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g== - dependencies: - async "^1.4.2" - ethereumjs-util "^5.0.0" - level-ws "0.0.0" - levelup "^1.2.1" - memdown "^1.0.0" - readable-stream "^2.0.0" - rlp "^2.0.0" - semaphore ">=1.0.1" - -merkle-patricia-tree@^4.2.2: - version "4.2.4" - resolved "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz" - integrity sha512-eHbf/BG6eGNsqqfbLED9rIqbsF4+sykEaBn6OLNs71tjclbMcMOk1tEPmJKcNcNCLkvbpY/lwyOlizWsqPNo8w== - dependencies: - "@types/levelup" "^4.3.0" - ethereumjs-util "^7.1.4" - level-mem "^5.0.1" - level-ws "^2.0.0" - readable-stream "^3.6.0" - semaphore-async-await "^1.5.1" + version "0.3.1" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -merkle-patricia-tree@^4.2.4: +merkle-patricia-tree@^4.2.2, merkle-patricia-tree@^4.2.4: version "4.2.4" - resolved "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz" + resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz#ff988d045e2bf3dfa2239f7fabe2d59618d57413" integrity sha512-eHbf/BG6eGNsqqfbLED9rIqbsF4+sykEaBn6OLNs71tjclbMcMOk1tEPmJKcNcNCLkvbpY/lwyOlizWsqPNo8w== dependencies: "@types/levelup" "^4.3.0" @@ -6894,7 +5794,7 @@ merkle-patricia-tree@^4.2.4: merkletreejs@^0.3.11: version "0.3.11" - resolved "https://registry.npmjs.org/merkletreejs/-/merkletreejs-0.3.11.tgz" + resolved "https://registry.yarnpkg.com/merkletreejs/-/merkletreejs-0.3.11.tgz#e0de05c3ca1fd368de05a12cb8efb954ef6fc04f" integrity sha512-LJKTl4iVNTndhL+3Uz/tfkjD0klIWsHlUzgtuNnNrsf7bAlXR30m+xYB7lHr5Z/l6e/yAIsr26Dabx6Buo4VGQ== dependencies: bignumber.js "^9.0.1" @@ -6905,17 +5805,17 @@ merkletreejs@^0.3.11: methods@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== micro-ftch@^0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz" + resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== micromatch@^4.0.4: version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: braces "^3.0.2" @@ -6923,7 +5823,7 @@ micromatch@^4.0.4: miller-rabin@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" @@ -6931,91 +5831,84 @@ miller-rabin@^4.0.0: mime-db@1.52.0: version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" mime@1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mimic-response@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== mimic-response@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== min-document@^2.19.0: version "2.19.0" - resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== dependencies: dom-walk "^0.1.0" minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2, "minimatch@2 || 3": +"minimatch@2 || 3", minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + minimatch@^5.0.1: version "5.1.6" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: brace-expansion "^2.0.1" minimatch@^9.0.1: version "9.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== dependencies: brace-expansion "^2.0.1" -minimatch@3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== minipass@^2.6.0, minipass@^2.9.0: version "2.9.0" - resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== dependencies: safe-buffer "^5.1.2" @@ -7023,57 +5916,50 @@ minipass@^2.6.0, minipass@^2.9.0: "minipass@^5.0.0 || ^6.0.2 || ^7.0.0": version "7.0.4" - resolved "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== minizlib@^1.3.3: version "1.3.3" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== dependencies: minipass "^2.9.0" mkdirp-promise@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" integrity sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w== dependencies: mkdirp "*" mkdirp@*: version "3.0.1" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== -mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@0.5.x: +mkdirp@0.5.x, mkdirp@^0.5.1, mkdirp@^0.5.5: version "0.5.6" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@0.5.5: - version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - mnemonist@^0.38.0: version "0.38.5" - resolved "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz" + resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.5.tgz#4adc7f4200491237fe0fa689ac0b86539685cade" integrity sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg== dependencies: obliterator "^2.0.0" -mocha@^10.0.0, mocha@10.2.0: +mocha@10.2.0, mocha@^10.0.0, mocha@^10.2.0: version "10.2.0" - resolved "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== dependencies: ansi-colors "4.1.1" @@ -7098,69 +5984,34 @@ mocha@^10.0.0, mocha@10.2.0: yargs-parser "20.2.4" yargs-unparser "2.0.0" -mocha@^7.1.1: - version "7.2.0" - resolved "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz" - integrity sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ== - dependencies: - ansi-colors "3.2.3" - browser-stdout "1.3.1" - chokidar "3.3.0" - debug "3.2.6" - diff "3.5.0" - escape-string-regexp "1.0.5" - find-up "3.0.0" - glob "7.1.3" - growl "1.10.5" - he "1.2.0" - js-yaml "3.13.1" - log-symbols "3.0.0" - minimatch "3.0.4" - mkdirp "0.5.5" - ms "2.1.1" - node-environment-flags "1.0.6" - object.assign "4.1.0" - strip-json-comments "2.0.1" - supports-color "6.0.0" - which "1.3.1" - wide-align "1.1.3" - yargs "13.3.2" - yargs-parser "13.1.2" - yargs-unparser "1.6.0" - mock-fs@^4.1.0: version "4.14.0" - resolved "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz" + resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== module-error@^1.0.1, module-error@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== -ms@^2.1.1, ms@2.1.3: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - ms@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - ms@2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + multibase@^0.7.0: version "0.7.0" - resolved "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== dependencies: base-x "^3.0.8" @@ -7168,7 +6019,7 @@ multibase@^0.7.0: multibase@~0.6.0: version "0.6.1" - resolved "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== dependencies: base-x "^3.0.8" @@ -7176,14 +6027,14 @@ multibase@~0.6.0: multicodec@^0.5.5: version "0.5.7" - resolved "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== dependencies: varint "^5.0.0" multicodec@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== dependencies: buffer "^5.6.0" @@ -7191,7 +6042,7 @@ multicodec@^1.0.0: multihashes@^0.4.15, multihashes@~0.4.15: version "0.4.21" - resolved "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== dependencies: buffer "^5.5.0" @@ -7200,128 +6051,115 @@ multihashes@^0.4.15, multihashes@~0.4.15: nano-base32@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/nano-base32/-/nano-base32-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/nano-base32/-/nano-base32-1.0.1.tgz#ba548c879efcfb90da1c4d9e097db4a46c9255ef" integrity sha512-sxEtoTqAPdjWVGv71Q17koMFGsOMSiHsIFEvzOM7cNp8BXB4AnEwmDabm5dorusJf/v1z7QxaZYxUorU9RKaAw== nano-json-stream-parser@^0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew== nanoid@3.3.3: version "3.3.3" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== napi-macros@^2.2.2: version "2.2.2" - resolved "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz" + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.2.2.tgz#817fef20c3e0e40a963fbf7b37d1600bd0201044" integrity sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g== napi-macros@~2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== natural-compare-lite@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== negotiator@0.6.3: version "0.6.3" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== neo-async@^2.6.2: version "2.6.2" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== next-tick@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== no-case@^2.2.0, no-case@^2.3.2: version "2.3.2" - resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== dependencies: lower-case "^1.1.1" node-addon-api@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== node-emoji@^1.10.0: version "1.11.0" - resolved "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== dependencies: lodash "^4.17.21" -node-environment-flags@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz" - integrity sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== - dependencies: - object.getownpropertydescriptors "^2.0.3" - semver "^5.7.0" - -node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: +node-fetch@^2.6.12, node-fetch@^2.6.7: version "2.7.0" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" -node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: - version "4.6.1" - resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz" - integrity sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ== - node-gyp-build@4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== node-gyp-build@4.4.0: version "4.4.0" - resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.4.0.tgz#42e99687ce87ddeaf3a10b99dc06abc11021f3f4" integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ== -node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" + integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== nofilter@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e" integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== nofilter@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g== nopt@3.x: version "3.0.6" - resolved "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" integrity sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg== dependencies: abbrev "1" normalize-package-data@^2.3.2: version "2.5.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" @@ -7331,29 +6169,29 @@ normalize-package-data@^2.3.2: normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-url@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== nth-check@^2.0.1: version "2.1.1" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" number-is-nan@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== number-to-bn@1.7.0: version "1.7.0" - resolved "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz" + resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== dependencies: bn.js "4.11.6" @@ -7361,72 +6199,46 @@ number-to-bn@1.7.0: oauth-sign@~0.9.0: version "0.9.0" - resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.12.3, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.13.1, object-inspect@^1.9.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== -object-keys@^1.0.11, object-keys@^1.1.1: +object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz" - integrity sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw== - object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" + call-bind "^1.0.5" + define-properties "^1.2.1" has-symbols "^1.0.3" object-keys "^1.1.1" -object.assign@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.fromentries@^2.0.6: +object.fromentries@^2.0.7: version "2.0.7" - resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" es-abstract "^1.22.1" -object.getownpropertydescriptors@^2.0.3: - version "2.1.7" - resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz" - integrity sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g== - dependencies: - array.prototype.reduce "^1.0.6" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - safe-array-concat "^1.0.0" - -object.groupby@^1.0.0: +object.groupby@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== dependencies: call-bind "^1.0.2" @@ -7434,9 +6246,9 @@ object.groupby@^1.0.0: es-abstract "^1.22.1" get-intrinsic "^1.2.1" -object.values@^1.1.6: +object.values@^1.1.7: version "1.1.7" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== dependencies: call-bind "^1.0.2" @@ -7445,38 +6257,33 @@ object.values@^1.1.6: obliterator@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== oboe@2.1.5: version "2.1.5" - resolved "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz" + resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" integrity sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA== dependencies: http-https "^1.0.0" on-finished@2.4.1: version "2.4.1" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" -once@^1.3.0, once@^1.3.1, once@^1.4.0, once@1.x: +once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" -"openzeppelin-contracts-upgradeable-4.9.3@npm:@openzeppelin/contracts-upgradeable@^4.9.3": - version "4.9.5" - resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.5.tgz" - integrity sha512-f7L1//4sLlflAN7fVzJLoRedrf5Na3Oal5PZfIq55NFcVZ90EpV1q5xOvL4lFvg3MNICSDr2hH0JUBxwlxcoPg== - optionator@^0.8.1: version "0.8.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" @@ -7488,7 +6295,7 @@ optionator@^0.8.1: optionator@^0.9.3: version "0.9.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: "@aashutoshrathi/word-wrap" "^1.2.3" @@ -7500,126 +6307,119 @@ optionator@^0.9.3: os-locale@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" integrity sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g== dependencies: lcid "^1.0.0" os-tmpdir@~1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== p-cancelable@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== p-cancelable@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== p-limit@^1.1.0: version "1.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== dependencies: p-try "^1.0.0" -p-limit@^2.0.0, p-limit@^2.2.0: +p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== dependencies: p-limit "^1.1.0" -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" p-map@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" p-try@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== p-try@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== param-case@^2.1.0: version "2.1.1" - resolved "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" integrity sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w== dependencies: no-case "^2.2.0" parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-cache-control@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz#8eeab3e54fa56920fe16ba38f77fa21aacc2d74e" integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== parse-headers@^2.0.0: version "2.0.5" - resolved "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9" integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== parse-json@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== dependencies: error-ex "^1.2.0" parse-json@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -7629,7 +6429,7 @@ parse-json@^5.2.0: parse5-htmlparser2-tree-adapter@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== dependencies: domhandler "^5.0.2" @@ -7637,19 +6437,19 @@ parse5-htmlparser2-tree-adapter@^7.0.0: parse5@^7.0.0: version "7.1.2" - resolved "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== dependencies: entities "^4.4.0" parseurl@~1.3.3: version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== pascal-case@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-2.0.1.tgz#2d578d3455f660da65eca18ef95b4e0de912761e" integrity sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ== dependencies: camel-case "^3.0.0" @@ -7657,51 +6457,51 @@ pascal-case@^2.0.0: path-browserify@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== path-case@^2.1.0: version "2.1.1" - resolved "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-case/-/path-case-2.1.1.tgz#94b8037c372d3fe2906e465bb45e25d226e8eea5" integrity sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q== dependencies: no-case "^2.2.0" path-exists@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-scurry@^1.10.1: version "1.10.1" - resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== dependencies: lru-cache "^9.1.1 || ^10.0.0" @@ -7709,12 +6509,12 @@ path-scurry@^1.10.1: path-to-regexp@0.1.7: version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== path-type@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== dependencies: graceful-fs "^4.1.2" @@ -7723,17 +6523,17 @@ path-type@^1.0.0: path-type@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pathval@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== pbkdf2@^3.0.17, pbkdf2@^3.0.9: version "3.1.2" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== dependencies: create-hash "^1.1.2" @@ -7744,202 +6544,167 @@ pbkdf2@^3.0.17, pbkdf2@^3.0.9: performance-now@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^2.0.0: version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== - pify@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pify@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz" - integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== - pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== pluralize@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== -precond@0.2: - version "0.2.3" - resolved "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz" - integrity sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ== - prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prelude-ls@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== prettier-linter-helpers@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== dependencies: fast-diff "^1.1.2" -prettier-plugin-solidity@^1.0.0, prettier-plugin-solidity@^1.3.1: +prettier-plugin-solidity@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.3.1.tgz#59944d3155b249f7f234dee29f433524b9a4abcf" integrity sha512-MN4OP5I2gHAzHZG1wcuJl0FsLS3c4Cc5494bbg+6oQWBPuEamjwDvmGfFMZ6NFzsh3Efd9UUxeT7ImgjNH4ozA== dependencies: "@solidity-parser/parser" "^0.17.0" semver "^7.5.4" solidity-comments-extractor "^0.0.8" -prettier@^2.3.1: - version "2.8.8" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - -prettier@^2.8.3: +prettier@^2.3.1, prettier@^2.8.3: version "2.8.8" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== -prettier@^3.0.0, prettier@^3.2.4, prettier@>=2.0.0, prettier@>=2.3.0: +prettier@^3.2.4: version "3.2.4" - resolved "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.4.tgz#4723cadeac2ce7c9227de758e5ff9b14e075f283" integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.10: version "0.11.10" - resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== -promise-to-callback@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz" - integrity sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA== - dependencies: - is-fn "^1.0.0" - set-immediate-shim "^1.0.1" - promise@^8.0.0: version "8.3.0" - resolved "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== dependencies: asap "~2.0.6" proxy-addr@~2.0.7: version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + prr@~1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== psl@^1.1.28: version "1.9.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== pump@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" once "^1.3.1" +punycode@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== + punycode@^1.4.1: version "1.4.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== punycode@^2.1.0, punycode@^2.1.1: - version "2.3.0" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - -punycode@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz" - integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== pure-rand@^5.0.1: version "5.0.5" - resolved "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-5.0.5.tgz#bda2a7f6a1fc0f284d78d78ca5902f26f2ad35cf" integrity sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw== -qs@^6.11.2: - version "6.11.2" - resolved "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz" - integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" -qs@^6.4.0: +qs@^6.11.2, qs@^6.4.0: version "6.11.2" - resolved "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== dependencies: side-channel "^1.0.4" qs@~6.5.2: version "6.5.3" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== -qs@6.11.0: - version "6.11.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - query-string@^5.0.1: version "5.1.1" - resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== dependencies: decode-uri-component "^0.2.0" @@ -7948,43 +6713,40 @@ query-string@^5.0.1: queue-microtask@^1.2.2, queue-microtask@^1.2.3: version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -queue-tick@^1.0.0: - version "1.0.0" - quick-lru@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== randombytes@^2.0.1, randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" range-parser@~1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@^2.4.1, raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== dependencies: bytes "3.1.2" http-errors "2.0.0" iconv-lite "0.4.24" unpipe "1.0.0" -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== +raw-body@2.5.2, raw-body@^2.4.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" http-errors "2.0.0" @@ -7993,7 +6755,7 @@ raw-body@2.5.1: read-pkg-up@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== dependencies: find-up "^1.0.0" @@ -8001,52 +6763,16 @@ read-pkg-up@^1.0.1: read-pkg@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" integrity sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ== dependencies: load-json-file "^1.0.0" normalize-package-data "^2.3.2" path-type "^1.0.0" -readable-stream@^1.0.33: - version "1.1.14" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" - integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.0: - version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - 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" - readable-stream@^2.2.2: version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - 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" - -readable-stream@^2.2.9: - version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" @@ -8059,64 +6785,47 @@ readable-stream@^2.2.9: readable-stream@^3.1.0, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@~1.0.15: - version "1.0.34" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" - integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readdirp@~3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz" - integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ== - dependencies: - picomatch "^2.0.4" - readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" rechoir@^0.6.2: version "0.6.2" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== dependencies: resolve "^1.1.6" recursive-readdir@^2.2.2: version "2.2.3" - resolved "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== dependencies: minimatch "^3.0.5" reduce-flatten@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regexp.prototype.flags@^1.5.1: version "1.5.1" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== dependencies: call-bind "^1.0.2" @@ -8125,42 +6834,26 @@ regexp.prototype.flags@^1.5.1: regexpp@^3.0.0: version "3.2.0" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== req-cwd@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/req-cwd/-/req-cwd-2.0.0.tgz#d4082b4d44598036640fb73ddea01ed53db49ebc" integrity sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ== dependencies: req-from "^2.0.0" req-from@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/req-from/-/req-from-2.0.0.tgz#d74188e47f93796f4aa71df6ee35ae689f3e0e70" integrity sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA== dependencies: resolve-from "^3.0.0" -request-promise-core@1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz" - integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== - dependencies: - lodash "^4.17.19" - -request-promise-native@^1.0.5: - version "1.0.9" - resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz" - integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== - dependencies: - request-promise-core "1.1.4" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.34, request@^2.79.0, request@^2.85.0, request@^2.88.0: +request@^2.79.0, request@^2.85.0: version "2.88.2" - resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" @@ -8186,193 +6879,181 @@ request@^2.34, request@^2.79.0, request@^2.85.0, request@^2.88.0: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^1.1.0: version "1.2.1" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" integrity sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q== require-from-string@^2.0.0, require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== require-main-filename@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - resolve-alpn@^1.0.0, resolve-alpn@^1.2.0: version "1.2.1" - resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== resolve-from@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-pkg-maps@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.22.2, resolve@^1.22.4: - version "1.22.6" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz" - integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - resolve@1.1.x: version "1.1.7" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== resolve@1.17.0: version "1.17.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: path-parse "^1.0.6" +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.22.2, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + responselike@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== dependencies: lowercase-keys "^2.0.0" reusify@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rimraf@^2.2.8: version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" rimraf@^5.0.5: version "5.0.5" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== dependencies: glob "^10.3.7" ripemd160-min@0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz" + resolved "https://registry.yarnpkg.com/ripemd160-min/-/ripemd160-min-0.0.6.tgz#a904b77658114474d02503e819dcc55853b67e62" integrity sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A== ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" inherits "^2.0.1" -rlp@^2.0.0, rlp@^2.2.3, rlp@^2.2.4: - version "2.2.7" - resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz" - integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== - dependencies: - bn.js "^5.2.0" - rlp@2.2.6: version "2.2.6" - resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz" + resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c" integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg== dependencies: bn.js "^4.11.1" +rlp@^2.2.3, rlp@^2.2.4: + version "2.2.7" + resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" + integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== + dependencies: + bn.js "^5.2.0" + run-parallel-limit@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba" integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== dependencies: queue-microtask "^1.2.2" run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" rustbn.js@~0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== -safe-array-concat@^1.0.0, safe-array-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== +safe-array-concat@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" + integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" + call-bind "^1.0.5" + get-intrinsic "^1.2.2" has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0, safe-buffer@5.2.1: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-event-emitter@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz" - integrity sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg== - dependencies: - events "^3.0.0" - safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + version "1.0.2" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" + integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" + call-bind "^1.0.5" + get-intrinsic "^1.2.2" is-regex "^1.1.4" -safer-buffer@^2.0.2, safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3", safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sc-istanbul@^0.4.5: version "0.4.6" - resolved "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz" + resolved "https://registry.yarnpkg.com/sc-istanbul/-/sc-istanbul-0.4.6.tgz#cf6784355ff2076f92d70d59047d71c13703e839" integrity sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g== dependencies: abbrev "1.0.x" @@ -8390,32 +7071,32 @@ sc-istanbul@^0.4.5: which "^1.1.1" wordwrap "^1.0.0" -scrypt-js@^3.0.0, scrypt-js@^3.0.1, scrypt-js@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - scrypt-js@2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== +scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + seaport-core@^0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/seaport-core/-/seaport-core-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/seaport-core/-/seaport-core-0.0.1.tgz#99db0b605d0fbbfd43ca7a4724e64374ce47f6d4" integrity sha512-fgdSIC0ru8xK+fdDfF4bgTFH8ssr6EwbPejC2g/JsWzxy+FvG7JfaX57yn/eIv6hoscgZL87Rm+kANncgwLH3A== dependencies: seaport-types "^0.0.1" seaport-core@immutable/seaport-core#1.5.0+im.1: - version "1.5.0+im.1" - resolved "git+ssh://git@github.com/immutable/seaport-core.git#33e9030f308500b422926a1be12d7a1e4d6adc06" + version "1.5.0" + resolved "https://codeload.github.com/immutable/seaport-core/tar.gz/33e9030f308500b422926a1be12d7a1e4d6adc06" dependencies: seaport-types "^0.0.1" seaport-sol@^1.5.0: version "1.5.3" - resolved "https://registry.npmjs.org/seaport-sol/-/seaport-sol-1.5.3.tgz" + resolved "https://registry.yarnpkg.com/seaport-sol/-/seaport-sol-1.5.3.tgz#ccb0047bcefb7d29bcd379faddf3a5a9902d0c3a" integrity sha512-6g91hs15v4zBx/ZN9YD0evhQSDhdMKu83c2CgBgtc517D8ipaYaFO71ZD6V0Z6/I0cwNfuN/ZljcA1J+xXr65A== dependencies: seaport-core "^0.0.1" @@ -8423,12 +7104,12 @@ seaport-sol@^1.5.0: seaport-types@^0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/seaport-types/-/seaport-types-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/seaport-types/-/seaport-types-0.0.1.tgz#e2a32fe8641853d7dadb1b0232d911d88ccc3f1a" integrity sha512-m7MLa7sq3YPwojxXiVvoX1PM9iNVtQIn7AdEtBnKTwgxPfGRWUlbs/oMgetpjT/ZYTmv3X5/BghOcstWYvKqRA== "seaport@https://github.com/immutable/seaport.git#1.5.0+im.1.3": - version "1.5.0+im.1" - resolved "git+ssh://git@github.com/immutable/seaport.git#ae061dc008105dd8d05937df9ad9a676f878cbf9" + version "1.5.0" + resolved "https://github.com/immutable/seaport.git#ae061dc008105dd8d05937df9ad9a676f878cbf9" dependencies: "@nomicfoundation/hardhat-network-helpers" "^1.0.7" "@openzeppelin/contracts" "^4.9.2" @@ -8441,9 +7122,9 @@ seaport-types@^0.0.1: seaport-types "^0.0.1" solady "^0.0.84" -secp256k1@^4.0.1, secp256k1@4.0.3: +secp256k1@4.0.3, secp256k1@^4.0.1: version "4.0.3" - resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== dependencies: elliptic "^6.5.4" @@ -8452,99 +7133,34 @@ secp256k1@^4.0.1, secp256k1@4.0.3: seedrandom@3.0.5: version "3.0.5" - resolved "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz" + resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7" integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== semaphore-async-await@^1.5.1: version "1.5.1" - resolved "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz#857bef5e3644601ca4b9570b87e9df5ca12974fa" integrity sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg== -semaphore@^1.0.3, semaphore@>=1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz" - integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== - -semver@^5.3.0: - version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^5.5.0: - version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.6.0: version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^5.7.0: - version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@^6.1.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -semver@^7.3.4: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -semver@^7.3.7: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -semver@^7.5.2: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -semver@^7.5.3: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -semver@^7.5.4: +semver@^7.0.0, semver@^7.3.4, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" -semver@~5.4.1: - version "5.4.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz" - integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== - -"semver@2 || 3 || 4 || 5": - version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - send@0.18.0: version "0.18.0" - resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" @@ -8563,7 +7179,7 @@ send@0.18.0: sentence-case@^2.1.0: version "2.1.1" - resolved "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-2.1.1.tgz#1f6e2dda39c168bf92d13f86d4a918933f667ed4" integrity sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ== dependencies: no-case "^2.2.0" @@ -8571,14 +7187,14 @@ sentence-case@^2.1.0: serialize-javascript@6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== dependencies: randombytes "^2.1.0" serve-static@1.15.0: version "1.15.0" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" @@ -8588,7 +7204,7 @@ serve-static@1.15.0: servify@^0.1.12: version "0.1.12" - resolved "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz" + resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== dependencies: body-parser "^1.16.0" @@ -8599,41 +7215,47 @@ servify@^0.1.12: set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +set-function-length@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" + integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== + dependencies: + define-data-property "^1.1.1" + function-bind "^1.1.2" + get-intrinsic "^1.2.2" + gopd "^1.0.1" + has-property-descriptors "^1.0.1" + set-function-name@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== dependencies: define-data-property "^1.0.1" functions-have-names "^1.2.3" has-property-descriptors "^1.0.0" -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" - integrity sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ== +setimmediate@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" + integrity sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog== setimmediate@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== -setimmediate@1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz" - integrity sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog== - setprototypeof@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" @@ -8641,7 +7263,7 @@ sha.js@^2.4.0, sha.js@^2.4.8: sha1@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/sha1/-/sha1-1.1.1.tgz#addaa7a93168f393f19eb2b15091618e2700f848" integrity sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA== dependencies: charenc ">= 0.0.1" @@ -8649,26 +7271,26 @@ sha1@^1.1.1: sha3@^2.1.1: version "2.1.4" - resolved "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz" + resolved "https://registry.yarnpkg.com/sha3/-/sha3-2.1.4.tgz#000fac0fe7c2feac1f48a25e7a31b52a6492cc8f" integrity sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg== dependencies: buffer "6.0.3" shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shelljs@^0.8.3: version "0.8.5" - resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== dependencies: glob "^7.0.0" @@ -8677,7 +7299,7 @@ shelljs@^0.8.3: side-channel@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: call-bind "^1.0.0" @@ -8686,17 +7308,17 @@ side-channel@^1.0.4: signal-exit@^4.0.1: version "4.1.0" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== simple-concat@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== simple-get@^2.7.0: version "2.8.2" - resolved "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.2.tgz#5708fb0919d440657326cd5fe7d2599d07705019" integrity sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw== dependencies: decompress-response "^3.3.0" @@ -8705,12 +7327,12 @@ simple-get@^2.7.0: slash@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slice-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: ansi-styles "^4.0.0" @@ -8719,19 +7341,34 @@ slice-ansi@^4.0.0: snake-case@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" integrity sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q== dependencies: no-case "^2.2.0" solady@^0.0.84: version "0.0.84" - resolved "https://registry.npmjs.org/solady/-/solady-0.0.84.tgz" + resolved "https://registry.yarnpkg.com/solady/-/solady-0.0.84.tgz#95476df1936ef349003e88d8a4853185eb0b7267" integrity sha512-1ccuZWcMR+g8Ont5LUTqMSFqrmEC+rYAbo6DjZFzdL7AJAtLiaOzO25BKZR10h6YBZNaqO5zUOFy09R6/AzAKQ== -solc@*, solc@0.8.15: +solc@0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.7.3.tgz#04646961bd867a744f63d2b4e3c0701ffdc7d78a" + integrity sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA== + dependencies: + command-exists "^1.2.8" + commander "3.0.2" + follow-redirects "^1.12.1" + fs-extra "^0.30.0" + js-sha3 "0.8.0" + memorystream "^0.3.1" + require-from-string "^2.0.0" + semver "^5.5.0" + tmp "0.0.33" + +solc@0.8.15: version "0.8.15" - resolved "https://registry.npmjs.org/solc/-/solc-0.8.15.tgz" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.8.15.tgz#d274dca4d5a8b7d3c9295d4cbdc9291ee1c52152" integrity sha512-Riv0GNHNk/SddN/JyEuFKwbcWcEeho15iyupTSHw5Np6WuXA5D8kEHbyzDHi6sqmvLzu2l+8b1YmL8Ytple+8w== dependencies: command-exists "^1.2.8" @@ -8744,7 +7381,7 @@ solc@*, solc@0.8.15: solc@^0.4.20: version "0.4.26" - resolved "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.26.tgz#5390a62a99f40806b86258c737c1cf653cc35cb5" integrity sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA== dependencies: fs-extra "^0.30.0" @@ -8753,24 +7390,9 @@ solc@^0.4.20: semver "^5.3.0" yargs "^4.7.1" -solc@0.7.3: - version "0.7.3" - resolved "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz" - integrity sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA== - dependencies: - command-exists "^1.2.8" - commander "3.0.2" - follow-redirects "^1.12.1" - fs-extra "^0.30.0" - js-sha3 "0.8.0" - memorystream "^0.3.1" - require-from-string "^2.0.0" - semver "^5.5.0" - tmp "0.0.33" - solhint-community@^3.7.0: version "3.7.0" - resolved "https://registry.npmjs.org/solhint-community/-/solhint-community-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/solhint-community/-/solhint-community-3.7.0.tgz#5d8bd4a2137d44dd636272edce93cb754184c09b" integrity sha512-8nfdaxVll+IIaEBHFz3CzagIZNNTGp4Mrr+6O4m7c9Bs/L8OcgR/xzZJFwROkGAhV8Nbiv4gqJ42nEXZPYl3Qw== dependencies: "@solidity-parser/parser" "^0.16.0" @@ -8795,7 +7417,7 @@ solhint-community@^3.7.0: solhint-plugin-prettier@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/solhint-plugin-prettier/-/solhint-plugin-prettier-0.1.0.tgz#2f46999e26d6c6bc80281c22a7a21e381175bef7" integrity sha512-SDOTSM6tZxZ6hamrzl3GUgzF77FM6jZplgL2plFBclj/OjKP8Z3eIPojKU73gRr0MvOS8ACZILn8a5g0VTz/Gw== dependencies: "@prettier/sync" "^0.3.0" @@ -8803,7 +7425,7 @@ solhint-plugin-prettier@^0.1.0: solhint@^3.3.8: version "3.6.2" - resolved "https://registry.npmjs.org/solhint/-/solhint-3.6.2.tgz" + resolved "https://registry.yarnpkg.com/solhint/-/solhint-3.6.2.tgz#2b2acbec8fdc37b2c68206a71ba89c7f519943fe" integrity sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ== dependencies: "@solidity-parser/parser" "^0.16.0" @@ -8828,24 +7450,25 @@ solhint@^3.3.8: solidity-bits@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/solidity-bits/-/solidity-bits-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/solidity-bits/-/solidity-bits-0.4.0.tgz#164ef2184d446b37fe1e08e63c55ae200b36697a" integrity sha512-bAU3OwfZ3DrZz0LqxyCjaxXQL5fcbUXygaz7Wjd+4Th5zUbkw6h1SWBdi2E4yGOv1VSGyvcmHI8gAdgLDCXaDQ== solidity-bytes-utils@^0.8.0: - version "0.8.0" - resolved "https://registry.npmjs.org/solidity-bytes-utils/-/solidity-bytes-utils-0.8.0.tgz" - integrity sha512-r109ZHEf7zTMm1ENW6/IJFDWilFR/v0BZnGuFgDHJUV80ByobnV2k3txvwQaJ9ApL+6XAfwqsw5VFzjALbQPCw== + version "0.8.2" + resolved "https://registry.yarnpkg.com/solidity-bytes-utils/-/solidity-bytes-utils-0.8.2.tgz#763d6a02fd093e93b3a97b742e97d540e66c29bd" + integrity sha512-cqXPYAV2auhpdKSTPuqji0CwpSceZDu95CzqSM/9tDJ2MoMaMsdHTpOIWtVw31BIqqGPNmIChCswzbw0tHaMTw== dependencies: - "@truffle/hdwallet-provider" latest + ds-test "github:dapphub/ds-test" + forge-std "^1.1.2" solidity-comments-extractor@^0.0.8: version "0.0.8" - resolved "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.8.tgz" + resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.8.tgz#f6e148ab0c49f30c1abcbecb8b8df01ed8e879f8" integrity sha512-htM7Vn6LhHreR+EglVMd2s+sZhcXAirB1Zlyrv5zBuTxieCvjfnRpd7iZk75m/u6NOlEyQ94C6TWbBn2cY7w8g== solidity-coverage@^0.8.4: version "0.8.5" - resolved "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.5.tgz" + resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.8.5.tgz#64071c3a0c06a0cecf9a7776c35f49edc961e875" integrity sha512-6C6N6OV2O8FQA0FWA95FdzVH+L16HU94iFgg5wAFZ29UpLFkgNI/DRR2HotG1bC0F4gAc/OMs2BJI44Q/DYlKQ== dependencies: "@ethersproject/abi" "^5.0.9" @@ -8871,7 +7494,7 @@ solidity-coverage@^0.8.4: source-map-support@^0.5.13: version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" @@ -8879,19 +7502,19 @@ source-map-support@^0.5.13: source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@~0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" integrity sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA== dependencies: amdefine ">=0.0.4" spdx-correct@^3.0.0: version "3.2.0" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== dependencies: spdx-expression-parse "^3.0.0" @@ -8899,31 +7522,31 @@ spdx-correct@^3.0.0: spdx-exceptions@^2.1.0: version "2.3.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.15" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz" - integrity sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ== + version "3.0.16" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" + integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + version "1.18.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" + integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -8937,58 +7560,29 @@ sshpk@^1.7.0: stacktrace-parser@^0.1.10: version "0.1.10" - resolved "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz" + resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== dependencies: type-fest "^0.7.1" statuses@2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz" - integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== - -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== - strict-uri-encode@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - string-format@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b" integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== -"string-width-cjs@npm:string-width@^4.2.0": +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -8997,59 +7591,24 @@ string-format@^2.0.0: string-width@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2": - version "2.1.1" - resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - string-width@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: eastasianwidth "^0.2.0" @@ -9058,7 +7617,7 @@ string-width@^5.0.1, string-width@^5.1.2: string.prototype.trim@^1.2.8: version "1.2.8" - resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: call-bind "^1.0.2" @@ -9067,7 +7626,7 @@ string.prototype.trim@^1.2.8: string.prototype.trimend@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" @@ -9076,132 +7635,120 @@ string.prototype.trimend@^1.0.7: string.prototype.trimstart@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" es-abstract "^1.22.1" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^7.0.1: version "7.1.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" strip-bom@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== dependencies: is-utf8 "^0.2.0" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-hex-prefix@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== dependencies: is-hex-prefixed "1.0.0" strip-indent@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" integrity sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA== -strip-json-comments@^3.1.1, strip-json-comments@3.1.1: +strip-json-comments@3.1.1, strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-json-comments@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" supports-color@^3.1.0: version "3.2.3" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== dependencies: has-flag "^1.0.0" supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -supports-color@6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz" - integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== - dependencies: - has-flag "^3.0.0" - -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== swap-case@^1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3" integrity sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ== dependencies: lower-case "^1.1.1" @@ -9209,7 +7756,7 @@ swap-case@^1.1.0: swarm-js@^0.1.40: version "0.1.42" - resolved "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz" + resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.42.tgz#497995c62df6696f6e22372f457120e43e727979" integrity sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ== dependencies: bluebird "^3.5.0" @@ -9226,7 +7773,7 @@ swarm-js@^0.1.40: sync-request@^6.0.0: version "6.1.0" - resolved "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/sync-request/-/sync-request-6.1.0.tgz#e96217565b5e50bbffe179868ba75532fb597e68" integrity sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw== dependencies: http-response-object "^3.0.1" @@ -9235,14 +7782,14 @@ sync-request@^6.0.0: sync-rpc@^1.2.1: version "1.3.6" - resolved "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz" + resolved "https://registry.yarnpkg.com/sync-rpc/-/sync-rpc-1.3.6.tgz#b2e8b2550a12ccbc71df8644810529deb68665a7" integrity sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw== dependencies: get-port "^3.1.0" table-layout@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A== dependencies: array-back "^4.0.1" @@ -9252,7 +7799,7 @@ table-layout@^1.0.2: table@^6.8.0, table@^6.8.1: version "6.8.1" - resolved "https://registry.npmjs.org/table/-/table-6.8.1.tgz" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== dependencies: ajv "^8.0.1" @@ -9263,7 +7810,7 @@ table@^6.8.0, table@^6.8.1: tar@^4.0.2: version "4.4.19" - resolved "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== dependencies: chownr "^1.1.4" @@ -9276,17 +7823,17 @@ tar@^4.0.2: testrpc@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/testrpc/-/testrpc-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/testrpc/-/testrpc-0.0.1.tgz#83e2195b1f5873aec7be1af8cbe6dcf39edb7aed" integrity sha512-afH1hO+SQ/VPlmaLUFj2636QMeDvPCeQMc/9RBMW0IfjNe9gFD9Ra3ShqYkB7py0do1ZcCna/9acHyzTJ+GcNA== text-table@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== then-request@^6.0.0: version "6.0.2" - resolved "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/then-request/-/then-request-6.0.2.tgz#ec18dd8b5ca43aaee5cb92f7e4c1630e950d4f0c" integrity sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA== dependencies: "@types/concat-stream" "^1.6.0" @@ -9303,12 +7850,12 @@ then-request@^6.0.0: timed-out@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== title-case@^2.1.0: version "2.1.1" - resolved "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/title-case/-/title-case-2.1.1.tgz#3e127216da58d2bc5becf137ab91dae3a7cd8faa" integrity sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q== dependencies: no-case "^2.2.0" @@ -9316,31 +7863,26 @@ title-case@^2.1.0: tmp@0.0.33: version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" toidentifier@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -tough-cookie@^2.3.3, tough-cookie@~2.5.0: +tough-cookie@~2.5.0: version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: psl "^1.1.28" @@ -9348,17 +7890,17 @@ tough-cookie@^2.3.3, tough-cookie@~2.5.0: tr46@~0.0.3: version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== treeify@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.1.0.tgz#4e31c6a463accd0943879f30667c4fdaff411bb8" integrity sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A== ts-command-line-args@^2.2.0: version "2.5.1" - resolved "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz" + resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz#e64456b580d1d4f6d948824c274cf6fa5f45f7f0" integrity sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw== dependencies: chalk "^4.1.0" @@ -9368,13 +7910,13 @@ ts-command-line-args@^2.2.0: ts-essentials@^7.0.1: version "7.0.3" - resolved "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== -ts-node@*, ts-node@^10.9.1: - version "10.9.1" - resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== +ts-node@^10.9.1: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" @@ -9390,10 +7932,10 @@ ts-node@*, ts-node@^10.9.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tsconfig-paths@^3.14.2: - version "3.14.2" - resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.2" @@ -9402,92 +7944,80 @@ tsconfig-paths@^3.14.2: tslib@^1.8.1, tslib@^1.9.3: version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0: - version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - tsort@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" integrity sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw== tsutils@^3.21.0: version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" tweetnacl-util@^0.15.1: version "0.15.1" - resolved "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz" + resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== tweetnacl@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== -type-check@^0.4.0: +type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-check@~0.3.2: version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== dependencies: prelude-ls "~1.1.2" -type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-detect@^4.0.0, type-detect@^4.0.5: +type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type-fest@^0.7.1: version "0.7.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== type-is@~1.6.18: version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" @@ -9495,18 +8025,18 @@ type-is@~1.6.18: type@^1.0.1: version "1.2.0" - resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== type@^2.7.2: version "2.7.2" - resolved "https://registry.npmjs.org/type/-/type-2.7.2.tgz" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== typechain@^8.0.0, typechain@^8.1.1: - version "8.3.1" - resolved "https://registry.npmjs.org/typechain/-/typechain-8.3.1.tgz" - integrity sha512-fA7clol2IP/56yq6vkMTR+4URF1nGjV82Wx6Rf09EsqD4tkzMAvEaqYxVFCavJm/1xaRga/oD55K+4FtuXwQOQ== + version "8.3.2" + resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.3.2.tgz#1090dd8d9c57b6ef2aed3640a516bdbf01b00d73" + integrity sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q== dependencies: "@types/prettier" "^2.1.1" debug "^4.3.1" @@ -9521,7 +8051,7 @@ typechain@^8.0.0, typechain@^8.1.1: typed-array-buffer@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== dependencies: call-bind "^1.0.2" @@ -9530,7 +8060,7 @@ typed-array-buffer@^1.0.0: typed-array-byte-length@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== dependencies: call-bind "^1.0.2" @@ -9540,7 +8070,7 @@ typed-array-byte-length@^1.0.0: typed-array-byte-offset@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== dependencies: available-typed-arrays "^1.0.5" @@ -9551,7 +8081,7 @@ typed-array-byte-offset@^1.0.0: typed-array-length@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== dependencies: call-bind "^1.0.2" @@ -9560,44 +8090,44 @@ typed-array-length@^1.0.4: typedarray-to-buffer@^3.1.5: version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@*, typescript@^4.9.5, typescript@>=2.7, "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", typescript@>=3.7.0, typescript@>=4.3.0, typescript@>=4.9.5: +typescript@^4.9.5: version "4.9.5" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== typical@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== typical@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== uglify-js@^3.1.4: version "3.17.4" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== ultron@~1.1.0: version "1.1.1" - resolved "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== unbox-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: call-bind "^1.0.2" @@ -9605,88 +8135,92 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + undici@^5.14.0: - version "5.25.2" - resolved "https://registry.npmjs.org/undici/-/undici-5.25.2.tgz" - integrity sha512-tch8RbCfn1UUH1PeVCXva4V8gDpGAud/w0WubD6sHC46vYQ3KDxL+xv1A2UxK0N6jrVedutuPHxe1XIoqerwMw== + version "5.28.2" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.2.tgz#fea200eac65fc7ecaff80a023d1a0543423b4c91" + integrity sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w== dependencies: - busboy "^1.6.0" + "@fastify/busboy" "^2.0.0" universalify@^0.1.0: version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@~1.0.0, unpipe@1.0.0: +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - upper-case-first@^1.1.0, upper-case-first@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115" integrity sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ== dependencies: upper-case "^1.1.1" upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" integrity sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA== uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" url-set-query@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== url@^0.11.0: version "0.11.3" - resolved "https://registry.npmjs.org/url/-/url-0.11.3.tgz" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.3.tgz#6f495f4b935de40ce4a0a52faee8954244f3d3ad" integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw== dependencies: punycode "^1.4.1" qs "^6.11.2" -utf-8-validate@^5.0.2, utf-8-validate@5.0.7: +utf-8-validate@5.0.7: version "5.0.7" - resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.7.tgz#c15a19a6af1f7ad9ec7ddc425747ca28c3644922" integrity sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q== dependencies: node-gyp-build "^4.3.0" -utf8@^3.0.0, utf8@3.0.0: +utf-8-validate@^5.0.2: + version "5.0.10" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" + integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== + dependencies: + node-gyp-build "^4.3.0" + +utf8@3.0.0, utf8@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util@^0.12.5: version "0.12.5" - resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== dependencies: inherits "^2.0.3" @@ -9697,37 +8231,37 @@ util@^0.12.5: utils-merge@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== +uuid@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" + integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg== + uuid@^3.3.2: version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== uuid@^9.0.0: version "9.0.1" - resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== -uuid@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz" - integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg== - v8-compile-cache-lib@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== validate-npm-package-license@^3.0.1: version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" @@ -9735,17 +8269,17 @@ validate-npm-package-license@^3.0.1: varint@^5.0.0: version "5.0.2" - resolved "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz" + resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== vary@^1, vary@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== verror@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: assert-plus "^1.0.0" @@ -9754,17 +8288,17 @@ verror@1.10.0: web3-bzz@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.10.0.tgz#ac74bc71cdf294c7080a79091079192f05c5baed" integrity sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA== dependencies: "@types/node" "^12.12.6" got "12.1.0" swarm-js "^0.1.40" -web3-bzz@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.2.tgz" - integrity sha512-vLOfDCj6198Qc7esDrCKeFA/M3ZLbowsaHQ0hIL4NmIHoq7lU8aSRTa5AI+JBh8cKN1gVryJsuW2ZCc5bM4I4Q== +web3-bzz@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.10.3.tgz#13942b37757eb850f3500a8e08bf605448b67566" + integrity sha512-XDIRsTwekdBXtFytMpHBuun4cK4x0ZMIDXSoo1UVYp+oMyZj07c7gf7tNQY5qZ/sN+CJIas4ilhN25VJcjSijQ== dependencies: "@types/node" "^12.12.6" got "12.1.0" @@ -9772,23 +8306,23 @@ web3-bzz@1.10.2: web3-core-helpers@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz#1016534c51a5df77ed4f94d1fcce31de4af37fad" integrity sha512-pIxAzFDS5vnbXvfvLSpaA1tfRykAe9adw43YCKsEYQwH0gCLL0kMLkaCX3q+Q8EVmAh+e1jWL/nl9U0de1+++g== dependencies: web3-eth-iban "1.10.0" web3-utils "1.10.0" -web3-core-helpers@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.2.tgz" - integrity sha512-1JfaNtox6/ZYJHNoI+QVc2ObgwEPeGF+YdxHZQ7aF5605BmlwM1Bk3A8xv6mg64jIRvEq1xX6k9oG6x7p1WgXQ== +web3-core-helpers@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.10.3.tgz#f2db40ea57e888795e46f229b06113b60bcd671c" + integrity sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA== dependencies: - web3-eth-iban "1.10.2" - web3-utils "1.10.2" + web3-eth-iban "1.10.3" + web3-utils "1.10.3" web3-core-method@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.10.0.tgz#82668197fa086e8cc8066742e35a9d72535e3412" integrity sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA== dependencies: "@ethersproject/transactions" "^5.6.2" @@ -9797,34 +8331,34 @@ web3-core-method@1.10.0: web3-core-subscriptions "1.10.0" web3-utils "1.10.0" -web3-core-method@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.2.tgz" - integrity sha512-gG6ES+LOuo01MJHML4gnEt702M8lcPGMYZoX8UjZzmEebGrPYOY9XccpCrsFgCeKgQzM12SVnlwwpMod1+lcLg== +web3-core-method@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.10.3.tgz#63f16310ccab4eec8eca0a337d534565c2ba8d33" + integrity sha512-VZ/Dmml4NBmb0ep5PTSg9oqKoBtG0/YoMPei/bq/tUdlhB2dMB79sbeJPwx592uaV0Vpk7VltrrrBv5hTM1y4Q== dependencies: "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.10.2" - web3-core-promievent "1.10.2" - web3-core-subscriptions "1.10.2" - web3-utils "1.10.2" + web3-core-helpers "1.10.3" + web3-core-promievent "1.10.3" + web3-core-subscriptions "1.10.3" + web3-utils "1.10.3" web3-core-promievent@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.10.0.tgz#cbb5b3a76b888df45ed3a8d4d8d4f54ccb66a37b" integrity sha512-68N7k5LWL5R38xRaKFrTFT2pm2jBNFaM4GioS00YjAKXRQ3KjmhijOMG3TICz6Aa5+6GDWYelDNx21YAeZ4YTg== dependencies: eventemitter3 "4.0.4" -web3-core-promievent@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.2.tgz" - integrity sha512-Qkkb1dCDOU8dZeORkcwJBQRAX+mdsjx8LqFBB+P4W9QgwMqyJ6LXda+y1XgyeEVeKEmY1RCeTq9Y94q1v62Sfw== +web3-core-promievent@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.10.3.tgz#9765dd42ce6cf2dc0a08eaffee607b855644f290" + integrity sha512-HgjY+TkuLm5uTwUtaAfkTgRx/NzMxvVradCi02gy17NxDVdg/p6svBHcp037vcNpkuGeFznFJgULP+s2hdVgUQ== dependencies: eventemitter3 "4.0.4" web3-core-requestmanager@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz#4b34f6e05837e67c70ff6f6993652afc0d54c340" integrity sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ== dependencies: util "^0.12.5" @@ -9833,36 +8367,36 @@ web3-core-requestmanager@1.10.0: web3-providers-ipc "1.10.0" web3-providers-ws "1.10.0" -web3-core-requestmanager@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.2.tgz" - integrity sha512-nlLeNJUu6fR+ZbJr2k9Du/nN3VWwB4AJPY4r6nxUODAmykgJq57T21cLP/BEk6mbiFQYGE9TrrPhh4qWxQEtAw== +web3-core-requestmanager@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.10.3.tgz#c34ca8e998a18d6ca3fa7f7a11d4391da401c987" + integrity sha512-VT9sKJfgM2yBOIxOXeXiDuFMP4pxzF6FT+y8KTLqhDFHkbG3XRe42Vm97mB/IvLQCJOmokEjl3ps8yP1kbggyw== dependencies: util "^0.12.5" - web3-core-helpers "1.10.2" - web3-providers-http "1.10.2" - web3-providers-ipc "1.10.2" - web3-providers-ws "1.10.2" + web3-core-helpers "1.10.3" + web3-providers-http "1.10.3" + web3-providers-ipc "1.10.3" + web3-providers-ws "1.10.3" web3-core-subscriptions@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz#b534592ee1611788fc0cb0b95963b9b9b6eacb7c" integrity sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g== dependencies: eventemitter3 "4.0.4" web3-core-helpers "1.10.0" -web3-core-subscriptions@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.2.tgz" - integrity sha512-MiWcKjz4tco793EPPPLc/YOJmYUV3zAfxeQH/UVTfBejMfnNvmfwKa2SBKfPIvKQHz/xI5bV2TF15uvJEucU7w== +web3-core-subscriptions@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.10.3.tgz#58768cd72a9313252ef05dc52c09536f009a9479" + integrity sha512-KW0Mc8sgn70WadZu7RjQ4H5sNDJ5Lx8JMI3BWos+f2rW0foegOCyWhRu33W1s6ntXnqeBUw5rRCXZRlA3z+HNA== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.10.2" + web3-core-helpers "1.10.3" web3-core@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.10.0.tgz#9aa07c5deb478cf356c5d3b5b35afafa5fa8e633" integrity sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ== dependencies: "@types/bn.js" "^5.1.1" @@ -9873,38 +8407,38 @@ web3-core@1.10.0: web3-core-requestmanager "1.10.0" web3-utils "1.10.0" -web3-core@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-core/-/web3-core-1.10.2.tgz" - integrity sha512-qTn2UmtE8tvwMRsC5pXVdHxrQ4uZ6jiLgF5DRUVtdi7dPUmX18Dp9uxKfIfhGcA011EAn8P6+X7r3pvi2YRxBw== +web3-core@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.10.3.tgz#4aeb8f4b0cb5775d9fa4edf1127864743f1c3ae3" + integrity sha512-Vbk0/vUNZxJlz3RFjAhNNt7qTpX8yE3dn3uFxfX5OHbuon5u65YEOd3civ/aQNW745N0vGUlHFNxxmn+sG9DIw== dependencies: "@types/bn.js" "^5.1.1" "@types/node" "^12.12.6" bignumber.js "^9.0.0" - web3-core-helpers "1.10.2" - web3-core-method "1.10.2" - web3-core-requestmanager "1.10.2" - web3-utils "1.10.2" + web3-core-helpers "1.10.3" + web3-core-method "1.10.3" + web3-core-requestmanager "1.10.3" + web3-utils "1.10.3" web3-eth-abi@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz#53a7a2c95a571e205e27fd9e664df4919483cce1" integrity sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg== dependencies: "@ethersproject/abi" "^5.6.3" web3-utils "1.10.0" -web3-eth-abi@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.2.tgz" - integrity sha512-pY4fQUio7W7ZRSLf+vsYkaxJqaT/jHcALZjIxy+uBQaYAJ3t6zpQqMZkJB3Dw7HUODRJ1yI0NPEFGTnkYf/17A== +web3-eth-abi@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.10.3.tgz#7decfffa8fed26410f32cfefdc32d3e76f717ca2" + integrity sha512-O8EvV67uhq0OiCMekqYsDtb6FzfYzMXT7VMHowF8HV6qLZXCGTdB/NH4nJrEh2mFtEwVdS6AmLFJAQd2kVyoMQ== dependencies: "@ethersproject/abi" "^5.6.3" - web3-utils "1.10.2" + web3-utils "1.10.3" web3-eth-accounts@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz#2942beca0a4291455f32cf09de10457a19a48117" integrity sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q== dependencies: "@ethereumjs/common" "2.5.0" @@ -9918,25 +8452,25 @@ web3-eth-accounts@1.10.0: web3-core-method "1.10.0" web3-utils "1.10.0" -web3-eth-accounts@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.2.tgz" - integrity sha512-6/HhCBYAXN/f553/SyxS9gY62NbLgpD1zJpENcvRTDpJN3Znvli1cmpl5Q3ZIUJkvHnG//48EWfWh0cbb3fbKQ== +web3-eth-accounts@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.10.3.tgz#9ecb816b81cd97333988bfcd0afaee5d13bbb198" + integrity sha512-8MipGgwusDVgn7NwKOmpeo3gxzzd+SmwcWeBdpXknuyDiZSQy9tXe+E9LeFGrmys/8mLLYP79n3jSbiTyv+6pQ== dependencies: - "@ethereumjs/common" "2.5.0" - "@ethereumjs/tx" "3.3.2" + "@ethereumjs/common" "2.6.5" + "@ethereumjs/tx" "3.5.2" "@ethereumjs/util" "^8.1.0" eth-lib "0.2.8" scrypt-js "^3.0.1" uuid "^9.0.0" - web3-core "1.10.2" - web3-core-helpers "1.10.2" - web3-core-method "1.10.2" - web3-utils "1.10.2" + web3-core "1.10.3" + web3-core-helpers "1.10.3" + web3-core-method "1.10.3" + web3-utils "1.10.3" web3-eth-contract@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz#8e68c7654576773ec3c91903f08e49d0242c503a" integrity sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w== dependencies: "@types/bn.js" "^5.1.1" @@ -9948,23 +8482,23 @@ web3-eth-contract@1.10.0: web3-eth-abi "1.10.0" web3-utils "1.10.0" -web3-eth-contract@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.2.tgz" - integrity sha512-CZLKPQRmupP/+OZ5A/CBwWWkBiz5B/foOpARz0upMh1yjb0dEud4YzRW2gJaeNu0eGxDLsWVaXhUimJVGYprQw== +web3-eth-contract@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.10.3.tgz#8880468e2ba7d8a4791cf714f67d5e1ec1591275" + integrity sha512-Y2CW61dCCyY4IoUMD4JsEQWrILX4FJWDWC/Txx/pr3K/+fGsBGvS9kWQN5EsVXOp4g7HoFOfVh9Lf7BmVVSRmg== dependencies: "@types/bn.js" "^5.1.1" - web3-core "1.10.2" - web3-core-helpers "1.10.2" - web3-core-method "1.10.2" - web3-core-promievent "1.10.2" - web3-core-subscriptions "1.10.2" - web3-eth-abi "1.10.2" - web3-utils "1.10.2" + web3-core "1.10.3" + web3-core-helpers "1.10.3" + web3-core-method "1.10.3" + web3-core-promievent "1.10.3" + web3-core-subscriptions "1.10.3" + web3-eth-abi "1.10.3" + web3-utils "1.10.3" web3-eth-ens@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz#96a676524e0b580c87913f557a13ed810cf91cd9" integrity sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g== dependencies: content-hash "^2.5.2" @@ -9976,39 +8510,39 @@ web3-eth-ens@1.10.0: web3-eth-contract "1.10.0" web3-utils "1.10.0" -web3-eth-ens@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.2.tgz" - integrity sha512-kTQ42UdNHy4BQJHgWe97bHNMkc3zCMBKKY7t636XOMxdI/lkRdIjdE5nQzt97VjQvSVasgIWYKRAtd8aRaiZiQ== +web3-eth-ens@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.10.3.tgz#ae5b49bcb9823027e0b28aa6b1de58d726cbaafa" + integrity sha512-hR+odRDXGqKemw1GFniKBEXpjYwLgttTES+bc7BfTeoUyUZXbyDHe5ifC+h+vpzxh4oS0TnfcIoarK0Z9tFSiQ== dependencies: content-hash "^2.5.2" eth-ens-namehash "2.0.8" - web3-core "1.10.2" - web3-core-helpers "1.10.2" - web3-core-promievent "1.10.2" - web3-eth-abi "1.10.2" - web3-eth-contract "1.10.2" - web3-utils "1.10.2" + web3-core "1.10.3" + web3-core-helpers "1.10.3" + web3-core-promievent "1.10.3" + web3-eth-abi "1.10.3" + web3-eth-contract "1.10.3" + web3-utils "1.10.3" web3-eth-iban@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.10.0.tgz#5a46646401965b0f09a4f58e7248c8a8cd22538a" integrity sha512-0l+SP3IGhInw7Q20LY3IVafYEuufo4Dn75jAHT7c2aDJsIolvf2Lc6ugHkBajlwUneGfbRQs/ccYPQ9JeMUbrg== dependencies: bn.js "^5.2.1" web3-utils "1.10.0" -web3-eth-iban@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.2.tgz" - integrity sha512-y8+Ii2XXdyHQMFNL2NWpBnXe+TVJ4ryvPlzNhObRRnIo4O4nLIXS010olLDMayozDzoUlmzCmBZJYc9Eev1g7A== +web3-eth-iban@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.10.3.tgz#91d458e5400195edc883a0d4383bf1cecd17240d" + integrity sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA== dependencies: bn.js "^5.2.1" - web3-utils "1.10.2" + web3-utils "1.10.3" web3-eth-personal@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz#94d525f7a29050a0c2a12032df150ac5ea633071" integrity sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg== dependencies: "@types/node" "^12.12.6" @@ -10018,21 +8552,21 @@ web3-eth-personal@1.10.0: web3-net "1.10.0" web3-utils "1.10.0" -web3-eth-personal@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.2.tgz" - integrity sha512-+vEbJsPUJc5J683y0c2aN645vXC+gPVlFVCQu4IjPvXzJrAtUfz26+IZ6AUOth4fDJPT0f1uSLS5W2yrUdw9BQ== +web3-eth-personal@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.10.3.tgz#4e72008aa211327ccc3bfa7671c510e623368457" + integrity sha512-avrQ6yWdADIvuNQcFZXmGLCEzulQa76hUOuVywN7O3cklB4nFc/Gp3yTvD3bOAaE7DhjLQfhUTCzXL7WMxVTsw== dependencies: "@types/node" "^12.12.6" - web3-core "1.10.2" - web3-core-helpers "1.10.2" - web3-core-method "1.10.2" - web3-net "1.10.2" - web3-utils "1.10.2" + web3-core "1.10.3" + web3-core-helpers "1.10.3" + web3-core-method "1.10.3" + web3-net "1.10.3" + web3-utils "1.10.3" web3-eth@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.10.0.tgz#38b905e2759697c9624ab080cfcf4e6c60b3a6cf" integrity sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA== dependencies: web3-core "1.10.0" @@ -10048,73 +8582,45 @@ web3-eth@1.10.0: web3-net "1.10.0" web3-utils "1.10.0" -web3-eth@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.2.tgz" - integrity sha512-s38rhrntyhGShmXC4R/aQtfkpcmev9c7iZwgb9CDIBFo7K8nrEJvqIOyajeZTxnDIiGzTJmrHxiKSadii5qTRg== - dependencies: - web3-core "1.10.2" - web3-core-helpers "1.10.2" - web3-core-method "1.10.2" - web3-core-subscriptions "1.10.2" - web3-eth-abi "1.10.2" - web3-eth-accounts "1.10.2" - web3-eth-contract "1.10.2" - web3-eth-ens "1.10.2" - web3-eth-iban "1.10.2" - web3-eth-personal "1.10.2" - web3-net "1.10.2" - web3-utils "1.10.2" +web3-eth@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.10.3.tgz#b8c6f37f1aac52422583a5a9c29130983a3fb3b1" + integrity sha512-Uk1U2qGiif2mIG8iKu23/EQJ2ksB1BQXy3wF3RvFuyxt8Ft9OEpmGlO7wOtAyJdoKzD5vcul19bJpPcWSAYZhA== + dependencies: + web3-core "1.10.3" + web3-core-helpers "1.10.3" + web3-core-method "1.10.3" + web3-core-subscriptions "1.10.3" + web3-eth-abi "1.10.3" + web3-eth-accounts "1.10.3" + web3-eth-contract "1.10.3" + web3-eth-ens "1.10.3" + web3-eth-iban "1.10.3" + web3-eth-personal "1.10.3" + web3-net "1.10.3" + web3-utils "1.10.3" web3-net@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.10.0.tgz#be53e7f5dafd55e7c9013d49c505448b92c9c97b" integrity sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA== dependencies: web3-core "1.10.0" web3-core-method "1.10.0" web3-utils "1.10.0" -web3-net@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-net/-/web3-net-1.10.2.tgz" - integrity sha512-w9i1t2z7dItagfskhaCKwpp6W3ylUR88gs68u820y5f8yfK5EbPmHc6c2lD8X9ZrTnmDoeOpIRCN/RFPtZCp+g== - dependencies: - web3-core "1.10.2" - web3-core-method "1.10.2" - web3-utils "1.10.2" - -web3-provider-engine@16.0.3: - version "16.0.3" - resolved "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.3.tgz" - integrity sha512-Q3bKhGqLfMTdLvkd4TtkGYJHcoVQ82D1l8jTIwwuJp/sAp7VHnRYb9YJ14SW/69VMWoOhSpPLZV2tWb9V0WJoA== - dependencies: - "@ethereumjs/tx" "^3.3.0" - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.4.2" - eth-json-rpc-filters "^4.2.1" - eth-json-rpc-infura "^5.1.0" - eth-json-rpc-middleware "^6.0.0" - eth-rpc-errors "^3.0.0" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" +web3-net@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.10.3.tgz#9486c2fe51452cb958e11915db6f90bd6caa5482" + integrity sha512-IoSr33235qVoI1vtKssPUigJU9Fc/Ph0T9CgRi15sx+itysmvtlmXMNoyd6Xrgm9LuM4CIhxz7yDzH93B79IFg== + dependencies: + web3-core "1.10.3" + web3-core-method "1.10.3" + web3-utils "1.10.3" web3-providers-http@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.10.0.tgz#864fa48675e7918c9a4374e5f664b32c09d0151b" integrity sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA== dependencies: abortcontroller-polyfill "^1.7.3" @@ -10122,53 +8628,53 @@ web3-providers-http@1.10.0: es6-promise "^4.2.8" web3-core-helpers "1.10.0" -web3-providers-http@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.2.tgz" - integrity sha512-G8abKtpkyKGpRVKvfjIF3I4O/epHP7mxXWN8mNMQLkQj1cjMFiZBZ13f+qI77lNJN7QOf6+LtNdKrhsTGU72TA== +web3-providers-http@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.10.3.tgz#d8166ee89db82d37281ea9e15c5882a2d7928755" + integrity sha512-6dAgsHR3MxJ0Qyu3QLFlQEelTapVfWNTu5F45FYh8t7Y03T1/o+YAkVxsbY5AdmD+y5bXG/XPJ4q8tjL6MgZHw== dependencies: abortcontroller-polyfill "^1.7.5" cross-fetch "^4.0.0" es6-promise "^4.2.8" - web3-core-helpers "1.10.2" + web3-core-helpers "1.10.3" web3-providers-ipc@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz#9747c7a6aee96a51488e32fa7c636c3460b39889" integrity sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA== dependencies: oboe "2.1.5" web3-core-helpers "1.10.0" -web3-providers-ipc@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.2.tgz" - integrity sha512-lWbn6c+SgvhLymU8u4Ea/WOVC0Gqs7OJUvauejWz+iLycxeF0xFNyXnHVAi42ZJDPVI3vnfZotafoxcNNL7Sug== +web3-providers-ipc@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.10.3.tgz#a7e015957fc037d8a87bd4b6ae3561c1b1ad1f46" + integrity sha512-vP5WIGT8FLnGRfswTxNs9rMfS1vCbMezj/zHbBe/zB9GauBRTYVrUo2H/hVrhLg8Ut7AbsKZ+tCJ4mAwpKi2hA== dependencies: oboe "2.1.5" - web3-core-helpers "1.10.2" + web3-core-helpers "1.10.3" web3-providers-ws@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz#cb0b87b94c4df965cdf486af3a8cd26daf3975e5" integrity sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ== dependencies: eventemitter3 "4.0.4" web3-core-helpers "1.10.0" websocket "^1.0.32" -web3-providers-ws@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.2.tgz" - integrity sha512-3nYSiP6grI5GvpkSoehctSywfCTodU21VY8bUtXyFHK/IVfDooNtMpd5lVIMvXVAlaxwwrCfjebokaJtKH2Iag== +web3-providers-ws@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.10.3.tgz#03c84958f9da251349cd26fd7a4ae567e3af6caa" + integrity sha512-/filBXRl48INxsh6AuCcsy4v5ndnTZ/p6bl67kmO9aK1wffv7CT++DrtclDtVMeDGCgB3van+hEf9xTAVXur7Q== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.10.2" + web3-core-helpers "1.10.3" websocket "^1.0.32" web3-shh@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.10.0.tgz#c2979b87e0f67a7fef2ce9ee853bd7bfbe9b79a8" integrity sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg== dependencies: web3-core "1.10.0" @@ -10176,47 +8682,32 @@ web3-shh@1.10.0: web3-core-subscriptions "1.10.0" web3-net "1.10.0" -web3-shh@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.2.tgz" - integrity sha512-UP0Kc3pHv9uULFu0+LOVfPwKBSJ6B+sJ5KflF7NyBk6TvNRxlpF3hUhuaVDCjjB/dDUR6T0EQeg25FA2uzJbag== - dependencies: - web3-core "1.10.2" - web3-core-method "1.10.2" - web3-core-subscriptions "1.10.2" - web3-net "1.10.2" - -web3-utils@^1.0.0-beta.31: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.2.tgz" - integrity sha512-TdApdzdse5YR+5GCX/b/vQnhhbj1KSAtfrDtRW7YS0kcWp1gkJsN62gw6GzCaNTeXookB7UrLtmDUuMv65qgow== +web3-shh@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.10.3.tgz#ee44f760598a65a290d611c443838aac854ee858" + integrity sha512-cAZ60CPvs9azdwMSQ/PSUdyV4PEtaW5edAZhu3rCXf6XxQRliBboic+AvwUvB6j3eswY50VGa5FygfVmJ1JVng== dependencies: - "@ethereumjs/util" "^8.1.0" - bn.js "^5.2.1" - ethereum-bloom-filters "^1.0.6" - ethereum-cryptography "^2.1.2" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - utf8 "3.0.0" + web3-core "1.10.3" + web3-core-method "1.10.3" + web3-core-subscriptions "1.10.3" + web3-net "1.10.3" -web3-utils@^1.2.5, web3-utils@1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.2.tgz" - integrity sha512-TdApdzdse5YR+5GCX/b/vQnhhbj1KSAtfrDtRW7YS0kcWp1gkJsN62gw6GzCaNTeXookB7UrLtmDUuMv65qgow== +web3-utils@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.0.tgz#ca4c1b431a765c14ac7f773e92e0fd9377ccf578" + integrity sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg== dependencies: - "@ethereumjs/util" "^8.1.0" bn.js "^5.2.1" ethereum-bloom-filters "^1.0.6" - ethereum-cryptography "^2.1.2" + ethereumjs-util "^7.1.0" ethjs-unit "0.1.6" number-to-bn "1.7.0" randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@^1.3.4: +web3-utils@1.10.3, web3-utils@^1.0.0-beta.31, web3-utils@^1.2.5, web3-utils@^1.3.4, web3-utils@^1.3.6: version "1.10.3" - resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.3.tgz" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.3.tgz#f1db99c82549c7d9f8348f04ffe4e0188b449714" integrity sha512-OqcUrEE16fDBbGoQtZXWdavsPzbGIDc5v3VrRTZ0XrIpefC/viZ1ZU9bGEemazyS0catk/3rkOOxpzTfY+XsyQ== dependencies: "@ethereumjs/util" "^8.1.0" @@ -10228,36 +8719,9 @@ web3-utils@^1.3.4: randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@^1.3.6: - version "1.10.2" - resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.2.tgz" - integrity sha512-TdApdzdse5YR+5GCX/b/vQnhhbj1KSAtfrDtRW7YS0kcWp1gkJsN62gw6GzCaNTeXookB7UrLtmDUuMv65qgow== - dependencies: - "@ethereumjs/util" "^8.1.0" - bn.js "^5.2.1" - ethereum-bloom-filters "^1.0.6" - ethereum-cryptography "^2.1.2" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - utf8 "3.0.0" - -web3-utils@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz" - integrity sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg== - dependencies: - bn.js "^5.2.1" - ethereum-bloom-filters "^1.0.6" - ethereumjs-util "^7.1.0" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - utf8 "3.0.0" - -web3@^1.0.0-beta.36, web3@1.10.0: +web3@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.10.0.tgz#2fde0009f59aa756c93e07ea2a7f3ab971091274" integrity sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng== dependencies: web3-bzz "1.10.0" @@ -10269,26 +8733,26 @@ web3@^1.0.0-beta.36, web3@1.10.0: web3-utils "1.10.0" web3@^1.2.5: - version "1.10.2" - resolved "https://registry.npmjs.org/web3/-/web3-1.10.2.tgz" - integrity sha512-DAtZ3a3ruPziE80uZ3Ob0YDZxt6Vk2un/F5BcBrxO70owJ9Z1Y2+loZmbh1MoAmoLGjA/SUSHeUtid3fYmBaog== - dependencies: - web3-bzz "1.10.2" - web3-core "1.10.2" - web3-eth "1.10.2" - web3-eth-personal "1.10.2" - web3-net "1.10.2" - web3-shh "1.10.2" - web3-utils "1.10.2" + version "1.10.3" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.10.3.tgz#5e80ac532dc432b09fde668d570b0ad4e6710897" + integrity sha512-DgUdOOqC/gTqW+VQl1EdPxrVRPB66xVNtuZ5KD4adVBtko87hkgM8BTZ0lZ8IbUfnQk6DyjcDujMiH3oszllAw== + dependencies: + web3-bzz "1.10.3" + web3-core "1.10.3" + web3-eth "1.10.3" + web3-eth-personal "1.10.3" + web3-net "1.10.3" + web3-shh "1.10.3" + web3-utils "1.10.3" webidl-conversions@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== websocket@^1.0.32: version "1.0.34" - resolved "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz" + resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== dependencies: bufferutil "^4.0.1" @@ -10298,14 +8762,9 @@ websocket@^1.0.32: utf-8-validate "^5.0.2" yaeti "^0.0.6" -whatwg-fetch@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz" - integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== - whatwg-url@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" @@ -10313,7 +8772,7 @@ whatwg-url@^5.0.0: which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -10324,64 +8783,52 @@ which-boxed-primitive@^1.0.2: which-module@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" integrity sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ== -which-module@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz" - integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== - -which-typed-array@^1.1.11, which-typed-array@^1.1.2: - version "1.1.11" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz" - integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== +which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.2: + version "1.1.13" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" + integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== dependencies: available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + call-bind "^1.0.4" for-each "^0.3.3" gopd "^1.0.1" has-tostringtag "^1.0.0" -which@^1.1.1, which@^1.3.1, which@1.3.1: +which@^1.1.1, which@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" which@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -wide-align@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - window-size@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" integrity sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw== word-wrap@~1.2.3: version "1.2.5" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== wordwrap@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== wordwrapjs@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f" integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA== dependencies: reduce-flatten "^2.0.0" @@ -10389,12 +8836,12 @@ wordwrapjs@^4.0.0: workerpool@6.2.1: version "6.2.1" - resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -10403,33 +8850,15 @@ workerpool@6.2.1: wrap-ansi@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw== dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: ansi-styles "^6.1.0" @@ -10438,45 +8867,38 @@ wrap-ansi@^8.1.0: wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +ws@7.4.6: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + ws@^3.0.0: version "3.3.3" - resolved "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== dependencies: async-limiter "~1.0.0" safe-buffer "~5.1.0" ultron "~1.1.0" -ws@^5.1.1: - version "5.2.3" - resolved "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz" - integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== - dependencies: - async-limiter "~1.0.0" - ws@^7.4.6: version "7.5.9" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -ws@7.4.6: - version "7.4.6" - resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== - xhr-request-promise@^0.1.2: version "0.1.3" - resolved "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz" + resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== dependencies: xhr-request "^1.1.0" xhr-request@^1.0.1, xhr-request@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== dependencies: buffer-to-arraybuffer "^0.0.5" @@ -10487,9 +8909,9 @@ xhr-request@^1.0.1, xhr-request@^1.1.0: url-set-query "^1.0.0" xhr "^2.0.4" -xhr@^2.0.4, xhr@^2.2.0, xhr@^2.3.3: +xhr@^2.0.4, xhr@^2.3.3: version "2.6.0" - resolved "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== dependencies: global "~4.4.0" @@ -10499,62 +8921,47 @@ xhr@^2.0.4, xhr@^2.2.0, xhr@^2.3.3: xmlhttprequest@1.8.0: version "1.8.0" - resolved "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0: version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz" - integrity sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ== - dependencies: - object-keys "~0.4.0" - y18n@^3.2.1: version "3.2.2" - resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - y18n@^5.0.5: version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yaeti@^0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz" + resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@^13.1.2, yargs-parser@13.1.2: - version "13.1.2" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== yargs-parser@^2.4.1: version "2.4.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" integrity sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA== dependencies: camelcase "^3.0.0" @@ -10562,26 +8969,12 @@ yargs-parser@^2.4.1: yargs-parser@^20.2.2: version "20.2.9" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-unparser@1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz" - integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== - dependencies: - flat "^4.1.0" - lodash "^4.17.15" - yargs "^13.3.0" - yargs-unparser@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== dependencies: camelcase "^6.0.0" @@ -10589,25 +8982,22 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@^13.3.0, yargs@13.3.2: - version "13.3.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" yargs@^4.7.1: version "4.8.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" integrity sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA== dependencies: cliui "^3.2.0" @@ -10625,25 +9015,12 @@ yargs@^4.7.1: y18n "^3.2.1" yargs-parser "^2.4.1" -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yn@3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From d21999754201c0136df0d454b1479f8293950ebe Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 23 Jan 2024 10:18:41 +1000 Subject: [PATCH 072/100] Show version during forge test. Remove yarn install --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 83e97921..6954e952 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,8 +15,8 @@ jobs: uses: actions/checkout@v3 - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 - - name: Install dependencies - run: yarn install --frozen-lockfile --network-concurrency 1 + - name: Show Forge Version + run: forge --version - name: Run tests run: forge test -vvv hardhat-test: From fcc02d155ca53d71fe4ba20c2c01ab30b07e4c83 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 23 Jan 2024 11:30:47 +1000 Subject: [PATCH 073/100] Add more debug to github actions --- .github/workflows/test.yml | 6 ++++++ remappings.txt | 1 - 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6954e952..80fdd222 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,6 +19,12 @@ jobs: run: forge --version - name: Run tests run: forge test -vvv + - name: Debug Info + run: | + pwd + ls -al + ls -al lib + ls -al lib/openzeppelin-contracts-4.9.3 hardhat-test: name: Run Hardhat Tests runs-on: ubuntu-latest diff --git a/remappings.txt b/remappings.txt index 60dc34d5..a3fc476e 100644 --- a/remappings.txt +++ b/remappings.txt @@ -2,6 +2,5 @@ openzeppelin-contracts-upgradeable-4.9.3/=lib/openzeppelin-contracts-upgradeable-4.9.3/contracts/ solidity-bits/=lib/solidity-bits/ solidity-bytes-utils/=lib/solidity-bytes-utils/ -@chainlink/contracts/=lib/chainlink/contracts/ seaport/contracts/=lib/immutable-seaport-1.5.0+im1.3/contracts/ seaport-core/=lib/immutable-seaport-core-1.5.0+im1/ From 7626c5a47aba60a68e9ab49c1622104500ef74ec Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 23 Jan 2024 12:09:45 +1000 Subject: [PATCH 074/100] Add more debug to github actions --- .github/workflows/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 80fdd222..9a3a8672 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,7 +17,8 @@ jobs: uses: foundry-rs/foundry-toolchain@v1 - name: Show Forge Version run: forge --version - - name: Run tests + - name: Run tests and install dependancies + continue-on-error: true run: forge test -vvv - name: Debug Info run: | From 5049c56b11e3a784a14728b42e6edd0c4d5c9a7f Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 23 Jan 2024 12:11:24 +1000 Subject: [PATCH 075/100] Fixed yaml format error --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9a3a8672..c29d46ed 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,7 +18,7 @@ jobs: - name: Show Forge Version run: forge --version - name: Run tests and install dependancies - continue-on-error: true + continue-on-error: true run: forge test -vvv - name: Debug Info run: | From b8628b4348ca3ca5667d96a30a50dd59cdf46edc Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 23 Jan 2024 12:23:36 +1000 Subject: [PATCH 076/100] Add more debug --- .github/workflows/test.yml | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c29d46ed..a966d2b1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,14 +18,22 @@ jobs: - name: Show Forge Version run: forge --version - name: Run tests and install dependancies - continue-on-error: true run: forge test -vvv - - name: Debug Info - run: | - pwd - ls -al - ls -al lib - ls -al lib/openzeppelin-contracts-4.9.3 + - name: Debug Info1 + if: '!cancelled()' + run: pwd + - name: Debug Info2 + if: '!cancelled()' + run: ls -al + - name: Debug Info3 + if: '!cancelled()' + run: ls -al lib/openzeppelin-contracts-4.9.3 + - name: Debug Info4 + if: '!cancelled()' + run: ls -al lib/openzeppelin-contracts-4.9.3/contracts + - name: Debug Info5 + if: '!cancelled()' + run: ls -al lib/openzeppelin-contracts-4.9.3/contracts/proxy hardhat-test: name: Run Hardhat Tests runs-on: ubuntu-latest From 476ec5699b27deab1f62bac091f35f4588e1c4a5 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 23 Jan 2024 12:34:11 +1000 Subject: [PATCH 077/100] Fixed capitalisation of directory name --- .github/workflows/test.yml | 12 ------------ test/random/RandomSeedProvider.t.sol | 2 +- test/random/RandomValues.t.sol | 2 +- .../offchainsources/chainlink/ChainlinkSource.t.sol | 2 +- test/random/offchainsources/supra/SupraSource.t.sol | 2 +- 5 files changed, 4 insertions(+), 16 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a966d2b1..8d108722 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,18 +22,6 @@ jobs: - name: Debug Info1 if: '!cancelled()' run: pwd - - name: Debug Info2 - if: '!cancelled()' - run: ls -al - - name: Debug Info3 - if: '!cancelled()' - run: ls -al lib/openzeppelin-contracts-4.9.3 - - name: Debug Info4 - if: '!cancelled()' - run: ls -al lib/openzeppelin-contracts-4.9.3/contracts - - name: Debug Info5 - if: '!cancelled()' - run: ls -al lib/openzeppelin-contracts-4.9.3/contracts/proxy hardhat-test: name: Run Hardhat Tests runs-on: ubuntu-latest diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index 841dadd2..ad2d745e 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -7,7 +7,7 @@ import {MockOffchainSource} from "./MockOffchainSource.sol"; import {MockRandomSeedProviderV2} from "./MockRandomSeedProviderV2.sol"; import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; import {IOffchainRandomSource} from "contracts/random/offchainsources/IOffchainRandomSource.sol"; -import "@openzeppelin/contracts/proxy/erc1967/ERC1967Proxy.sol"; +import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; diff --git a/test/random/RandomValues.t.sol b/test/random/RandomValues.t.sol index 71cd1f94..594a2f00 100644 --- a/test/random/RandomValues.t.sol +++ b/test/random/RandomValues.t.sol @@ -6,7 +6,7 @@ import "forge-std/Test.sol"; import {MockGame} from "./MockGame.sol"; import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; import {IOffchainRandomSource} from "contracts/random/offchainsources/IOffchainRandomSource.sol"; -import "@openzeppelin/contracts/proxy/erc1967/ERC1967Proxy.sol"; +import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; diff --git a/test/random/offchainsources/chainlink/ChainlinkSource.t.sol b/test/random/offchainsources/chainlink/ChainlinkSource.t.sol index 37204a9f..6ea35204 100644 --- a/test/random/offchainsources/chainlink/ChainlinkSource.t.sol +++ b/test/random/offchainsources/chainlink/ChainlinkSource.t.sol @@ -8,7 +8,7 @@ import {MockGame} from "../../MockGame.sol"; import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; import {IOffchainRandomSource} from "contracts/random/offchainsources/IOffchainRandomSource.sol"; import {ChainlinkSourceAdaptor} from "contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol"; -import "@openzeppelin/contracts/proxy/erc1967/ERC1967Proxy.sol"; +import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; contract ChainlinkInitTests is Test { event ConfigChanges( bytes32 _keyHash, uint64 _subId, uint32 _callbackGasLimit); diff --git a/test/random/offchainsources/supra/SupraSource.t.sol b/test/random/offchainsources/supra/SupraSource.t.sol index 95bad0d1..60d5206f 100644 --- a/test/random/offchainsources/supra/SupraSource.t.sol +++ b/test/random/offchainsources/supra/SupraSource.t.sol @@ -8,7 +8,7 @@ import {MockGame} from "../../MockGame.sol"; import {RandomSeedProvider} from "contracts/random/RandomSeedProvider.sol"; import {IOffchainRandomSource} from "contracts/random/offchainsources/IOffchainRandomSource.sol"; import {SupraSourceAdaptor} from "contracts/random/offchainsources/supra/SupraSourceAdaptor.sol"; -import "@openzeppelin/contracts/proxy/erc1967/ERC1967Proxy.sol"; +import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; contract SupraInitTests is Test { error NotVrfContract(); From 2b754da7eb299e995d6df0c7a30ef697ef971ce8 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 23 Jan 2024 13:21:46 +1000 Subject: [PATCH 078/100] Separate eslint and solhint --- .github/workflows/test.yml | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8d108722..a16e7d4d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,8 +37,9 @@ jobs: run: yarn install --frozen-lockfile --network-concurrency 1 - name: Run Tests run: yarn test - lint: + eslint: name: Run eslint + continue-on-error: true runs-on: ubuntu-latest steps: - name: Checkout Code @@ -51,7 +52,22 @@ jobs: - name: Install dependencies run: yarn install --frozen-lockfile --network-concurrency 1 - name: Run eslint - run: yarn lint + run: eslint . --ext .ts,.tsx --fix + solhint: + name: Run solhint + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v3 + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: lts/* + cache: 'yarn' + - name: Install dependencies + run: yarn install --frozen-lockfile --network-concurrency 1 + - name: Run solhint + run: solhint --config ./.solhint.json contracts/**/*.sol publish: name: Publish to NPM (dry run) runs-on: ubuntu-latest From 11a9c139697263eed5d5dda4e8109521f16777b3 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 23 Jan 2024 13:35:07 +1000 Subject: [PATCH 079/100] Fix yarn scripts --- .github/workflows/test.yml | 4 ++-- package.json | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a16e7d4d..e15db42f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -52,7 +52,7 @@ jobs: - name: Install dependencies run: yarn install --frozen-lockfile --network-concurrency 1 - name: Run eslint - run: eslint . --ext .ts,.tsx --fix + run: yarn run eslint . --ext .ts,.tsx solhint: name: Run solhint runs-on: ubuntu-latest @@ -67,7 +67,7 @@ jobs: - name: Install dependencies run: yarn install --frozen-lockfile --network-concurrency 1 - name: Run solhint - run: solhint --config ./.solhint.json contracts/**/*.sol + run: yarn run solhint contracts/**/*.sol publish: name: Publish to NPM (dry run) runs-on: ubuntu-latest diff --git a/package.json b/package.json index 024e3bc4..921c15f9 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "test": "hardhat test", "prettier:solidity": "./node_modules/.bin/prettier --write contracts/**/*.sol", "lint": "eslint . --ext .ts,.tsx --fix && solhint --config ./.solhint.json contracts/**/*.sol", + "solhint": "solhint --config ./.solhint.json", "clean": "hardhat clean", "coverage": "hardhat coverage" }, From 5f5bfdc52e2d8e466b65c013a796d4dcfc7d81a9 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 23 Jan 2024 14:08:18 +1000 Subject: [PATCH 080/100] Fix so that eslint and solhint will now run in github actions --- .github/workflows/test.yml | 2 +- package.json | 4 ++- yarn.lock | 52 +++++++++++++++++++++++++++++++++++--- 3 files changed, 52 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e15db42f..9d415d7c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -52,7 +52,7 @@ jobs: - name: Install dependencies run: yarn install --frozen-lockfile --network-concurrency 1 - name: Run eslint - run: yarn run eslint . --ext .ts,.tsx + run: yarn run eslint solhint: name: Run solhint runs-on: ubuntu-latest diff --git a/package.json b/package.json index 921c15f9..68f4eb7c 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "test": "hardhat test", "prettier:solidity": "./node_modules/.bin/prettier --write contracts/**/*.sol", "lint": "eslint . --ext .ts,.tsx --fix && solhint --config ./.solhint.json contracts/**/*.sol", + "eslint": "eslint . --ext .ts,.tsx", "solhint": "solhint --config ./.solhint.json", "clean": "hardhat clean", "coverage": "hardhat coverage" @@ -48,7 +49,7 @@ "eslint-plugin-import": "^2.28.1", "eslint-plugin-n": "^16.1.0", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-prettier": "5.1.3", "eslint-plugin-promise": "^6.1.1", "ethereum-waffle": "^4.0.10", "ethers": "^5.7.2", @@ -69,6 +70,7 @@ "@openzeppelin/contracts": "^4.9.3", "@openzeppelin/contracts-upgradeable": "^4.9.3", "@rari-capital/solmate": "^6.4.0", + "eslint-plugin-mocha": "^10.2.0", "openzeppelin-contracts-upgradeable-4.9.3": "npm:@openzeppelin/contracts-upgradeable@^4.9.3", "seaport": "https://github.com/immutable/seaport.git#1.5.0+im.1.3", "solidity-bits": "^0.4.0", diff --git a/yarn.lock b/yarn.lock index 4e09852e..5eec4976 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1107,6 +1107,11 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@pkgr/core@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== + "@prettier/sync@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@prettier/sync/-/sync-0.3.0.tgz#91f2cfc23490a21586d1cf89c6f72157c000ca1e" @@ -3546,6 +3551,14 @@ eslint-plugin-import@^2.28.1: semver "^6.3.1" tsconfig-paths "^3.15.0" +eslint-plugin-mocha@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-10.2.0.tgz#15b05ce5be4b332bb0d76826ec1c5ebf67102ad6" + integrity sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ== + dependencies: + eslint-utils "^3.0.0" + rambda "^7.4.0" + eslint-plugin-n@^16.1.0: version "16.6.2" resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz#6a60a1a376870064c906742272074d5d0b412b0b" @@ -3575,12 +3588,13 @@ eslint-plugin-node@^11.1.0: resolve "^1.10.1" semver "^6.1.0" -eslint-plugin-prettier@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" - integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== +eslint-plugin-prettier@5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" + integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== dependencies: prettier-linter-helpers "^1.0.0" + synckit "^0.8.6" eslint-plugin-promise@^6.1.1: version "6.1.1" @@ -3610,11 +3624,23 @@ eslint-utils@^2.0.0: dependencies: eslint-visitor-keys "^1.1.0" +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + eslint-visitor-keys@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" @@ -6721,6 +6747,11 @@ quick-lru@^5.1.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== +rambda@^7.4.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/rambda/-/rambda-7.5.0.tgz#1865044c59bc0b16f63026c6e5a97e4b1bbe98fe" + integrity sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA== + randombytes@^2.0.1, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -7787,6 +7818,14 @@ sync-rpc@^1.2.1: dependencies: get-port "^3.1.0" +synckit@^0.8.6: + version "0.8.8" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" + integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== + dependencies: + "@pkgr/core" "^0.1.0" + tslib "^2.6.2" + table-layout@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" @@ -7947,6 +7986,11 @@ tslib@^1.8.1, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + tsort@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" From 9813597ceceb196729a22c8b8a7bd25a5179d37a Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 23 Jan 2024 14:21:56 +1000 Subject: [PATCH 081/100] Fix linter issues --- contracts/random/RandomSeedProvider.sol | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 9b9d76c3..649e74d0 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -81,11 +81,10 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab /// @dev thus incurring cost on Immutable for no benefit. mapping(address gameContract => bool approved) public approvedForOffchainRandom; - // @notice The version of the storage layout. + // @notice The version of the storage layout. // @dev This storage slot will be used during upgrades. uint256 public version; - /** * @notice Initialize the contract for use with a transparent proxy. * @param _roleAdmin is the account that can add and remove addresses that have @@ -94,7 +93,12 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab * @param _upgradeAdmin is the account that has UPGRADE_ADMIN_ROLE privilege. * @param _ranDaoAvailable indicates if the chain supports the PRERANDAO opcode. */ - function initialize(address _roleAdmin, address _randomAdmin, address _upgradeAdmin, bool _ranDaoAvailable) public virtual initializer { + function initialize( + address _roleAdmin, + address _randomAdmin, + address _upgradeAdmin, + bool _ranDaoAvailable + ) public virtual initializer { _grantRole(DEFAULT_ADMIN_ROLE, _roleAdmin); _grantRole(RANDOM_ADMIN_ROLE, _randomAdmin); _grantRole(UPGRADE_ADMIN_ROLE, _upgradeAdmin); @@ -233,14 +237,16 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab } } - /** * @notice Check that msg.sender is authorised to perform the contract upgrade. */ - function _authorizeUpgrade(address newImplementation) internal override(UUPSUpgradeable) onlyRole(UPGRADE_ADMIN_ROLE) { + // solhint-disable no-empty-blocks + function _authorizeUpgrade( + address newImplementation + ) internal override(UUPSUpgradeable) onlyRole(UPGRADE_ADMIN_ROLE) { // Nothing to do beyond upgrade authorisation check. } - + // solhint-enable no-empty-blocks /** * @notice Generate a random value using on-chain methodologies. From f33554f650a4848d2ef29663f32bf7c47cae52e1 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 23 Jan 2024 14:24:47 +1000 Subject: [PATCH 082/100] Linter errors no longer show failure on github actions --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9d415d7c..03a228fb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -52,6 +52,7 @@ jobs: - name: Install dependencies run: yarn install --frozen-lockfile --network-concurrency 1 - name: Run eslint + continue-on-error: true run: yarn run eslint solhint: name: Run solhint @@ -67,6 +68,7 @@ jobs: - name: Install dependencies run: yarn install --frozen-lockfile --network-concurrency 1 - name: Run solhint + continue-on-error: true run: yarn run solhint contracts/**/*.sol publish: name: Publish to NPM (dry run) From 5076a2d8f369cb6779ff4c06f183bfab682b09ca Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 23 Jan 2024 16:34:16 +1000 Subject: [PATCH 083/100] Improve readability --- contracts/random/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/random/README.md b/contracts/random/README.md index e9aa9809..97907ef7 100644 --- a/contracts/random/README.md +++ b/contracts/random/README.md @@ -4,10 +4,10 @@ This directory contains contracts that provide random number generation capabili The reasons for using these contracts are that: -* Enables you to leverage Immutable's cryptographers' design for random number generation. +* Enables you to leverage a random number generation system designed by Immutable's cryptographers. * Allows you to build your game against an API that won't change. * The quality of the random numbers generated will improve as new capabilities are added to the platform. That is, the migration from ```block.hash``` to ```block.prevrandao``` when the BFT fork occurs will be seemless. -* For off-chain random, allows you to leverage the random number provider that Immutable has agreements with. +* For off-chain randomness, allows you to leverage the random number provider that Immutable has agreements with. # Status From 3c80c722d8629fb28ad4897396228f28a2bd1daa Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 24 Jan 2024 10:39:13 +1000 Subject: [PATCH 084/100] Fixed documentation reflect the change from transparent upgrade proxy to uups --- contracts/random/README.md | 3 ++- contracts/random/random-architecture.png | Bin 81262 -> 80702 bytes 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/contracts/random/README.md b/contracts/random/README.md index 97907ef7..c7f96df7 100644 --- a/contracts/random/README.md +++ b/contracts/random/README.md @@ -34,7 +34,8 @@ Game contracts extend ```RandomValues.sol```. This contract interacts with the ` There is one ```RandomSeedProvider.sol``` contract deployed per chain. Each game has its own instance of ```RandomValues.sol``` as this contract is integrated directly into the game contract. -The ```RandomSeedProvider.sol``` operates behind a transparent proxy, ```TransparentUpgradeProxy.sol``` that is controlled by ```ProxyAdmin.sol```. Using an upgradeable pattern allows the random manager contract to be upgraded to extend its feature set and resolve issues. +The ```RandomSeedProvider.sol``` operates behind a transparent proxy, ```ERC1967Proxy.sol```, with the upgrade +logic included in the ```UUPSUpgradeable.sol``` contract that ```RandomSeedProvider.sol``` extends. Using an upgradeable pattern allows the random manager contract to be upgraded to extend its feature set and resolve issues. The ```RandomSeedProvider.sol``` contract can be configured to use an off-chain random number source. This source is accessed via the ```IOffchainRandomSource.sol``` interface. To allow the flexibility to switch between off-chain random sources, there is an adaptor contract between the offchain random source contract and the random seed provider. diff --git a/contracts/random/random-architecture.png b/contracts/random/random-architecture.png index ade4d401e9948c3cd5efb4c492c02e280aa445c2..33b0cca11e29026b838a6a3fc19a221e08764520 100644 GIT binary patch literal 80702 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 z zEq;wJsPC2vqG}H8=Ooq)vr5L?0m(a|05PO^t1k|b-3nNSqFvDO9 z^^sZe-JrXdtsZJy4j6qHXBxbV)gOND{j04T1n=Q&q2K5RCRD~eo8lik0ZbPgK1hOb zUt~(<>jME9aHx(t1#w@=&ekO(N3eS6&Lj5W`TgPj$DcIHkNMOkOR*L^-zTGMW;r1g zNj~d-i}T2Ud?_oTOcEkIdECHIml}YJa7?G#HC1N7`UPhay93#StBEZ@>T|t;AfnmP z=OzGl2Z7pq8}zg4iZbAWW04y=UH!cL;h-y<-6Ww$H=0-MSA_mz z58A0R3Nf^X?4xX>vUaD+?#copAdv`t#IE1TG%ns3n#EtL7JlBg@xghg60TL@1Lluy zIseCC4!p4OtevTJ)-B>A+`!TaXZVgdpl!HLf@Z#rqB?>;@byXV;iJtuVmg;F+@_@^ zoPtS~3VPkToB)HjT5oA&i#Q^y8at~3BF@UrZZ-Cj<}PP&7WQ=bEl~ffoTy-4d{KrQ zrh|Uo0(%wjKUPB9c!BhuqGps#j}K$;dm^IW93l0w^}$^n+$^+;rt(`(vjI|fJcnuW zG{L8%MW2K@;)2t&Xw5TXf#=KYzoh}3^geyee8yp2R~^z0k%fe2n|*QsDL-QpOq0N! zj93qg!9o|73V1O7-Uf_>o%He%S`xln!^(1@Vl7kQM^M#*WIFZaKTIW2i{_Q+8Sj5L zPIAGa20TVFDlNaq8u5>;dGr60HHiHYQF{1Zr7Q0BAOfkeV9-K|+4mN3M~(t%gwUub z+_5j9zg*WbnfXENIOQ`pY z#aAvIEx*O)T!fL7O`RL_*WeXoJZ~<*nZXIIAWcZk<8&gEp|Jft$Z5CwdZ%9AfzM|) z2W00*{mdHb?sWOLH0^bhQD_i;-#Y-)3rvn+k-Mpf4Uo2O=lbX*#D3F<*EFFNbGMma zU+Yhw16RTn`WC3p`%O&3sGn>PYQMCS-xoh^l>xbN* zun2E69-KH>A*z2GpPWN3AtTnmal1s@i|yX@~e=%gk+f6wxTvR=OVcbWiU{ zCaazCs|l@t9>~EnrkM{Iu8X{*cpVf7aqKb%vs_@XPSsu53iU!~U2I_nfP{G79imc9lryWwIG7fi1Ll4 z+7FppV)+C^BUMpL<(p^y>>O z;UN!e1Qpb0{$wTaMltRWl^Q^h}eIfDu*=?%r%<6(V#4x;9d%EdVWR>qv~@EimK+q8nI9 zK#aXgQyq#q61S-E(qHR{^4Sx<#`=VsI!@w!-TZJPQVtH755x@)BZ(Ze9C=X!`+O&$ zlI{uZPg%(bD!U#UA&=7UEu4-=bq4aaE-e9mFPbjfw9)nD=XT;=k&>??;P2kY8M)uC zRT+Sm0F5)Z(LP(BUo1afXS^>Sbah$fiVgG8eA)5ld4ER$>ux~JV@cUZgks=Zpbd|i zhQ0ZR1`7W_G>~<#`vAuA-Ka?fB-GQI-_5q%;omf~-Wr2M1C3SHq zg!&wfmC&pbi3zR?7`5t%#QD9Np2i`x6B@;Zen;q&`3Hg>SFGhRMj<1Kq z>Iavdbv(~L5=|64TFut3(+eGMRfdgV!YEii%ZlImtNl4bRY@eT?K);nm{@5|Um+<% zp z)pCIB6LXPUwx}prXdh};m*=Ikh)N%`!48!JkJ=v5{097B<#@6(H6{wO$**_(jjxas zynhqm+FRIazJmAVv4*>+uL6Uo?8Nraj9KYG*0(9FfUB_`&jNP}Gt1xOC6oL`^BLVd zm370#9{&kQigv*Y(U@EZyIp50=-hdB=gB1 z`RDx`geroChCXKlSX={m&oS<|F5}A&88O0WJw}XEEO~ZxDBZ>$ob-kKYgqTn zrK3Jg#5tU&oSljC;QrwAy}jRzNrbnMy50k!rd-RK@oZ^Nn^$na`*!70A;CP0V*{ks zuJJVT9I74CFSA*Nn=%hfVOJ}P6z!4uARB*PBhU@tkygQilBJy?I~z=Q5TN9;-H2IN zS8vctb%XxHGY9TTKOeCRNM|{d73%P#e*{G%8nuT%Y*9s&TM^n>aeX2C-}5Uvx|?tZ zcUswJnZ9HH#?KPp*<=w4Aeb`0m?*VSmU%SsVrif9(ZbQcB^5Gpl>#ZzIA z8Zsfb3N`%@dVPPxmQ%PsZdJ2{iX>0J6xIYZge1W8R3q8~6Rci2=)%%CH0QdyN8t0# z_gVA4U7=bBNd;~&%H>&-FUC{=>^u|TqSnHlMCrcEVc&v)mIN$IGn9zuzYeLxP84|l zev03foJ)gvCv7<}_f`zAY|Esu)hr^;1cHjr-~R@&x^l>K z403|V@=O-$6y%!yt+bW@?M<5#cuGvIXs{Y3b@~?LM*B(ZU2?m) zV(g8RuUyMA=%&(x?Vf;UrNYohsL;nbH{iWg&#a$NmP>|jowNV1Tc{RrjV!cCFMN9> zFZY3C7T&+hBSL)x&f@auD&W~l<_D_g^Nr7zc%5(l{x5w$0R9T&Z!Ee=Rcyd8v<{N) zzw!{H;6sGDV;gND*z!DbdWckDtyV}07{BztP2?nMPa`@|bFdS>?pywGI@cV`(hc%s zj9eg$Qw|6CJ(_IiNMC}m$&F@~o+B=g<$TxfB6T zDq=#UiGRUfvk4~hr9u7{Q^+1T?yOJnYu{$ToxS8@k;MJba`_yWKk2?mXwyA#oqRg- z3REn7DsH}a6JUTFkBeRudkx@TpMu@?NfN|9_`K#%I|x1Nb88!?IS#=2cHaXqW0?Bh z0|CoiI-FF=ROdtUXwiHUVh%=|u9sbzJrGjMTkgOTSBV0&c1j0+;D5Nmgy&i=M^J=1 zZ);<~qcm)GoBsFI{u7atOKsdod*oUxr3zA4a8t??I3lp!GfPwJ8vX&NeWam}KVn@v zV%VUq(i6Z52D|#b6}YGRnJYpUO!&)TF@xVZaKiGETUJERZQR2JUE=w!vbLK45lP=u z@Akey(cYSJ;f>R`m;rB}xf>K|B*aM=^zF?tpGOB{ict7lYZ*VYV zLrg+JcTLQP`OMe#MU+_1VT=V(0olL6?;?Vy?Un}nsO~ewM{8OAG?WiXm_zT45{iYdF`o6co9gX#e7#XcD@yy)0a3SL%9k`LZx70-@#5WDLcBuzNyNZ-`Fr_GM z*#23dZjMR&&VNle%y$k!`!Bqsz})ODx-2Sf0z&_-UgDx6M9qgwg@v_!v*4;N_*Yu0rTq z5=|^(%yE?_Hun_6aq&{z?nc)uso6GO-4)laKf$cMTl+oJ#bXEz&z1NClC`nR=P3=9 z(~^=GsN@#9Jb+GgKceB2;j7;4jbOQ(vaFul)%lRYaNKeCJ3m)JL1e^tWX1k5FTONo z1E+s4&pf@naIxJgbERA72%TpqmPhm5ITsv1X^T}3b;<ub#NwVPPysn%wt? z?YMia;_x!!vpaQA6ZX7X?P{hC5qEYdz?noR#w>?K+oct5FFtQ907|k^{702C)!YrB zgsSIFX;fWOe18DNm!W6EGawYO_uF29wlDp4P=1H`ywvm3M=uTQI`%A)P_asF;)Lz$ z6O=0u_rsWUe))S@jvBKBfnnn>bM$RlxX4s&K_=HfVsZ;!XcHNEuiSUY-+7JefxB@r zo2cVuTEucm88L?_+{A{E;9G<9sP0Y>G2XWyCJU`yjXB2~A+{2iv}Wgbd5Q)d2EGnr zilBIjT2ZCxy$iPz6q;UK9Txx}3rieE+)17?;ZpB!Xx0YZ7JtD{pdGt_=soJp!I7koG`o*hn^}B(D*#s<~sZF5*EbJaUq@ zM$}7skDQHq*TnoipE*%CnI!c_Z!pRn6>)(atFyMU_3h6Zn!O^*R6$?E>poWe20jRr zSFBSrPEwG4=jQ^Oqyfga5p5IMXM{BWdFWJgd{lOtS8G3MRZZG~(3$i+V$UGm{`aib z5^h2pt2n&AdTwsOov#`l-&HgYp#beY71gyz{>eSn`C6n#&1Fn`78cx`xa3q(id-lR zDCE7+<{?Gw12$sC#celI&2_n_I_hfdNEtlS?L3w%cd;GIME5T$TkEdGyEjO}lonm3 z?Q}9hZLpJ|75NG#w$7_7L|J51rOY>HL^hx!@6R9RZGd^>#4Do`m(bkz=C^{u%&APR z0p|SiKlNaOahX9>1PwE4H*+Zm+bw)vk0HVBEu2ug-D*)h=*b<0<)oIg77`XVLqjr& z+NbD|1lMV}VEa$DrYDYJqRJ0EI^DUR}&X546u2jAy9dq6Mz|@seNN z@A@2KFsAAXg_#<|Xk(tt;0k6U?6HdF@D626^$LZuXgf5E-5TF1RB<$CpwleLwmhbnn?57Uwqu?WnoG zUS0p8fohJDJTjx90QI~9{)KJR;VwG4ip=kE9AM{e!vr#1MrNvd{b}|rq;sr>3FoT1 z-IYF^qwor%8=SaU!&)WE(%n^Ib%N9cEY^RyxPJy*Nb7g|{0VWEQ&=^BzRj&#wKC88 zQft1iqU^o__xroM+XD&1jG&@@s*_p&A7wvHPlaadKNj@Yht90cO;4^#F?{&F=83Sm zT;Abd5`UMT0ZVjtoNtO0#G6@@qHu7n*8CWG!`sla!FJI9HgThR68z>uisPo2POi>v z4zAJtS`$l(6Ef~DMRs1_Lxxc+P7+%;$V)scju{X7RT7;w(uLMrtsZDBgP0Z_C`7zG zdX)A;3w&;xx(uFW(BEH}A0U2^Fnp*p4{`#+5l9+dj+)nxtWnsrg?OvUr!e1CEOnD~0< z*l+J=pN--?C}2(z!C5(?&D=Xcake^)ULadNVmyevXB!r8Z!Y+y74_mUEwSvhoYT6D zzy1ZAv-#>xIogHgQ%cdo3NDNGu;;}y#KRJQDH${5l=gfDzJ-Wz|D-Z>QNh;Iekb(@ z+*dK#DR{#8!ltOd9<%xvi&ZoKH|>RFG#zbhcYmI9mnc_q zXw{&udDFeOKKtrvL)#H3`uyAT%Ic^~nL25cQ7K(>@7a?VN%@Jv#@mt-#y|ImNr-dE zEt*9{W-5|hR{)lB!JTuBr+9lSyvrFW`{!$O=< z!3oBNb2T*v`yBF^&V}>eX%lvSoD?+r)Q75x7+;KL3I)=Fdqzy1!d&+~)yh<-zxSD~ z3eDcMnOI}!f7B+n+ys{ueBhpZMxtHnN&O>D_u8@TtYZFk zPv5fYxlx|#o*)6n{S~+^OVyYm)VJV>t(N8Fe&%SF;{fw}M8o+D3jFih&YPD98x0~T z3##9R?Ok4E%g-;g&r7&AGbphg>{T8|cdr$lQOZ&(k6kR}3%|=9SHkblA9Z=drJo#N zjYMO<|z!-uT{Fc)IzFXxp>^n ze-~0Y9;~wNUKj?8oU!iv@rS`%$cp@iz(U^aY-Ww6&EOktLL*fxk1LDiG!v({L-NH+ zW4}9%qbp??kunbJh1bAEu!sGq16-{C1DBpVKVlpoZ}|4H6??df#A!Lk%ivBqxe8}# zfgY=r!G0o+gNWR)yHs)~?yv%BmcmlM#wTKwSqlv$2C6UzB2_cNj0`qw@tFc9O5Gn7 zA#M%4Ic!-~LN1eQkxC4s4wRe46|va3>eJ}_SwH-H-J_@M8c7^})112#(^W;p^=E9n z7$+L&meo@o-4xkiCvIJxGt-Z9#ba{mshUG#BGMWSW(lHv`J-1_E-)d=fwnF_^T^D z+P~|qZ&B?%;1OIj{hlmT@Tj^V%+7Vs9_=+(Z@tz)!eftNXVrCo{QikG&!w$n!DS1F z%7PiwZLN2e(KC{c(=t=F?DRg>+&{<{N2siFL>BDWpB8&^apRn&jqpud=GPj8(F(r5CF1Ti- z+<49S;OIj5((xVpX2 z^gqCn-UMNl=_9t0@&k~T8!PdU?6~b=kJb+~ zN;MZHc9y|Dhuz!ejJTSvM7*+^L&4`LGS6$XdBDfrmdb)d?Hc--XAk2AYC51T#9*$XtFK zHH5z@*KI}&z;>QLe#G9D;N<4>*NwS69d7_n20~IMe_wM42ifIIu9EJLncsSv1Xeo( zCSY&M))~6<$o7Kux-CFAT}n1W5?Vd@$e-%G@Y9x*(qCS@Ov?|5YzT-PJ?B{pmQEK) zX&Obo1yiy$9g@cJ@4~0=z8&4ZqqTT|GZ5Mnzxu7H06AuVl4-24uhpC1u%(;WN{+t1 z)$r|7_4{fBCLWf@8Itvd-!k?ZQ0R((BISplp;)69`fMwv^F{@2Y2`84G^Do=1vHA=W4D=1m$sli9yf?~InF^a8V!>JHf< z7>W`DRMrb^UiXWpx^0gOq}kcDEjCic`Eqi?q^1*ZEW!-4RqHs0JM9--5CsR6pivv~ zn7yv|;~DoA*UKc$Q)J;mT&9T2HJD7!DvCz$Hs&8$XK zy3yx$9Ms{&Yub}a`=hxxEO$mJc{Q}GgZk^E>uw}fVy{zWVlSvY>(3X3&qhqCX2$pf z$Y<^oC?uBiVG0%f!bJUsv%w!9_UvSNch_Vr@6ChG^0z_ zVU7xcTpOJuFoSk1EXF+s9LSaKkkr(=<{pfU`!zh5f*>L@ON7Y#JGFH)6|hN)RQXlx^dI6CY$>!6-|Z9R3ox< z9~AIwX|d@j!n(tqeZPKNKbhSivc5$A^%<~}?7L`xp?vz9tnM6B=Te*^E8emr2w(ol zCP#uJW^%eex090*mw=G0HR8o`+@qWgGDTr!+*OJS_G~c$IW`-PmDOR zOE4%hkaO;2#Vf1}LELt0$~;AyK(Eb@G?OMDGb~Qw5996+BsX^Wy)%NSTV}htp@#Q1 zE`3thr{M)JZp-qn6>oIgV#(b?9vk-|@;)gm@!T^f66(Jprd0PhNm&Tza+-Y6#we$l>0x?Ddj;M(7$vn(H}p!p73;=cyY#zncQ6I87TaCc1K)m%j0&Qi%u_;Yuua z%tv~gT0X)({gM}M*h#7v{E_n2u|)8BT2PcA`X@aKqsT-{Q$Y?R%=M|u z(Vi$_WQ&D?{@an|LE`zEMHxAFij`BO=M8Nn?u4K9BA0PBrUkrwM$MBb$z&%Pa!<4K zt2;wvd%1&ZG*z$kh8&})cyCK{<(>CuWo1E^uAq&S_#flJTp@=2JfN^&8f=k%J2SMn z(Xhh`F}S(@^W3ih37N1T$%nIkr_H?q)aXtvyAMS!bJvc8xI!%=9q+%uCjU`3cHUu8NEsyaqCB$@hUx zH}T&b>~4Dfhr}Ezwo)X*FVUUbY(3(P_tyx$9O_nQvxd48EC*~a;zMrvc=>|JzGW6@ zCrL2=o|!F7kbiOY_Bhj?=^-%Tw;S{%DBdlRGyfG)>)TIm;4b%f+PsUsy$4>M(1YcShk&lIv!5j9MAxzir(P?q1lbu&-g zzr}acrnBNS^!`2`+F&S(WE{0d;C9iyB)HLVkn%GA{M8+6E{~H1xq|x%xS76rc@L8k zHGz%4O#W+wns^k#G=Ec-EVlbIi5X$Ia?Vo+e!KR7F$>*8o%8%NztJ$_K z1!u-%rf(|Jg|}o|%smf_A6jJPUEk-;b3N;1sa?;m5v*8+^+chShKNlMGa8D|kJ-~{ z2`Ibwe326L*wyH&YNqf0!uLGkW;1H07)IIsgJpu!YN|dGT#xz12YEr7eQas65^iQ)H=4;UqMBkW_Wjd$6h+C~n~WZvNgrqH?NmJOl&l!IQ#`c}c# zbCZg+t^FYoN{Fna*oT)pD_WBroDB35auc1LB_hwL@W>jTjA+NuWnOTL`_nu7r*?3z zNLRb>oQD{8bx2Mh6JjV0nNy-`c9B^{iG}K3&29*jxZ`l8qLzq`3qy-{;i`?!>!|YCv{f-_;H3eS z;)S(4_1HMlP#h{&PY}lx8ADd%h=ea?w_wrwZ2{&oAx|ZJLqgX;M|e<|W5G@@w=KbV z(~e3nH)A{sgP_gIs}XJsw573uDNs0*XkcySM)g_t#WIWI8PBVnzxNd5|2?6s9%ob) z!_vD7D8D)}vYvzMJZ|H__y0~>v`n*$m85^?LuBL)9knk%dR(xf8xB?AeSjXra(L(f zjLfYz;AZzoZj-}(K|Zkqhj-D|ee><_*U)f1d-M_(DnCs@WVMkg5~~=4RBD#UnfKQN zZBv!Vf60tD`96zP;eM;On4Y-ADk19-+~x{IJtC_vjMh9cq>IB#UDgGbtJxrJ$%g~Mck=WyhX*I{~b#C2*S{F%I;lmXpm#i@l51M3cB`rxD_=P#Sxo)nmd2B^J1G-ys4!J_o$oq3Vw;jqh|1`Ha z*@bpGBDCp)ADDYDy@SroUdtcpeHGGQ$(_tZI+8q|5_P=Mk zCU>Ja7pT1wL_L73H?Uf)ZXMQPx%ACcu?_s<-#vEhM+AMEo&qmfQk&w}LWn2mo{)H+$`{ETlntLp8A5)B`!CLU=$M}$} zft)B}JF<=2k0K0-vq-c0VTOcu8`7gL`tW{t^u~`-G9=m=5on|IB<-Z#whPSq$>Cop z^#Z#jHgg;Ycs-XG9tAs=Q3P@a&s@`qlJ4;C;|eV+a|X>~+x>vyJXY%TXv+=?8gW1I zaWM@ehz!{azB)&=|9nCU{>)0St7Gp$M?PCZ?PVM5>8X{mfSXXmm=}6`9APgV=TcJp z<&Pk`@g>RRYdWc<4)(qh_Nt+>@X)m-w72vk6}iENZBA?7V8ZFSjNZu-(2L3?!pN$a z=0^5taa%RHPP-(Zv%{u~#)Cr;&!9ZPv3Be@{+!+hUMRV`Eer|e?6(n$L-iv!b+&0{ z$mlFT8Z+deiJJCI?_F+aDH**bD(2AFhrQ0r_m;cP9G*Th7@#ugH+8?NXVIG8v+m`f zi}bW~GW}c3O6l#srK76xs)AL1C<}&zrA0@Lfbn|qCE^w@@gKU*W5Em9*7Z% z=+QOfV5lv)UWfiSs}gm8bDZrwF=A;t=c`_3<%O=XA88C+$cS7k358t>g_n_C{O;sj z<_LGDaQ6xL6Had1wlf;Up0GjF@O*BQETvvdp?iwn(q1TG%TW5oOSf)Xgtig#h+n1R zq;3nNGx==tf4c{1Z@YrmtUY%$IG|$m?yuMV^|MyJNuwg8=vy^+-w%nXL2wmg7dfQ=T z1E0JJOyHxpw@!TVfkz$u=P*Cf5SX^*anto>>Y1&GA2f93EoZU87ln^C-@>`ZgSt2) z6UnVy3gBf~A8STKxCA+QR+$Z;vCcKMp^rN`Y&E}pw~c9lyEbfZb&jvWwYWN-VBJbc zUvRO8ugIw-hs4@?_?H%nE0*vvY-Bv#ZoqPJJr5>gil?%ssWNj2{cw9V^Qm;SulR9$Q7>o2CbGZP_2-k~fA~4Tg1FA3sNAS-U ziNZ=gWWmx+-MB@Cb^ zyu*BL;ZKLN3vOAtghgWgyv_=A8m&DHx;|}?w#_`Zm3Qd+W@x9_mA?V2XRtR6_ZrLI z!;)ZfB;vCA{x;Y0|FHL$VO4%x-!QC*3QC8Fgmf-ZIs^V~(EVHz)H^ z+{^AF1~V$zCNllf)a^E<-AlU)J}0U+VU1Bg9tmq2(_bIjC%7AVFKu^9O}N6nNZcB+b4ug(j;X(9n=znq5ii0dEKw#_dr6u zzDo(dspal?chK`UE*LHzuB$$8$v$UP@UDl)H2JH(@AH`xb-BvxSbr8SAxgclTrgvB zYDw}b5WN1t7^!TrI7fT^*zp%-$C9@vV%MBXHIF1u%=H(BqxT@7Rh8c z47yP1 z{4|syhUvv|k(4h@j}0}u+quxF7b^ERfvqovy{Kg0O~~GZ9^q*c1{T|0MwqJR<#B`4 zyyA{8_d6M0q@L;uy8atD<*bt4XfLk_bKc|YxrL-VFDQLqotSBDam#1@*txSLHn;tJ z->^nE|61>GSwp=R&h(|rsAsR+ExXC4NuAi(|_u?giz7 zl%FMazSgw^}4lnTZ2cIDgA#b)Q+fJMU}nJ!X`B=PCt3bQgXfg z>!{1K8o0tXmB?pHs?c|L7K(S&rJJ4U=;f-Lv%_%h-xC8#%{Hv|o_veS|5-aPM_(5> zb~2WMRGV@hYJp_8m>t8(n;zq21icG~pO7qa;J%S0g9K#Pu-H0 zsCJ}@iRFi>cC&4FTyb7%+(S7me(^!Gd2eqbVy29Od+NaPvgkpYOxg>65ZPWtVFcN; zKh-UT;Xi(*KTK?D&CFYEYkLQjaHi_L_h~BA4@o|VxY$RfM;13*d=|d7QT-#RE;UV< z8+NIbln*~hLOOqJH`4{)Deii#a2Rb{(&8J9XgV@`?!!@TzN zs8v%Kf%8NIqQDloonNC1pGNk5RjP2BT)@!9n-g5Cn75fM%0DI&Kp!i@?? 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

`e%HWd08Y+__&L&P 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 MYI>@9%C{c Date: Wed, 24 Jan 2024 10:46:35 +1000 Subject: [PATCH 085/100] Fix typos and improve documentation --- contracts/random/RandomSeedProvider.sol | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 649e74d0..e74e7dd2 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -168,7 +168,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab /** * @notice Request the index number to track when a random number will be produced. * @dev Note that the same _randomFulfillmentIndex will be returned to multiple games and even within - * @dev the one game. Games must personalise this value to their own game, the the particular game player, + * @dev the one game. Games must personalise this value to their own game, the particular game player, * @dev and to the game player's request. * @return _randomFulfillmentIndex The index for the game contract to present to fetch the next random value. * @return _randomSource Indicates that an on-chain source was used, or is the address of an offchain source. @@ -198,11 +198,13 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab } /** - * @notice Fetches a random seed value that was requested using requestRandom. + * @notice Fetches a random seed value that was requested using the requestRandomSeed function. * @dev Note that the same _randomSeed will be returned to multiple games and even within - * @dev the one game. Games must personalise this value to their own game, the the particular game player, + * @dev the one game. Games must personalise this value to their own game, the particular game player, * @dev and to the game player's request. - * @return _randomSeed The value from with random values can be derived. + * @param _randomFulfillmentIndex Index indicating which random seed to return. + * @return _randomSource The source to use when retrieving the random seed. + * @return _randomSeed The value from which random values can be derived. */ function getRandomSeed( uint256 _randomFulfillmentIndex, @@ -223,7 +225,8 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab /** * @notice Check whether a random seed is ready. - * @param _randomFulfillmentIndex Index when random seed will be ready. + * @param _randomFulfillmentIndex Index indicating which random seed to check the status of. + * @return _randomSource The source to use when retrieving the status of the random seed. */ function isRandomSeedReady(uint256 _randomFulfillmentIndex, address _randomSource) external view returns (bool) { if (_randomSource == ONCHAIN) { From d39e5e9ba56f0655d1a66ec57330fe889897d2d8 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 24 Jan 2024 10:57:22 +1000 Subject: [PATCH 086/100] Improved documentation --- contracts/random/RandomSeedProvider.sol | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index e74e7dd2..0becc2cd 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -13,7 +13,7 @@ import {IOffchainRandomSource} from "./offchainsources/IOffchainRandomSource.sol * they will generate random values. * * The contract is upgradeable. It is expected to be operated behind an - * Open Zeppelin TransparentUpgradeProxy. + * Open Zeppelin ERC1967Proxy. */ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeable { /// @notice Indicate that the requested upgrade is not possible. @@ -22,10 +22,11 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab /// @notice The random seed value is not yet available. error WaitForRandom(); - /// @notice The offchain random source has been updated. + /// @notice The off-chain random source has been updated. event OffchainRandomSourceSet(address _offchainRandomSource); - /// @notice Indicates that new random values will be generated using the RanDAO source. + /// @notice Indicates that new random values from the on-chain source will be generated + /// @notice using the RanDAO source. event RanDaoEnabled(); /// @notice Indicates that a game contract that can consume off-chain random has been added. @@ -37,7 +38,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab // Code and storage layout version number. uint256 internal constant VERSION0 = 0; - /// @notice Admin role that can enable RanDAO and offchain random sources. + /// @notice Admin role that can enable RanDAO and off-chain random sources. bytes32 public constant RANDOM_ADMIN_ROLE = keccak256("RANDOM_ADMIN_ROLE"); /// @notice Only accounts with UPGRADE_ADMIN_ROLE can upgrade the contract. @@ -58,7 +59,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab /// @notice The block number in which the last seed value was generated. uint256 public lastBlockRandomGenerated; - /// @notice The block when the last offchain random request occurred. + /// @notice The block when the last off-chain random request occurred. /// @dev This is used to limit off-chain random requests to once per block. uint256 private lastBlockOffchainRequest; @@ -66,8 +67,8 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab /// @dev This is used to limit off-chain random requests to once per block. uint256 private prevOffchainRandomRequest; - /// @notice The source of new random numbers. This could be the special values for - /// @notice TRADITIONAL or RANDAO or the address of a Offchain Random Source contract. + /// @notice The source of new random numbers. This could be the special value ONCHAIN + /// @notice or the address of a Offchain Random Source contract. /// @dev This value is return with the request ids. This allows off-chain random sources /// @dev to be switched without stopping in-flight random values from being retrieved. address public randomSource; @@ -76,7 +77,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab /// @notice PREVRANDAO should be used rather than block.hash for on-chain random values. bool public ranDaoAvailable; - /// @notice Indicates an address is allow listed for the offchain random provider. + /// @notice Indicates an address is allow listed for the off-chain random provider. /// @dev Having an allow list prevents spammers from requesting one random number per block, /// @dev thus incurring cost on Immutable for no benefit. mapping(address gameContract => bool approved) public approvedForOffchainRandom; @@ -127,9 +128,9 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab } /** - * @notice Change the offchain random source. + * @notice Change the off-chain random source. * @dev Only RANDOM_ADMIN_ROLE can do this. - * @param _offchainRandomSource Address of contract that is an offchain random source. + * @param _offchainRandomSource Address of contract that is an off-chain random source. */ function setOffchainRandomSource(address _offchainRandomSource) external onlyRole(RANDOM_ADMIN_ROLE) { randomSource = _offchainRandomSource; @@ -171,7 +172,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab * @dev the one game. Games must personalise this value to their own game, the particular game player, * @dev and to the game player's request. * @return _randomFulfillmentIndex The index for the game contract to present to fetch the next random value. - * @return _randomSource Indicates that an on-chain source was used, or is the address of an offchain source. + * @return _randomSource Indicates that an on-chain source was used, or is the address of an off-chain source. */ function requestRandomSeed() external returns (uint256 _randomFulfillmentIndex, address _randomSource) { if (randomSource == ONCHAIN || !approvedForOffchainRandom[msg.sender]) { @@ -185,7 +186,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab _randomSource = ONCHAIN; } else { - // Limit how often offchain random numbers are requested to a maximum of once per block. + // Limit how often off-chain random numbers are requested to a maximum of once per block. if (lastBlockOffchainRequest == block.number) { _randomFulfillmentIndex = prevOffchainRandomRequest; } else { From 6fe6f297f2b4b9023cc85a3c154d7b66a8e7e75a Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 24 Jan 2024 11:03:26 +1000 Subject: [PATCH 087/100] Switch to using block.hash rather than block.number for initial random value --- contracts/random/RandomSeedProvider.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 0becc2cd..a45bb14e 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -107,7 +107,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab // Generate an initial "random" seed. // Use the chain id as an input into the random number generator to ensure // all random numbers are personalised to this chain. - randomOutput[0] = keccak256(abi.encodePacked(block.chainid, block.number)); + randomOutput[0] = keccak256(abi.encodePacked(block.chainid, block.hash)); nextRandomIndex = 1; lastBlockRandomGenerated = block.number; From cd5d9bae54a706208a4897bf07e346edb9b9952d Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 24 Jan 2024 11:13:14 +1000 Subject: [PATCH 088/100] Fix call to blockhash --- contracts/random/RandomSeedProvider.sol | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index a45bb14e..605564f3 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -74,7 +74,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab address public randomSource; /// @notice Indicates that this blockchain supports the PREVRANDAO opcode and that - /// @notice PREVRANDAO should be used rather than block.hash for on-chain random values. + /// @notice PREVRANDAO should be used rather than block hash for on-chain random values. bool public ranDaoAvailable; /// @notice Indicates an address is allow listed for the off-chain random provider. @@ -107,7 +107,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab // Generate an initial "random" seed. // Use the chain id as an input into the random number generator to ensure // all random numbers are personalised to this chain. - randomOutput[0] = keccak256(abi.encodePacked(block.chainid, block.hash)); + randomOutput[0] = keccak256(abi.encodePacked(block.chainid, blockhash(block.number - 1))); nextRandomIndex = 1; lastBlockRandomGenerated = block.number; @@ -204,7 +204,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab * @dev the one game. Games must personalise this value to their own game, the particular game player, * @dev and to the game player's request. * @param _randomFulfillmentIndex Index indicating which random seed to return. - * @return _randomSource The source to use when retrieving the random seed. + * @param _randomSource The source to use when retrieving the random seed. * @return _randomSeed The value from which random values can be derived. */ function getRandomSeed( @@ -227,7 +227,8 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab /** * @notice Check whether a random seed is ready. * @param _randomFulfillmentIndex Index indicating which random seed to check the status of. - * @return _randomSource The source to use when retrieving the status of the random seed. + * @param _randomSource The source to use when retrieving the status of the random seed. + * @return bool indicates a random see is ready to be fetched. */ function isRandomSeedReady(uint256 _randomFulfillmentIndex, address _randomSource) external view returns (bool) { if (_randomSource == ONCHAIN) { From 9dd9310028693bf3ea505feb5243b93d15a26c92 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 24 Jan 2024 11:21:36 +1000 Subject: [PATCH 089/100] Fixed tests for initial seed values --- test/random/RandomSeedProvider.t.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index ad2d745e..99902673 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -83,13 +83,13 @@ contract UninitializedRandomSeedProviderTest is Test { function testGetRandomSeedInitTraditional() public { bytes32 seed = randomSeedProvider.getRandomSeed(0, ONCHAIN); - bytes32 expectedInitialSeed = keccak256(abi.encodePacked(block.chainid, block.number - 1)); + bytes32 expectedInitialSeed = keccak256(abi.encodePacked(block.chainid, blockhash(block.number - 2))); assertEq(seed, expectedInitialSeed, "initial seed"); } function testGetRandomSeedInitRandao() public { bytes32 seed = randomSeedProviderRanDao.getRandomSeed(0, ONCHAIN); - bytes32 expectedInitialSeed = keccak256(abi.encodePacked(block.chainid, block.number - 1)); + bytes32 expectedInitialSeed = keccak256(abi.encodePacked(block.chainid, blockhash(block.number - 2))); assertEq(seed, expectedInitialSeed, "initial seed"); } From 7893007b0afe218bfd0e33c54d1e4f8ec9b9c380 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 24 Jan 2024 15:57:23 +1000 Subject: [PATCH 090/100] Fixed subscription typo --- .../random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol b/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol index cf930010..f75b7138 100644 --- a/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol +++ b/contracts/random/offchainsources/chainlink/ChainlinkSourceAdaptor.sol @@ -20,7 +20,7 @@ contract ChainlinkSourceAdaptor is VRFConsumerBaseV2, SourceAdaptorBase { /// @notice Relates to key that must sign the proof. bytes32 public keyHash; - /// @notice Subscruption id. + /// @notice Subscription id. uint64 public subId; /// @notice Gas limit when executing the callback. From ce60b7a536f56a5d4b5acdbe2be50d379cc24d26 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 24 Jan 2024 16:09:47 +1000 Subject: [PATCH 091/100] Removed extra hashing for _fetchRandomValue --- contracts/random/RandomValues.sol | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/contracts/random/RandomValues.sol b/contracts/random/RandomValues.sol index fa92e384..79e5f7f7 100644 --- a/contracts/random/RandomValues.sol +++ b/contracts/random/RandomValues.sol @@ -57,11 +57,7 @@ abstract contract RandomValues { * @return _randomValue The random number that the game can use. */ function _fetchRandom(uint256 _randomRequestId) internal returns (bytes32 _randomValue) { - // Don't return the personalised seed directly. Otherwise there is a risk that - // the seed will be revealed, which would then compromise the security of calls - // to fetchRandomValues. - bytes32 seed = _fetchPersonalisedSeed(_randomRequestId); - _randomValue = keccak256(abi.encodePacked(seed, uint256(0))); + return _fetchPersonalisedSeed(_randomRequestId); } /** From e3775c660a2a22f52774bc1899e72e3f1fb06710 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 24 Jan 2024 17:29:17 +1000 Subject: [PATCH 092/100] Switch to Australian spelling of fulfilment for all random number related code --- contracts/random/RandomSeedProvider.sol | 34 +++--- contracts/random/RandomValues.sol | 6 +- .../offchainsources/IOffchainRandomSource.sol | 8 +- .../offchainsources/SourceAdaptorBase.sol | 8 +- .../chainlink/VRFConsumerBaseV2.sol | 2 +- test/random/MockOffchainSource.sol | 8 +- test/random/README.md | 4 +- test/random/RandomSeedProvider.t.sol | 100 +++++++++--------- 8 files changed, 85 insertions(+), 85 deletions(-) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 605564f3..2d87fcce 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -168,13 +168,13 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab /** * @notice Request the index number to track when a random number will be produced. - * @dev Note that the same _randomFulfillmentIndex will be returned to multiple games and even within + * @dev Note that the same _randomFulfilmentIndex will be returned to multiple games and even within * @dev the one game. Games must personalise this value to their own game, the particular game player, * @dev and to the game player's request. - * @return _randomFulfillmentIndex The index for the game contract to present to fetch the next random value. + * @return _randomFulfilmentIndex The index for the game contract to present to fetch the next random value. * @return _randomSource Indicates that an on-chain source was used, or is the address of an off-chain source. */ - function requestRandomSeed() external returns (uint256 _randomFulfillmentIndex, address _randomSource) { + function requestRandomSeed() external returns (uint256 _randomFulfilmentIndex, address _randomSource) { if (randomSource == ONCHAIN || !approvedForOffchainRandom[msg.sender]) { // Generate a value for this block if one has not been generated yet. This // is required because there may have been calls to requestRandomSeed @@ -182,16 +182,16 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab _generateNextRandomOnChain(); // Indicate that a value based on the next block will be fine. - _randomFulfillmentIndex = nextRandomIndex; + _randomFulfilmentIndex = nextRandomIndex; _randomSource = ONCHAIN; } else { // Limit how often off-chain random numbers are requested to a maximum of once per block. if (lastBlockOffchainRequest == block.number) { - _randomFulfillmentIndex = prevOffchainRandomRequest; + _randomFulfilmentIndex = prevOffchainRandomRequest; } else { - _randomFulfillmentIndex = IOffchainRandomSource(randomSource).requestOffchainRandom(); - prevOffchainRandomRequest = _randomFulfillmentIndex; + _randomFulfilmentIndex = IOffchainRandomSource(randomSource).requestOffchainRandom(); + prevOffchainRandomRequest = _randomFulfilmentIndex; lastBlockOffchainRequest = block.number; } _randomSource = randomSource; @@ -203,42 +203,42 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab * @dev Note that the same _randomSeed will be returned to multiple games and even within * @dev the one game. Games must personalise this value to their own game, the particular game player, * @dev and to the game player's request. - * @param _randomFulfillmentIndex Index indicating which random seed to return. + * @param _randomFulfilmentIndex Index indicating which random seed to return. * @param _randomSource The source to use when retrieving the random seed. * @return _randomSeed The value from which random values can be derived. */ function getRandomSeed( - uint256 _randomFulfillmentIndex, + uint256 _randomFulfilmentIndex, address _randomSource ) external returns (bytes32 _randomSeed) { if (_randomSource == ONCHAIN) { _generateNextRandomOnChain(); - if (_randomFulfillmentIndex >= nextRandomIndex) { + if (_randomFulfilmentIndex >= nextRandomIndex) { revert WaitForRandom(); } - return randomOutput[_randomFulfillmentIndex]; + return randomOutput[_randomFulfilmentIndex]; } else { // If random source is not the address of a valid contract this will revert // with no revert information returned. - return IOffchainRandomSource(_randomSource).getOffchainRandom(_randomFulfillmentIndex); + return IOffchainRandomSource(_randomSource).getOffchainRandom(_randomFulfilmentIndex); } } /** * @notice Check whether a random seed is ready. - * @param _randomFulfillmentIndex Index indicating which random seed to check the status of. + * @param _randomFulfilmentIndex Index indicating which random seed to check the status of. * @param _randomSource The source to use when retrieving the status of the random seed. * @return bool indicates a random see is ready to be fetched. */ - function isRandomSeedReady(uint256 _randomFulfillmentIndex, address _randomSource) external view returns (bool) { + function isRandomSeedReady(uint256 _randomFulfilmentIndex, address _randomSource) external view returns (bool) { if (_randomSource == ONCHAIN) { if (lastBlockRandomGenerated == block.number) { - return _randomFulfillmentIndex < nextRandomIndex; + return _randomFulfilmentIndex < nextRandomIndex; } else { - return _randomFulfillmentIndex < nextRandomIndex + 1; + return _randomFulfilmentIndex < nextRandomIndex + 1; } } else { - return IOffchainRandomSource(_randomSource).isOffchainRandomReady(_randomFulfillmentIndex); + return IOffchainRandomSource(_randomSource).isOffchainRandomReady(_randomFulfilmentIndex); } } diff --git a/contracts/random/RandomValues.sol b/contracts/random/RandomValues.sol index 79e5f7f7..1d3772c8 100644 --- a/contracts/random/RandomValues.sol +++ b/contracts/random/RandomValues.sol @@ -40,11 +40,11 @@ abstract contract RandomValues { * value with fetchRandom. */ function _requestRandomValueCreation() internal returns (uint256 _randomRequestId) { - uint256 randomFulfillmentIndex; + uint256 randomFulfilmentIndex; address randomSource; - (randomFulfillmentIndex, randomSource) = randomSeedProvider.requestRandomSeed(); + (randomFulfilmentIndex, randomSource) = randomSeedProvider.requestRandomSeed(); _randomRequestId = nextNonce++; - randCreationRequests[_randomRequestId] = randomFulfillmentIndex; + randCreationRequests[_randomRequestId] = randomFulfilmentIndex; randCreationRequestsSource[_randomRequestId] = randomSource; } diff --git a/contracts/random/offchainsources/IOffchainRandomSource.sol b/contracts/random/offchainsources/IOffchainRandomSource.sol index 566ba9a0..f6750bbb 100644 --- a/contracts/random/offchainsources/IOffchainRandomSource.sol +++ b/contracts/random/offchainsources/IOffchainRandomSource.sol @@ -17,15 +17,15 @@ interface IOffchainRandomSource { /** * @notice Fetch the latest off-chain generated random value. - * @param _fulfillmentIndex Number previously given when requesting a ramdon value. + * @param _fulfilmentIndex Number previously given when requesting a ramdon value. * @return _randomValue The value generated off-chain. */ - function getOffchainRandom(uint256 _fulfillmentIndex) external view returns (bytes32 _randomValue); + function getOffchainRandom(uint256 _fulfilmentIndex) external view returns (bytes32 _randomValue); /** * @notice Check to see if the random value is available yet. - * @param _fulfillmentIndex Number previously given when requesting a ramdon value. + * @param _fulfilmentIndex Number previously given when requesting a ramdon value. * @return true if the value is available. */ - function isOffchainRandomReady(uint256 _fulfillmentIndex) external view returns (bool); + function isOffchainRandomReady(uint256 _fulfilmentIndex) external view returns (bool); } diff --git a/contracts/random/offchainsources/SourceAdaptorBase.sol b/contracts/random/offchainsources/SourceAdaptorBase.sol index d6b697fd..e4c007cd 100644 --- a/contracts/random/offchainsources/SourceAdaptorBase.sol +++ b/contracts/random/offchainsources/SourceAdaptorBase.sol @@ -54,8 +54,8 @@ abstract contract SourceAdaptorBase is AccessControlEnumerable, IOffchainRandomS /** * @inheritdoc IOffchainRandomSource */ - function getOffchainRandom(uint256 _fulfillmentIndex) external override(IOffchainRandomSource) view returns (bytes32 _randomValue) { - bytes32 rand = randomOutput[_fulfillmentIndex]; + function getOffchainRandom(uint256 _fulfilmentIndex) external override(IOffchainRandomSource) view returns (bytes32 _randomValue) { + bytes32 rand = randomOutput[_fulfilmentIndex]; if (rand == bytes32(0)) { revert WaitForRandom(); } @@ -65,7 +65,7 @@ abstract contract SourceAdaptorBase is AccessControlEnumerable, IOffchainRandomS /** * @inheritdoc IOffchainRandomSource */ - function isOffchainRandomReady(uint256 _fulfillmentIndex) external override(IOffchainRandomSource) view returns (bool) { - return randomOutput[_fulfillmentIndex] != bytes32(0); + function isOffchainRandomReady(uint256 _fulfilmentIndex) external override(IOffchainRandomSource) view returns (bool) { + return randomOutput[_fulfilmentIndex] != bytes32(0); } } diff --git a/contracts/random/offchainsources/chainlink/VRFConsumerBaseV2.sol b/contracts/random/offchainsources/chainlink/VRFConsumerBaseV2.sol index 5cece6a0..68ec51cd 100644 --- a/contracts/random/offchainsources/chainlink/VRFConsumerBaseV2.sol +++ b/contracts/random/offchainsources/chainlink/VRFConsumerBaseV2.sol @@ -27,7 +27,7 @@ pragma solidity 0.8.19; * @dev The purpose of this contract is to make it easy for unrelated contracts * @dev to talk to Vera the verifier about the work Reggie is doing, to provide * @dev simple access to a verifiable source of randomness. It ensures 2 things: - * @dev 1. The fulfillment came from the VRFCoordinator + * @dev 1. The fulfilment came from the VRFCoordinator * @dev 2. The consumer contract implements fulfillRandomWords. * ***************************************************************************** * @dev USAGE diff --git a/test/random/MockOffchainSource.sol b/test/random/MockOffchainSource.sol index 117b8739..0c799d4b 100644 --- a/test/random/MockOffchainSource.sol +++ b/test/random/MockOffchainSource.sol @@ -13,18 +13,18 @@ contract MockOffchainSource is IOffchainRandomSource { isReady = _ready; } - function requestOffchainRandom() external override(IOffchainRandomSource) returns(uint256 _fulfillmentIndex) { + function requestOffchainRandom() external override(IOffchainRandomSource) returns(uint256 _fulfilmentIndex) { return nextIndex++; } - function getOffchainRandom(uint256 _fulfillmentIndex) external view override(IOffchainRandomSource) returns(bytes32 _randomValue) { + function getOffchainRandom(uint256 _fulfilmentIndex) external view override(IOffchainRandomSource) returns(bytes32 _randomValue) { if (!isReady) { revert WaitForRandom(); } - return keccak256(abi.encodePacked(_fulfillmentIndex)); + return keccak256(abi.encodePacked(_fulfilmentIndex)); } - function isOffchainRandomReady(uint256 /* _fulfillmentIndex */) external view returns(bool) { + function isOffchainRandomReady(uint256 /* _fulfilmentIndex */) external view returns(bool) { return isReady; } diff --git a/test/random/README.md b/test/random/README.md index 340e7d56..cfa57254 100644 --- a/test/random/README.md +++ b/test/random/README.md @@ -46,8 +46,8 @@ Operational functions tests: | testTradTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | Yes | | testRanDaoTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | Yes | | testOffchainTwoInOneBlock | Two calls to requestRandomSeed in one block | Yes | Yes | -| testTradDelayedFulfillment | Request then wait several blocks before fulfillment | Yes | Yes | -| testRanDaoDelayedFulfillment | Request then wait several blocks before fulfillment | Yes | Yes | +| testTradDelayedFulfilment | Request then wait several blocks before fulfilment | Yes | Yes | +| testRanDaoDelayedFulfilment | Request then wait several blocks before fulfilment | Yes | Yes | Scenario: Generate some random numbers, switch random generation methodology, generate some more numbers, check that the numbers generated earlier are still available: diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index 99902673..4b16749d 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -258,37 +258,37 @@ contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTes MockOffchainSource public offchainSource = new MockOffchainSource(); function testTradNextBlock() public { - (uint256 fulfillmentIndex, address source) = randomSeedProvider.requestRandomSeed(); + (uint256 fulfilmentIndex, address source) = randomSeedProvider.requestRandomSeed(); assertEq(source, ONCHAIN, "source"); - assertEq(fulfillmentIndex, 2, "index"); + assertEq(fulfilmentIndex, 2, "index"); - bool available = randomSeedProvider.isRandomSeedReady(fulfillmentIndex, source); + bool available = randomSeedProvider.isRandomSeedReady(fulfilmentIndex, source); assertFalse(available, "Should not be ready yet"); vm.roll(block.number + 1); - available = randomSeedProvider.isRandomSeedReady(fulfillmentIndex, source); + available = randomSeedProvider.isRandomSeedReady(fulfilmentIndex, source); assertTrue(available, "Should be ready"); - bytes32 seed = randomSeedProvider.getRandomSeed(fulfillmentIndex, source); + bytes32 seed = randomSeedProvider.getRandomSeed(fulfilmentIndex, source); assertNotEq(seed, bytes32(0), "Should not be zero"); } function testRanDaoNextBlock() public { - (uint256 fulfillmentIndex, address source) = randomSeedProviderRanDao.requestRandomSeed(); + (uint256 fulfilmentIndex, address source) = randomSeedProviderRanDao.requestRandomSeed(); assertEq(source, ONCHAIN, "source"); - assertEq(fulfillmentIndex, 2, "index"); + assertEq(fulfilmentIndex, 2, "index"); assertTrue(randomSeedProviderRanDao.ranDaoAvailable()); - bool available = randomSeedProviderRanDao.isRandomSeedReady(fulfillmentIndex, source); + bool available = randomSeedProviderRanDao.isRandomSeedReady(fulfilmentIndex, source); assertFalse(available, "Should not be ready yet"); vm.roll(block.number + 1); - available = randomSeedProviderRanDao.isRandomSeedReady(fulfillmentIndex, source); + available = randomSeedProviderRanDao.isRandomSeedReady(fulfilmentIndex, source); assertTrue(available, "Should be ready"); - bytes32 seed = randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex, source); + bytes32 seed = randomSeedProviderRanDao.getRandomSeed(fulfilmentIndex, source); assertNotEq(seed, bytes32(0), "Should not be zero"); } @@ -302,19 +302,19 @@ contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTes randomSeedProvider.addOffchainRandomConsumer(aConsumer); vm.prank(aConsumer); - (uint256 fulfillmentIndex, address source) = randomSeedProvider.requestRandomSeed(); + (uint256 fulfilmentIndex, address source) = randomSeedProvider.requestRandomSeed(); assertEq(source, address(offchainSource), "source"); - assertEq(fulfillmentIndex, 1000, "index"); + assertEq(fulfilmentIndex, 1000, "index"); - bool available = randomSeedProvider.isRandomSeedReady(fulfillmentIndex, source); + bool available = randomSeedProvider.isRandomSeedReady(fulfilmentIndex, source); assertFalse(available, "Should not be ready yet"); offchainSource.setIsReady(true); - available = randomSeedProvider.isRandomSeedReady(fulfillmentIndex, source); + available = randomSeedProvider.isRandomSeedReady(fulfilmentIndex, source); assertTrue(available, "Should be ready"); - bytes32 seed = randomSeedProvider.getRandomSeed(fulfillmentIndex, source); + bytes32 seed = randomSeedProvider.getRandomSeed(fulfilmentIndex, source); assertNotEq(seed, bytes32(0), "Should not be zero"); } @@ -327,10 +327,10 @@ contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTes randomSeedProvider.addOffchainRandomConsumer(aConsumer); vm.prank(aConsumer); - (uint256 fulfillmentIndex, address source) = randomSeedProvider.requestRandomSeed(); + (uint256 fulfilmentIndex, address source) = randomSeedProvider.requestRandomSeed(); vm.expectRevert(abi.encodeWithSelector(WaitForRandom.selector)); - randomSeedProvider.getRandomSeed(fulfillmentIndex, source); + randomSeedProvider.getRandomSeed(fulfilmentIndex, source); } @@ -359,13 +359,13 @@ contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTes randomSeedProvider.addOffchainRandomConsumer(aConsumer); vm.prank(aConsumer); - (uint256 fulfillmentIndex1, ) = randomSeedProvider.requestRandomSeed(); + (uint256 fulfilmentIndex1, ) = randomSeedProvider.requestRandomSeed(); vm.prank(aConsumer); - (uint256 fulfillmentIndex2, ) = randomSeedProvider.requestRandomSeed(); - assertEq(fulfillmentIndex1, fulfillmentIndex2, "Request id 1 and request id 3"); + (uint256 fulfilmentIndex2, ) = randomSeedProvider.requestRandomSeed(); + assertEq(fulfilmentIndex1, fulfilmentIndex2, "Request id 1 and request id 3"); } - function testTradDelayedFulfillment() public { + function testTradDelayedFulfilment() public { (uint256 randomRequestId1, address source1) = randomSeedProvider.requestRandomSeed(); vm.roll(block.number + 1); @@ -392,7 +392,7 @@ contract OperationalRandomSeedProviderTest is UninitializedRandomSeedProviderTes assertEq(rand1a, rand1c, "rand1a, rand1c: Random Values not equal"); } - function testRanDaoDelayedFulfillment() public { + function testRanDaoDelayedFulfilment() public { (uint256 randomRequestId1, address source1) = randomSeedProviderRanDao.requestRandomSeed(); vm.roll(block.number + 1); @@ -429,24 +429,24 @@ contract SwitchingRandomSeedProviderTest is UninitializedRandomSeedProviderTest vm.prank(randomAdmin); randomSeedProvider.addOffchainRandomConsumer(aConsumer); - (uint256 fulfillmentIndex1, address source1) = randomSeedProvider.requestRandomSeed(); + (uint256 fulfilmentIndex1, address source1) = randomSeedProvider.requestRandomSeed(); assertEq(source1, ONCHAIN, "source"); - assertEq(fulfillmentIndex1, 2, "index"); + assertEq(fulfilmentIndex1, 2, "index"); vm.roll(block.number + 1); - bytes32 seed1 = randomSeedProvider.getRandomSeed(fulfillmentIndex1, source1); + bytes32 seed1 = randomSeedProvider.getRandomSeed(fulfilmentIndex1, source1); vm.prank(randomAdmin); randomSeedProvider.setOffchainRandomSource(address(offchainSource)); vm.prank(aConsumer); - (uint256 fulfillmentIndex2, address source2) = randomSeedProvider.requestRandomSeed(); + (uint256 fulfilmentIndex2, address source2) = randomSeedProvider.requestRandomSeed(); assertEq(source2, address(offchainSource), "offchain source"); - assertEq(fulfillmentIndex2, 1000, "index"); + assertEq(fulfilmentIndex2, 1000, "index"); offchainSource.setIsReady(true); - bytes32 seed2 = randomSeedProvider.getRandomSeed(fulfillmentIndex2, source2); + bytes32 seed2 = randomSeedProvider.getRandomSeed(fulfilmentIndex2, source2); - bytes32 seed1a = randomSeedProvider.getRandomSeed(fulfillmentIndex1, source1); + bytes32 seed1a = randomSeedProvider.getRandomSeed(fulfilmentIndex1, source1); assertEq(seed1, seed1a, "Seed still available"); assertNotEq(seed1, seed2, "Must be different"); @@ -457,24 +457,24 @@ contract SwitchingRandomSeedProviderTest is UninitializedRandomSeedProviderTest vm.prank(randomAdmin); randomSeedProviderRanDao.addOffchainRandomConsumer(aConsumer); - (uint256 fulfillmentIndex1, address source1) = randomSeedProviderRanDao.requestRandomSeed(); + (uint256 fulfilmentIndex1, address source1) = randomSeedProviderRanDao.requestRandomSeed(); assertEq(source1, ONCHAIN, "source"); - assertEq(fulfillmentIndex1, 2, "index"); + assertEq(fulfilmentIndex1, 2, "index"); vm.roll(block.number + 1); - bytes32 seed1 = randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex1, source1); + bytes32 seed1 = randomSeedProviderRanDao.getRandomSeed(fulfilmentIndex1, source1); vm.prank(randomAdmin); randomSeedProviderRanDao.setOffchainRandomSource(address(offchainSource)); vm.prank(aConsumer); - (uint256 fulfillmentIndex2, address source2) = randomSeedProviderRanDao.requestRandomSeed(); + (uint256 fulfilmentIndex2, address source2) = randomSeedProviderRanDao.requestRandomSeed(); assertEq(source2, address(offchainSource), "offchain source"); - assertEq(fulfillmentIndex2, 1000, "index"); + assertEq(fulfilmentIndex2, 1000, "index"); offchainSource.setIsReady(true); - bytes32 seed2 = randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex2, source2); + bytes32 seed2 = randomSeedProviderRanDao.getRandomSeed(fulfilmentIndex2, source2); - bytes32 seed1a = randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex1, source1); + bytes32 seed1a = randomSeedProviderRanDao.getRandomSeed(fulfilmentIndex1, source1); assertEq(seed1, seed1a, "Seed still available"); assertNotEq(seed1, seed2, "Must be different"); @@ -489,26 +489,26 @@ contract SwitchingRandomSeedProviderTest is UninitializedRandomSeedProviderTest randomSeedProviderRanDao.setOffchainRandomSource(address(offchainSource)); vm.prank(aConsumer); - (uint256 fulfillmentIndex1, address source1) = randomSeedProviderRanDao.requestRandomSeed(); + (uint256 fulfilmentIndex1, address source1) = randomSeedProviderRanDao.requestRandomSeed(); assertEq(source1, address(offchainSource), "offchain source"); - assertEq(fulfillmentIndex1, 1000, "index"); - bool available = randomSeedProviderRanDao.isRandomSeedReady(fulfillmentIndex1, source1); + assertEq(fulfilmentIndex1, 1000, "index"); + bool available = randomSeedProviderRanDao.isRandomSeedReady(fulfilmentIndex1, source1); assertFalse(available, "Should not be ready1"); vm.prank(randomAdmin); randomSeedProviderRanDao.setOffchainRandomSource(address(offchainSource2)); vm.prank(aConsumer); - (uint256 fulfillmentIndex2, address source2) = randomSeedProviderRanDao.requestRandomSeed(); + (uint256 fulfilmentIndex2, address source2) = randomSeedProviderRanDao.requestRandomSeed(); assertEq(source2, address(offchainSource2), "offchain source 2"); - assertEq(fulfillmentIndex2, 1000, "index"); + assertEq(fulfilmentIndex2, 1000, "index"); offchainSource.setIsReady(true); - available = randomSeedProviderRanDao.isRandomSeedReady(fulfillmentIndex1, source1); + available = randomSeedProviderRanDao.isRandomSeedReady(fulfilmentIndex1, source1); assertTrue(available, "Should be ready"); - randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex1, source1); + randomSeedProviderRanDao.getRandomSeed(fulfilmentIndex1, source1); offchainSource2.setIsReady(true); - randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex2, source2); + randomSeedProviderRanDao.getRandomSeed(fulfilmentIndex2, source2); } @@ -521,23 +521,23 @@ contract SwitchingRandomSeedProviderTest is UninitializedRandomSeedProviderTest randomSeedProviderRanDao.setOffchainRandomSource(address(offchainSource)); vm.prank(aConsumer); - (uint256 fulfillmentIndex1, address source1) = randomSeedProviderRanDao.requestRandomSeed(); + (uint256 fulfilmentIndex1, address source1) = randomSeedProviderRanDao.requestRandomSeed(); assertEq(source1, address(offchainSource), "offchain source"); - assertEq(fulfillmentIndex1, 1000, "index"); + assertEq(fulfilmentIndex1, 1000, "index"); vm.prank(randomAdmin); randomSeedProviderRanDao.setOffchainRandomSource(ONCHAIN); vm.prank(aConsumer); - (uint256 fulfillmentIndex2, address source2) = randomSeedProviderRanDao.requestRandomSeed(); + (uint256 fulfilmentIndex2, address source2) = randomSeedProviderRanDao.requestRandomSeed(); assertEq(source2, ONCHAIN, "on chain"); - assertEq(fulfillmentIndex2, 2, "index"); + assertEq(fulfilmentIndex2, 2, "index"); offchainSource.setIsReady(true); - randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex1, source1); + randomSeedProviderRanDao.getRandomSeed(fulfilmentIndex1, source1); vm.roll(block.number + 1); - randomSeedProviderRanDao.getRandomSeed(fulfillmentIndex2, source2); + randomSeedProviderRanDao.getRandomSeed(fulfilmentIndex2, source2); } } From 7a252e91019b46a4d5a008bd2fd4363cbc72a701 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 25 Jan 2024 15:15:48 +1000 Subject: [PATCH 093/100] Fix slither issue: make VRF coordinator an immutable variable --- contracts/random/offchainsources/SourceAdaptorBase.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/random/offchainsources/SourceAdaptorBase.sol b/contracts/random/offchainsources/SourceAdaptorBase.sol index e4c007cd..a8382a21 100644 --- a/contracts/random/offchainsources/SourceAdaptorBase.sol +++ b/contracts/random/offchainsources/SourceAdaptorBase.sol @@ -24,7 +24,7 @@ abstract contract SourceAdaptorBase is AccessControlEnumerable, IOffchainRandomS mapping(uint256 _fulfilmentId => bytes32 randomValue) private randomOutput; // VRF contract. - address public vrfCoordinator; + address public immutable vrfCoordinator; constructor(address _roleAdmin, address _configAdmin, address _vrfCoordinator) { _grantRole(DEFAULT_ADMIN_ROLE, _roleAdmin); From 956c7ac93fac720dead158eef1b7ffb12dc81dac Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 25 Jan 2024 15:54:43 +1000 Subject: [PATCH 094/100] Set the initial version to the constant defining VERSION 0. This also removes a slither issue related to using unitilised state variables. --- contracts/random/RandomSeedProvider.sol | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 2d87fcce..b3bc0817 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -113,6 +113,8 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab randomSource = ONCHAIN; ranDaoAvailable = _ranDaoAvailable; + + version = VERSION0; } /** From b26db2fc19f1dbef416d8cbb0b83505e42da766e Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 25 Jan 2024 16:37:17 +1000 Subject: [PATCH 095/100] Resolve slither issues --- contracts/random/RandomSeedProvider.sol | 1 + contracts/random/RandomValues.sol | 3 +++ 2 files changed, 4 insertions(+) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index b3bc0817..4ed1700d 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -176,6 +176,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab * @return _randomFulfilmentIndex The index for the game contract to present to fetch the next random value. * @return _randomSource Indicates that an on-chain source was used, or is the address of an off-chain source. */ + // slither-disable-next-line reentrancy-benign function requestRandomSeed() external returns (uint256 _randomFulfilmentIndex, address _randomSource) { if (randomSource == ONCHAIN || !approvedForOffchainRandom[msg.sender]) { // Generate a value for this block if one has not been generated yet. This diff --git a/contracts/random/RandomValues.sol b/contracts/random/RandomValues.sol index 1d3772c8..2eb6eb58 100644 --- a/contracts/random/RandomValues.sol +++ b/contracts/random/RandomValues.sol @@ -8,6 +8,7 @@ import {RandomSeedProvider} from "./RandomSeedProvider.sol"; * @notice Game contracts that need random numbers should extend this contract. * @dev This contract can be used with UPGRADEABLE or NON-UNGRADEABLE contracts. */ +// slither-disable-start dead-code abstract contract RandomValues { // Address of random seed provider contract. // This value "immutable", and hence patched directly into bytecode when it is used. @@ -39,6 +40,7 @@ abstract contract RandomValues { * @return _randomRequestId A value that needs to be presented when fetching the random * value with fetchRandom. */ + // slither-disable-next-line reentrancy-benign function _requestRandomValueCreation() internal returns (uint256 _randomRequestId) { uint256 randomFulfilmentIndex; address randomSource; @@ -121,3 +123,4 @@ abstract contract RandomValues { // slither-disable-next-line unused-state,naming-convention uint256[100] private __gapRandomValues; } +// slither-disable-end dead-code From 7c55aa0f8c20a08c049d79b97ada850da1c88f49 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 31 Jan 2024 11:04:22 +1000 Subject: [PATCH 096/100] Change RandomValues API to specify number of random numbers to be return when requesting plus only allow fetching once --- contracts/random/README.md | 8 +- contracts/random/RandomSeedProvider.sol | 2 +- contracts/random/RandomValues.sol | 133 ++++++++++-------- contracts/random/random-sequence.png | Bin 400868 -> 525397 bytes test/random/MockGame.sol | 14 +- test/random/README.md | 5 +- test/random/RandomSeedProvider.t.sol | 2 +- test/random/RandomValues.t.sol | 120 +++++----------- .../chainlink/ChainlinkSource.t.sol | 25 +++- .../offchainsources/supra/SupraSource.t.sol | 13 +- 10 files changed, 152 insertions(+), 170 deletions(-) diff --git a/contracts/random/README.md b/contracts/random/README.md index c7f96df7..abdd8215 100644 --- a/contracts/random/README.md +++ b/contracts/random/README.md @@ -45,7 +45,7 @@ The architecture diagram shows a ChainLink VRF source and a Supra VRF source. Th ## Process of Requesting a Random Number -The process for requesting a random number is shown below. Players do actions requiring a random number. They purchase, or commit to the random value, which is later revealed. +The process for requesting a random number is shown below. Players do actions requiring a random number or a set of random numbers. They purchase, or commit to the random value(s), which is later revealed. ![Random number genration](./random-sequence.png) @@ -53,10 +53,10 @@ The steps are: * The game contract calls ```_requestRandomValueCreation```. The ```_requestRandomValueCreation``` returns a value ```_randomRequestId```. This value is supplied later to fetch the random value once it has been generated. The function ```_requestRandomValueCreation``` executes a call to the ```RandomSeedProvider``` contract requesting a seed value be produced. -* The game contract calls ```_isRandomValueReady```, passing in the ```_randomRequestId```. The returns ```true``` if the value is ready to be returned. -* The game contract calls ```_fetchRandom```, passing in the ```_randomRequestId```. The random seed is returned to the RandomValue.sol, which then customises the value prior returning it to the game. +* The game contract calls ```_isRandomValueReady```, passing in the ```_randomRequestId```. This returns ```READY``` if the value is ready to be returned. +* The game contract calls ```_fetchRandomValues```, passing in the ```_randomRequestId```. The random seed is returned to the ```RandomValues``` contract, which then customises the value prior returning it to the game. # Notes -Sequence diagram source [here](https://sequencediagram.org/index.html#initialData=title%20Random%20Number%20Generation%0A%0Aparticipant%20%22Game.sol%22%20as%20Game%0Aparticipant%20%22RandomValue.sol%22%20as%20RV%0Aparticipant%20%22RandomSeedProvider.sol%22%20as%20RM%0A%0Agroup%20Player%20purchases%20a%20random%20action%0AGame-%3ERV%3A%20_requestRandomValueCreation()%0ARV-%3ERM%3A%20requestRandomSeed()%0ARV%3C--RM%3A%20_seedRequestId%2C%20_source%0AGame%3C--RV%3A%20_randomRequestId%0Aend%0A%0Anote%20over%20Game%2CRM%3AWait%20for%20a%20block%20to%20be%20produced%20or%20an%20off-chain%20random%20to%20be%20delivered.%0A%0Agroup%20Check%20random%20value%20is%20ready%0AGame-%3ERV%3A%20isRandomValueReady(_randomRequestId)%0ARV-%3ERM%3A%20isRandomSeedReady(%5Cn_seedRequestId%2C%20_source)%0ARV%3C--RM%3A%20true%0AGame%3C--RV%3A%20true%0Aend%0A%0Agroup%20Game%20delivers%20%2F%20reveals%20random%20action%0AGame-%3ERV%3A%20fetchRandom(_randomRequestId)%0ARV-%3ERM%3A%20getRandomSeed(%5Cn_seedRequestId%2C%20_source)%0ARV%3C--RM%3A%20_randomSeed%0ARV-%3ERV%3A%20Personalise%20random%20number%20%5Cnby%20game%2C%20player%2C%20and%20request%5Cnnumber.%0AGame%3C--RV%3A%20_randomValue%0Aend%0A%0A%0A%0A%0A%0A). \ No newline at end of file +Sequence diagram source [here](https://sequencediagram.org/index.html#initialData=C4S2BsFMAICUEMB2ATA9gW2gOQK7oEaQBO0A4pIsfKKogFB0AO8RoAxiM4sAOZGo5G0AMTgQPABa8ikCtABU80vHSRFTFu05Jg0AETLV0ADKoeINgDoAzqnB7o8a2RWQNrC9u76EKDADV4cBxIaxs7Byc4fzoKZHctLmkBIVFxKXxgmEUASXR0HGB4TJgALwBrAFF-AFkAHUQcxAAzIidgIhw2YBwZdWYPDiSfJDR0AGVZZAAFfgA3EGRicPtHZ1ga2JQGPhToafB4AE9iaEZetgknUMdoNr9MeG6QWjpDSABaAD5YfwAuaAAfRkAEcQtZgL4xoEsgBhGTUF6IAAUgOsIFKkAAlHRft8NgDQeDIaMMJNIMhkTjfgAeD4fAlA5o4cDNEDgVTcHLIAA0QNsFzc7zpDP+QPuY1gkDBoWA3K28ToiFQwBgqDmp3ePIJAHV4GBoM1UCR4NBMqg2OVoMBUGaYIx+MguhToMbHIhXc1mh9LvqPRKMNbbYRoEsxBqZMhLDt+IJoLCJJBLXdSZg5kEQtAQM4Ecgjm9XPixYDs1CAhnIFL4HnUQH0FKZRDudT-PiagDS6nycgqzWGoDmaz2Zy5bz+QIiGxsbj-CLGR0QgXVHOxbBKgBBAAiAE0FTG9u9Q5Bw8RnAB6O6QDVBHOpxzPV7vIsAgeQYCXMvoGHg2uphvE5sZzbAEeDfT9u2RftBzZDkKFHPk0QnKcWzndtxS7KYgJ+MVplPWggmzGA62gRA8EIEgGnwI5oB4Vw+UYQ4TiIPlRkvRtdFIghliXSAVxfOtv1CPcGBEoA). \ No newline at end of file diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index 4ed1700d..d0ca6b16 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -45,7 +45,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab bytes32 public constant UPGRADE_ADMIN_ROLE = bytes32("UPGRADE_ROLE"); /// @notice Indicates: Generate new random numbers using on-chain methodology. - address public constant ONCHAIN = address(0); + address public constant ONCHAIN = address(1); /// @notice All historical random output. /// @dev When random seeds are requested, a request id is returned. The id diff --git a/contracts/random/RandomValues.sol b/contracts/random/RandomValues.sol index 2eb6eb58..5031182d 100644 --- a/contracts/random/RandomValues.sol +++ b/contracts/random/RandomValues.sol @@ -10,17 +10,43 @@ import {RandomSeedProvider} from "./RandomSeedProvider.sol"; */ // slither-disable-start dead-code abstract contract RandomValues { + /// @notice Caused by requesting random values be generated, but then setting the size to zero. + error RequestForNoRandomBytes(); + + /// @notice Caused by fetch being called more than once for the same request id. + error RandomValuesPreviouslyFetched(); + + /// @notice Structure for a single random request. + struct RandomRequest { + // Id to match the random seed provider requests and responses. + uint256 fulfilmentId; + // Number of words requested. Retaining the size ensures the correct + // number of words are returned. + uint16 size; + // Source of the random value: which off-chain, or the on-chain provider + // will provide the random values. Retaining the source allows for upgrade + // of sources inside the random seed provider contract. + address source; + } + + /// @notice Status of a random request + enum RequestStatus { + // The random value is being produced. + IN_PROGRESS, + // The random value is ready to be fetched. + READY, + // The random value either was never requested or has previously been fetched. + ALREADY_FETCHED + } + // Address of random seed provider contract. // This value "immutable", and hence patched directly into bytecode when it is used. // There will only ever be one random seed provider per chain. Hence, this value // does not need to be changed. RandomSeedProvider public immutable randomSeedProvider; - // Map of request id to fulfilment id. - mapping(uint256 requestId => uint256 fulfilmentId) private randCreationRequests; - // Map of request id to random source. Retaining the source allows for upgrade - // of sources inside the random seed provider contract. - mapping(uint256 requestId => address randomSource) private randCreationRequestsSource; + // Map of request id to random creation requests. + mapping(uint256 requestId => RandomRequest request) private randCreationRequests; // Each request has a unique request id. The id is the current value // of nextNonce. nextNonce is incremented for each request. @@ -37,29 +63,21 @@ abstract contract RandomValues { /** * @notice Register a request to generate a random value. This function should be called * when a game player has purchased an item the value of which is based on a random value. + * @param _size The number of values to generate. * @return _randomRequestId A value that needs to be presented when fetching the random * value with fetchRandom. */ // slither-disable-next-line reentrancy-benign - function _requestRandomValueCreation() internal returns (uint256 _randomRequestId) { + function _requestRandomValueCreation(uint16 _size) internal returns (uint256 _randomRequestId) { + if (_size == 0) { + revert RequestForNoRandomBytes(); + } + uint256 randomFulfilmentIndex; address randomSource; (randomFulfilmentIndex, randomSource) = randomSeedProvider.requestRandomSeed(); _randomRequestId = nextNonce++; - randCreationRequests[_randomRequestId] = randomFulfilmentIndex; - randCreationRequestsSource[_randomRequestId] = randomSource; - } - - /** - * @notice Fetch a random value that was requested using _requestRandomValueCreation. - * @dev The value is customised to this game, the game player, and the request by the game player. - * This level of personalisation ensures that no two players end up with the same random value - * and no game player will have the same random value twice. - * @param _randomRequestId The value returned by _requestRandomValueCreation. - * @return _randomValue The random number that the game can use. - */ - function _fetchRandom(uint256 _randomRequestId) internal returns (bytes32 _randomValue) { - return _fetchPersonalisedSeed(_randomRequestId); + randCreationRequests[_randomRequestId] = RandomRequest(randomFulfilmentIndex, _size, randomSource); } /** @@ -67,57 +85,56 @@ abstract contract RandomValues { * @dev The values are customised to this game, the game player, and the request by the game player. * This level of personalisation ensures that no two players end up with the same random value * and no game player will have the same random value twice. + * @dev Note that the numbers can only be requested once. The numbers are deleted once fetched. + * This has been done to ensure games don't inadvertantly reuse the same random values + * in different contexts. Reusing random values could make games vulnerable to attacks + * where game players know the expected random values. * @param _randomRequestId The value returned by _requestRandomValueCreation. - * @param _size The size of the array to return. - * @return _randomValues An array of random values derived from a single random value. + * @return _randomValues An array of random values. */ function _fetchRandomValues( - uint256 _randomRequestId, - uint256 _size + uint256 _randomRequestId ) internal returns (bytes32[] memory _randomValues) { - bytes32 seed = _fetchPersonalisedSeed(_randomRequestId); - - _randomValues = new bytes32[](_size); - for (uint256 i = 0; i < _size; i++) { - _randomValues[i] = keccak256(abi.encodePacked(seed, i + 1)); + RandomRequest memory request = randCreationRequests[_randomRequestId]; + if (request.size == 0) { + revert RandomValuesPreviouslyFetched(); } - } - /** - * @notice Check whether a random value is ready. - * @dev If this function returns true then it is safe to call _fetchRandom or _fetchRandomValues. - * @param _randomRequestId The value returned by _requestRandomValueCreation. - * @return True when the random value is ready to be retrieved. - */ - function _isRandomValueReady(uint256 _randomRequestId) internal view returns (bool) { - return - randomSeedProvider.isRandomSeedReady( - randCreationRequests[_randomRequestId], - randCreationRequestsSource[_randomRequestId] - ); - } - - /** - * @notice Fetch a seed from which random values can be generated, based on _requestRandomValueCreation. - * @dev The value is customised to this game, the game player, and the request by the game player. - * This level of personalisation ensures that no two players end up with the same random value - * and no game player will have the same random value twice. - * @param _randomRequestId The value returned by _requestRandomValueCreation. - * @return _seed The seed value to base random numbers on. - */ - function _fetchPersonalisedSeed(uint256 _randomRequestId) private returns (bytes32 _seed) { // Request the random seed. If not enough time has elapsed yet, this call will revert. - bytes32 randomSeed = randomSeedProvider.getRandomSeed( - randCreationRequests[_randomRequestId], - randCreationRequestsSource[_randomRequestId] - ); + bytes32 randomSeed = randomSeedProvider.getRandomSeed(request.fulfilmentId, request.source); + // Generate the personlised seed by combining: // address(this): personalises the random seed to this game. // msg.sender: personalises the random seed to the game player. // _randomRequestId: Ensures that even if the game player has requested multiple random values, // they will get a different value for each request. // randomSeed: Value returned by the RandomManager. - _seed = keccak256(abi.encodePacked(address(this), msg.sender, _randomRequestId, randomSeed)); + bytes32 seed = keccak256(abi.encodePacked(address(this), msg.sender, _randomRequestId, randomSeed)); + + _randomValues = new bytes32[](request.size); + for (uint256 i = 0; i < request.size; i++) { + _randomValues[i] = keccak256(abi.encodePacked(seed, i)); + } + + // Prevent random values from being re-fetched. This reduces the probability + // that a game will mistakenly re-use the same random values for two purposes. + delete randCreationRequests[_randomRequestId]; + } + + /** + * @notice Check whether a set of random values are ready to be fetched + * @dev If this function returns true then it is safe to call _fetchRandom or _fetchRandomValues. + * @param _randomRequestId The value returned by _requestRandomValueCreation. + * @return RequestStatus indicates whether the random values are still be generated, are ready + * to be fetched, or whether they have already been fetched and are no longer available. + */ + function _isRandomValueReady(uint256 _randomRequestId) internal view returns (RequestStatus) { + RandomRequest memory request = randCreationRequests[_randomRequestId]; + if (request.size == 0) { + return RequestStatus.ALREADY_FETCHED; + } + return randomSeedProvider.isRandomSeedReady(request.fulfilmentId, request.source) ? + RequestStatus.READY : RequestStatus.IN_PROGRESS; } // slither-disable-next-line unused-state,naming-convention diff --git a/contracts/random/random-sequence.png b/contracts/random/random-sequence.png index 4dcd7ba140ccbd187762d41c2059a3c25e8339c6..ab4033dc1457d9fe15c4a6710e3897fa3931cfbb 100644 GIT binary patch literal 525397 zcmeFYby$>Zzc5NlivkKr*U&Yf(n!}JsdO`hbTgz#cf+7`igb5NmxOdmcQZ6+(6#q| zzi+R1UGMq#TxYIlW}dq1*L4RgzLmnke1VC8fPf<-Ev}4!fX0D8v^y^V>vB^UugIygQNO;u$J@8iAum>80upEUg`pb0e!PZW!il1!YA z7Eu&~>IsTv5KD2Zrs7i(u!Ncffu*X_Q>4u3g51^B#p#Cyo{4?95oa`#aFK13}b_fP;{uwvmOCnU?kmCD7=e zjbfj=ENBjxHgI+@d|#k=@ri{TK@q(jraKMwg% z+(CycGH*YxkI1}*8gjca0R-a0OED2#@e-M3kUnNdUJ&y(($eDgVi_<$)ngDPy2PCu z9pkz{r*ZP(#G{dP1qyR5vqNI;61YSXV*BM|j!t!RQ4Z(^@bc_V?uI9iTIdAj`BXZd zC@GhJXD29=*86cg9)>_1iudW0sd`UZNZK#se7*13C*@ORTmu_!s67+8sHj7>nLh$) z`eO$%(hNirT&A$)fTG|kJUYt>YzMjur=0w!K=1O8H2rC5q~tF32#(|g_!XHhyM-*u!Hi+1=6D+1anFfX#~Ox1ga;9 zBGr^G$6-j$0Xz!SAlV_4(kLx}zOA@GXdN~QGYLNe;9&PO+Eps8KJ>|LU!jdW8A7oY zK0ZFZsps8m1fCbT2xaCIrj6(bom2>HPKVhs$>xizPDn&=P%u9}QuTTM1G%e}bP54& z2}$7N>qE3QO49EiJ3peui13YGDwmQLKI%*-utd=kdG;02y%o`xh!mMM9XT15uN}^^NDg`rOe4zV=^3La*#LM&< zrTMQ~Uxmh*$4$AP%S&+mST`fAq~Jpu6f@0K%k2O0ZWDRa

ts>L~0+a7!lEWu`yC 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

tyhpvRZJ$|acUXYFUzgN6;q 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

E+AB(dC^lR@>J?yly>aP(aR@)GLy%qfvB4||( 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

gQNnq~8F7d-_G9?4e>^VFH(aD~AtUItk)U7v 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

NZ#|u^UfyOJp3}v?SQcVc+pppFYU!- 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 AoB#j- literal 400868 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%0Au_E3>tGw=r-py+^0ZHY%jjaLP-g@m-8a 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±=A`rBgMn(LO%XIS;y#|kJB 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ž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�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 Date: Wed, 31 Jan 2024 11:32:28 +1000 Subject: [PATCH 097/100] Added explicit mapping for seaport types --- remappings.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/remappings.txt b/remappings.txt index a3fc476e..a84ebf6c 100644 --- a/remappings.txt +++ b/remappings.txt @@ -4,3 +4,4 @@ solidity-bits/=lib/solidity-bits/ solidity-bytes-utils/=lib/solidity-bytes-utils/ seaport/contracts/=lib/immutable-seaport-1.5.0+im1.3/contracts/ seaport-core/=lib/immutable-seaport-core-1.5.0+im1/ +seaport-types/=lib/immutable-seaport-1.5.0+im1.3/lib/seaport-types/ From ae015c4297c009c3bb327de1df32275df365b74a Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 1 Feb 2024 11:47:21 +1000 Subject: [PATCH 098/100] Update contracts/random/README.md Co-authored-by: Ermyas Abebe --- contracts/random/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/random/README.md b/contracts/random/README.md index abdd8215..7e920028 100644 --- a/contracts/random/README.md +++ b/contracts/random/README.md @@ -6,7 +6,7 @@ The reasons for using these contracts are that: * Enables you to leverage a random number generation system designed by Immutable's cryptographers. * Allows you to build your game against an API that won't change. -* The quality of the random numbers generated will improve as new capabilities are added to the platform. That is, the migration from ```block.hash``` to ```block.prevrandao``` when the BFT fork occurs will be seemless. +* The quality of the random numbers generated will improve as new capabilities are added to the platform. That is, the migration from ```block.hash``` to ```block.prevrandao``` when the BFT fork occurs will be seamless. * For off-chain randomness, allows you to leverage the random number provider that Immutable has agreements with. # Status From 5d95ea3d7d278bda4130d247342d486f4b2c6dd4 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 1 Feb 2024 11:48:24 +1000 Subject: [PATCH 099/100] Update contracts/random/RandomSeedProvider.sol Co-authored-by: Ermyas Abebe --- contracts/random/RandomSeedProvider.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/random/RandomSeedProvider.sol b/contracts/random/RandomSeedProvider.sol index d0ca6b16..030db53c 100644 --- a/contracts/random/RandomSeedProvider.sol +++ b/contracts/random/RandomSeedProvider.sol @@ -92,7 +92,7 @@ contract RandomSeedProvider is AccessControlEnumerableUpgradeable, UUPSUpgradeab * RANDOM_ADMIN_ROLE privilege. * @param _randomAdmin is the account that has RANDOM_ADMIN_ROLE privilege. * @param _upgradeAdmin is the account that has UPGRADE_ADMIN_ROLE privilege. - * @param _ranDaoAvailable indicates if the chain supports the PRERANDAO opcode. + * @param _ranDaoAvailable indicates if the chain supports the PREVRANDAO opcode. */ function initialize( address _roleAdmin, From 86e43a335d0756717eec6860894d33c4c159f32d Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 1 Feb 2024 11:54:52 +1000 Subject: [PATCH 100/100] Switch naming from traditional to onchain in situations when the generation is just generic onchain --- test/random/README.md | 4 ++-- test/random/RandomSeedProvider.t.sol | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/random/README.md b/test/random/README.md index 96aba22f..61a259c8 100644 --- a/test/random/README.md +++ b/test/random/README.md @@ -57,7 +57,7 @@ numbers, check that the numbers generated earlier are still available: | testSwitchTraditionalOffchain | Traditional -> Off-chain. | Yes | Yes | | testSwitchRandaoOffchain | RanDAO -> Off-chain. | Yes | Yes | | testSwitchOffchainOffchain | Off-chain to another off-chain source. | Yes | Yes | -| testSwitchOffchainTraditional | Disable off-chain source. | Yes | Yes | +| testSwitchOffchainOnchain | Disable off-chain source. | Yes | Yes | ## RandomValues.sol @@ -72,7 +72,7 @@ Operational tests: | Test name |Description | Happy Case | Implemented | |---------------------------------| --------------------------------------------------|------------|-------------| -| testNoValue | Request zero bytes be returned | No | Yes | +| testNoValue | Request zero bytes be returned | No | Yes | | testFirstValue | Return a single value | Yes | Yes | | testSecondValue | Return two values | Yes | Yes | | testMultiFetch | Attempt to fetch a generated number twice. | Yes | Yes | diff --git a/test/random/RandomSeedProvider.t.sol b/test/random/RandomSeedProvider.t.sol index 44a2bf71..7320d2cf 100644 --- a/test/random/RandomSeedProvider.t.sol +++ b/test/random/RandomSeedProvider.t.sol @@ -512,7 +512,7 @@ contract SwitchingRandomSeedProviderTest is UninitializedRandomSeedProviderTest } - function testSwitchOffchainTraditional() public { + function testSwitchOffchainOnchain() public { address aConsumer = makeAddr("aConsumer"); vm.prank(randomAdmin); randomSeedProviderRanDao.addOffchainRandomConsumer(aConsumer);

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%0AOekA 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 diff --git a/contracts/random/random-sequence.png b/contracts/random/random-sequence.png index e6ba17a6a9d016d0e5f680679361bc0dcd1606b1..4dcd7ba140ccbd187762d41c2059a3c25e8339c6 100644 GIT binary patch literal 400868 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%0Au_E3>tGw=r-py+^0ZHY%jjaLP-g@m-8a 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±=A`rBgMn(LO%XIS;y#|kJB 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